156 lines
6.7 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|