95 lines
3.7 KiB
C#
95 lines
3.7 KiB
C#
using System.Collections.Generic;
|
|
using System.Data;
|
|
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.BusinessLogic.Security;
|
|
using Kreta.Core.Exceptions;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.Leptetes.Models;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Helpers.Error;
|
|
using Kreta.Web.Helpers.Grid;
|
|
using Kreta.Web.Security;
|
|
|
|
namespace Kreta.Web.Areas.Leptetes.ApiControllers
|
|
{
|
|
[ApiRoleClaimsAuthorize(true)]
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
public class CsoportLeptetesApiController : ApiController
|
|
{
|
|
public DataSourceResult GetCsoportLeptetesGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var helper = new LeptetesHelper(ConnectionTypeExtensions.GetSessionConnectionType())
|
|
{
|
|
GridParameters = Converter.GridParameter(request)
|
|
};
|
|
|
|
DataSet ds = helper.GetCsoportLeptetesGridData(ClaimData.AktivTanevID.Value);
|
|
return ds.ToDataSourceResult();
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage SaveCsoportLeptetes(List<CsoportLeptetesRowModel> model)
|
|
{
|
|
try
|
|
{
|
|
var errorStr = CsoportCustomValidation(model);
|
|
if (string.IsNullOrWhiteSpace(errorStr))
|
|
{
|
|
LeptetesHelper helper = new LeptetesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
foreach (var item in model)
|
|
{
|
|
helper.CopyCsoportToKovTanev(item.SourceID, item.Nev, item.Evfolyam, item.Osztalybontas, ClaimData.SelectedTanevID.Value);
|
|
}
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
throw new StatusError(HttpStatusCode.BadRequest, errorStr);
|
|
}
|
|
catch (BlException e)
|
|
{
|
|
StatusError error = new StatusError(HttpStatusCode.BadRequest, e.Message);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
public string CsoportCustomValidation(List<CsoportLeptetesRowModel> model)
|
|
{
|
|
var result = string.Empty;
|
|
|
|
var duplicated = from m in model group m by m.Nev into g where g.Count() > 1 select g.Key;
|
|
foreach (var item in duplicated)
|
|
{
|
|
result += string.Format(LeptetesResource.CsoportEgynelTobbszor, model.Where(x => x.Nev.Contains(item)).FirstOrDefault()?.Nev ?? string.Empty);
|
|
}
|
|
|
|
OsztalyCsoportHelper helper = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
var data = helper.GetOsztalyCsoportCoList();
|
|
|
|
foreach (var item in model)
|
|
{
|
|
if (data.Where(x => x.Nev == item.Nev).ToList().Count > 0)
|
|
{
|
|
result += string.Format(LeptetesResource.CsoportLetezikKovTanevben, item.Nev);
|
|
}
|
|
|
|
CsoportHelper ocshelper = new CsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
var csoportData = helper.GetCsoportByCsoportId(item.SourceID);
|
|
|
|
FeladatEllatasiHelyHelper felHHelper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
if (felHHelper.GetKovTanevIdByAktTanevId(csoportData.FeladatEllatasiHelyId) == 0)
|
|
{
|
|
result += string.Format(LeptetesResource.CsoportFelhelyNemtalalhato, item.Nev);
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|
|
}
|