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 KirAlkalmazottImportApiController : BaseApiController { public KirAlkalmazottImportApiController(IKirServiceFactory kirServiceFactory, IKir2ServiceFactory kir2ServiceFactory) : base(kirServiceFactory, kir2ServiceFactory) { } public DataSourceResult GetKirAlkalmazottakGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var searchModel = JsonConvert.DeserializeObject(data); KirSearchModel.ValidateModel(searchModel); new KirImportLogic().SetKirKretaKod(KirImportHelper, searchModel.KirTelephelyId.Value, KirKretaKodCacheKey); List kirPedagogusAdatModelList = KirImportHelper.GetKirFelhasznaloList(searchModel, KirPedagugisListCacheKey); var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; var kretaAlkalmazottList = helper.SearchAlkalmazottForKir(searchModel); return KirImportLogic.MergeKretaKirFelhasznalo(kretaAlkalmazottList, kirPedagogusAdatModelList, searchModel.StatuszSearch) .ToDataSourceResult(); } public DataSourceResult GetAlkalmazottAlapadatokGrid(int felhasznaloId) { var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var kirAlkalmazott = helper.GetAlkalmazottAlapadatok(felhasznaloId); KirAlkalmazottAlapadatok kirAlkalmazottFromKir = KirImportHelper .GetKirFelhasznaloAdatok(new Converter((y) => y), KirPedagugisListCacheKey, kirAlkalmazott.SzuletesiNev, kirAlkalmazott.AnyjaNeve, kirAlkalmazott.SzuletesiDatum.Value, kirAlkalmazott.SzuletesiHely); return KirImportLogic.KirModelEqual(kirAlkalmazott, kirAlkalmazottFromKir) .ToDataSourceResult(); } public DataSourceResult GetAlkalmazottElerhetosegAdatokGrid(int felhasznaloId) { var helper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var kirAlkalmazott = helper.GetFelhasznaloElerhetoseg(felhasznaloId, isTanulo: false); KirFelhasznaloElerhetosegek kirAlkalmazottFromKir = KirImportHelper .GetKirFelhasznaloAdatok(new Converter((y) => y), KirPedagugisListCacheKey, kirAlkalmazott.SzuletesiNev, kirAlkalmazott.AnyjaNeve, kirAlkalmazott.SzuletesiDatum.Value, kirAlkalmazott.SzuletesiHely); kirAlkalmazott.SzuletesiDatum = null; kirAlkalmazott.SzuletesiHely = null; return KirImportLogic.KirModelEqual(kirAlkalmazott, kirAlkalmazottFromKir) .ToDataSourceResult(); } public DataSourceResult GetAlkalmazottElsodlegesMunkaugyiAdatokGrid(int felhasznaloId) { var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var kirAlkalmazott = helper.GetAlkalmazottElsodlegesMunkaugyiAdatok(felhasznaloId); KirAlkalmazottMunkaugyiAdatok kirAlkalmazottFromKir = KirImportHelper .GetKirFelhasznaloAdatok(new Converter((y) => y), KirPedagugisListCacheKey, kirAlkalmazott.SzuletesiNev, kirAlkalmazott.AnyjaNeve, kirAlkalmazott.SzuletesiDatum.Value, kirAlkalmazott.SzuletesiHely); kirAlkalmazott.SzuletesiDatum = null; kirAlkalmazott.SzuletesiHely = null; return KirImportLogic.KirModelEqual(kirAlkalmazott, kirAlkalmazottFromKir) .ToDataSourceResult(); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage ModifyAlkalmazott(KirSzinkronSaveModel postData) { int felhasznaloId = 0; if (!string.IsNullOrWhiteSpace(postData.FelhasznaloId)) { int.TryParse(postData.FelhasznaloId, out felhasznaloId); } try { if (felhasznaloId != 0) { new KirImportLogic().UpdateAlkalmazott(postData, felhasznaloId); return new HttpResponseMessage(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ErrorResource.NemSikerultASzinkronizalas); } catch (BlException e) { throw new StatusError(HttpStatusCode.BadRequest, e.Message); } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage ModifySelected(List azonositoList) { try { List kirPedagogusAdatModelList = KirImportHelper.GetKirFelhasznaloList(KirPedagugisListCacheKey); var kirImportLogic = new KirImportLogic(); foreach (var azonosito in azonositoList) { if (int.TryParse(azonosito.FelhasznaloId, out int felhasznaloId)) { KirAlkalmazott kirAlkalmazott = kirPedagogusAdatModelList.Where(x => x.OktatasiAzonosito.Equals(azonosito.OktatasiAzonosito)).FirstOrDefault(); if (kirAlkalmazott != null) { kirImportLogic.UpdateAlkalmazott(kirAlkalmazott, felhasznaloId); } } else { kirImportLogic.InsertAlkalmazott(kirPedagogusAdatModelList.Where(x => x.OktatasiAzonosito.Equals(azonosito.OktatasiAzonosito)).First()); } } return new HttpResponseMessage(HttpStatusCode.OK); } catch (BlException e) { throw new StatusError(HttpStatusCode.BadRequest, e.Message); } } } }