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 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 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; } } }