157 lines
6.4 KiB
C#
157 lines
6.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Web.Http;
|
|
using System.Web.Http.ModelBinding;
|
|
using Kendo.Mvc.UI;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.Core.Domain;
|
|
using Kreta.Core.Exceptions;
|
|
using Kreta.Core.KIR.Factory.Interface;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.KirImportExport.Logic;
|
|
using Kreta.Web.Areas.KirImportExport.Models;
|
|
using Kreta.Web.Areas.KirImportExport.Models.KirImport;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Helpers.Error;
|
|
using Kreta.Web.Helpers.Grid;
|
|
using Kreta.Web.Security;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Kreta.Web.Areas.KirImportExport.ApiControllers
|
|
{
|
|
public class KirTanuloImportApiController : BaseApiController
|
|
{
|
|
public KirTanuloImportApiController(IKirServiceFactory kirServiceFactory, IKir2ServiceFactory kir2ServiceFactory) : base(kirServiceFactory, kir2ServiceFactory)
|
|
{ }
|
|
|
|
public DataSourceResult GetKirTanulokGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var searchModel = JsonConvert.DeserializeObject<KirSearchModel>(data);
|
|
KirSearchModel.ValidateModel(searchModel);
|
|
new KirImportLogic().SetKirKretaKod(KirImportHelper, searchModel.KirTelephelyId.Value, KirKretaKodCacheKey);
|
|
|
|
List<KirTanulo> kretaTanuloAdatModelList = KirImportHelper.GetKirFelhasznaloList<KirTanulo>(searchModel, KirTanuloListCacheKey);
|
|
|
|
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
|
{
|
|
GridParameters = Converter.GridParameter(request)
|
|
};
|
|
|
|
List<KirTanulo> kirTanuloList = helper.SearchTanuloForKir(searchModel, 0);
|
|
|
|
return KirImportLogic.MergeKretaKirFelhasznalo(kirTanuloList, kretaTanuloAdatModelList)
|
|
.ToDataSourceResult();
|
|
}
|
|
|
|
public DataSourceResult GetTanuloAlapadatokGrid(int felhasznaloId)
|
|
{
|
|
KirTanuloAlapadatok kirTanulo = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloAlapadatok(felhasznaloId);
|
|
|
|
KirTanuloAlapadatok kirTanuloFromKir = KirImportHelper
|
|
.GetKirFelhasznaloAdatok(new Converter<KirTanulo, KirTanuloAlapadatok>((y) => y), KirTanuloListCacheKey, kirTanulo.SzuletesiNev, kirTanulo.AnyjaNeve, kirTanulo.SzuletesiDatum.Value, kirTanulo.SzuletesiHely);
|
|
|
|
return KirImportLogic.KirModelEqual(kirTanulo, kirTanuloFromKir)
|
|
.ToDataSourceResult();
|
|
}
|
|
|
|
public DataSourceResult GetTanuloElerhetosegAdatokGrid(int felhasznaloId)
|
|
{
|
|
var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var kirTanulo = helper.GetFelhasznaloElerhetoseg(felhasznaloId, true);
|
|
|
|
KirFelhasznaloElerhetosegek kirTanuloFromKir = KirImportHelper
|
|
.GetKirFelhasznaloAdatok(new Converter<KirTanulo, KirFelhasznaloElerhetosegek>((y) => y), KirTanuloListCacheKey, kirTanulo.SzuletesiNev, kirTanulo.AnyjaNeve, kirTanulo.SzuletesiDatum.Value, kirTanulo.SzuletesiHely);
|
|
|
|
kirTanulo.SzuletesiDatum = null;
|
|
kirTanulo.SzuletesiHely = null;
|
|
|
|
return KirImportLogic.KirModelEqual(kirTanulo, kirTanuloFromKir)
|
|
.ToDataSourceResult();
|
|
}
|
|
|
|
public DataSourceResult GetTanuloJogviszonyAdatokGrid(int felhasznaloId)
|
|
{
|
|
var kirTanuloJogviszony = new KirTanuloJogviszonyAdatok();
|
|
var kirSearchModel = new KirSearchModel();
|
|
|
|
var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var kirTanulo = helper.SearchTanuloForKir(kirSearchModel, felhasznaloId)[0];
|
|
|
|
KirTanuloJogviszonyAdatok kirTanuloFromKir = KirImportHelper
|
|
.GetKirFelhasznaloAdatok(new Converter<KirTanulo, KirTanuloJogviszonyAdatok>((y) => y), KirTanuloListCacheKey, kirTanulo.SzuletesiNev, kirTanulo.AnyjaNeve, kirTanulo.SzuletesiDatum.Value, kirTanulo.SzuletesiHely);
|
|
|
|
kirTanulo.SzuletesiDatum = null;
|
|
kirTanulo.SzuletesiHely = null;
|
|
|
|
return KirImportLogic.KirModelEqual(kirTanulo, kirTanuloFromKir)
|
|
.ToDataSourceResult();
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage ModifyTanulo(KirSzinkronSaveModel postData)
|
|
{
|
|
int felhasznaloId = 0;
|
|
|
|
if (!string.IsNullOrWhiteSpace(postData.FelhasznaloId))
|
|
{
|
|
int.TryParse(postData.FelhasznaloId, out felhasznaloId);
|
|
}
|
|
|
|
try
|
|
{
|
|
if (felhasznaloId != 0)
|
|
{
|
|
new KirImportLogic().UpdateTanulo(postData, felhasznaloId);
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ErrorResource.NemSikerultAMuvelet);
|
|
}
|
|
catch (BlException e)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
|
}
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage ModifySelected(List<SaveModel> azonositoList)
|
|
{
|
|
try
|
|
{
|
|
List<KirTanulo> kirTanuloAdatModelList = KirImportHelper.GetKirFelhasznaloList<KirTanulo>(KirTanuloListCacheKey);
|
|
var kirImportLogic = new KirImportLogic();
|
|
|
|
foreach (var azonosito in azonositoList)
|
|
{
|
|
if (int.TryParse(azonosito.FelhasznaloId, out int felhasznaloId))
|
|
{
|
|
KirTanulo kirTanulo = kirTanuloAdatModelList.Where(x => x.OktatasiAzonosito.Equals(azonosito.OktatasiAzonosito)).FirstOrDefault();
|
|
|
|
if (kirTanulo != null)
|
|
{
|
|
kirImportLogic.UpdateTanulo(kirTanulo, felhasznaloId);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
kirImportLogic.InsertTanulo(kirTanuloAdatModelList.Where(x => x.OktatasiAzonosito.Equals(azonosito.OktatasiAzonosito)).First());
|
|
}
|
|
}
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
catch (BlException e)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
|
}
|
|
}
|
|
}
|
|
}
|