kreta/KretaWeb/Areas/KirImportExport/ApiControllers/KirAlkalmazottImportApiController.cs
2024-03-13 00:33:46 +01:00

156 lines
6.7 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 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<KirSearchModel>(data);
KirSearchModel.ValidateModel(searchModel);
new KirImportLogic().SetKirKretaKod(KirImportHelper, searchModel.KirTelephelyId.Value, KirKretaKodCacheKey);
List<KirAlkalmazott> kirPedagogusAdatModelList = KirImportHelper.GetKirFelhasznaloList<KirAlkalmazott>(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<KirAlkalmazott, KirAlkalmazottAlapadatok>((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<KirAlkalmazott, KirFelhasznaloElerhetosegek>((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<KirAlkalmazott, KirAlkalmazottMunkaugyiAdatok>((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<SaveModel> azonositoList)
{
try
{
List<KirAlkalmazott> kirPedagogusAdatModelList = KirImportHelper.GetKirFelhasznaloList<KirAlkalmazott>(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);
}
}
}
}