using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using System.Web.Http.Results; using System.Web.Mvc; using Kendo.Mvc.UI; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Security; using Kreta.Client.LEP; using Kreta.Core.Configuratiaton.Interface; using Kreta.Enums; using Kreta.Resources; using Kreta.Web.Areas.LEPModul.Models; 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.LEPModul.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize(KretaClaimPackages.IsLEPKezelo.ClaimValue, KretaClaimPackages.Ellenorzo.ClaimValue)] public class EloadasokKezeleseApiController : ApiController { private readonly ILepConfiguration LepConfiguration; public EloadasokKezeleseApiController(ILepConfiguration lepConfiguration) { LepConfiguration = lepConfiguration ?? throw new ArgumentNullException(nameof(lepConfiguration)); } public DataSourceResult GetEloadasokGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { try { EloadasokSearchModel model = JsonConvert.DeserializeObject(data); List lEloadasok = new List(); List LResult = new List(); model.EvfolyamIdList = new List(); if (model.EvfolyamID.HasValue) { model.EvfolyamIdList.Add(model.EvfolyamID.Value); } else { if (!model.IsMindenEvfolyamJog) { foreach (var item in new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetLEPOszlyCspoortByTanevAndFelhasznalo(ClaimData.FelhasznaloId)) { model.EvfolyamIdList.Add(item.EvfolyamTipusa); } } } var client = new LepClient(LepConfiguration.Url, LepConfiguration.ApiKey); var kozpontiResult = client.GetEloadasok(ClaimData.IntezmenyAzonosito, model.EvfolyamIdList); if (kozpontiResult != null) { var groupedResult = kozpontiResult.GroupBy(x => (x.Id, x.IranyitoSzam, x.Telepules, x.KozteruletNev, x.KozteruletJellegNev, x.Hazszam, x.Kezdete, x.Vege, x.SzervezetNev, x.Nev, x.Leiras)) .ToDictionary(x => x.Key, x => (EvfolyamIdList: x.Select(y => y.Evfolyam).ToList(), Ferohelyek: x.Select(y => ( FerohelyMax: y.KiseroLetszam + y.TanuloLetszam, JelentkezokSzama: (y.KiseroJelentkezokSzama ?? 0) + (y.TanuloJelentkezokSzama ?? 0))).Distinct().Single(), EngedelyezettLetszamok: x.Select(y => ( KiseroLetszam: y.KiseroLetszam, KiseroLetszamFennmarado: y.KiseroLetszamFennmarado, TanuloLetszam: y.TanuloLetszam, TanuloLetszamFennmarado: y.TanuloLetszamFennmarado)).Distinct().Single(), IsToroltJelentkezes: x.Select(y => y.IsToroltJelentkezes).Distinct().Single())); foreach (var item in groupedResult) { if (item.Value.IsToroltJelentkezes) { new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()).DeleteTanulokByEloadasId(item.Key.Id); } if (item.Value.EvfolyamIdList.Intersect(Core.Constants.LepEnabledEvfolyam).Any()) { lEloadasok.Add(new EloadasokGridModel() { ID = $"{item.Key.Id}", Helyszin = $"{item.Key.IranyitoSzam} {item.Key.Telepules} {item.Key.KozteruletNev} {item.Key.KozteruletJellegNev} {item.Key.Hazszam}", Datum = item.Key.Kezdete.Date, EloadasKezdete = item.Key.Kezdete, EloadasVege = item.Key.Vege, SzervezetNev = item.Key.SzervezetNev, EloadasNev = item.Key.Nev, FerohelyFoglaltHelyek = $"{item.Value.Ferohelyek.FerohelyMax} / {item.Value.Ferohelyek.JelentkezokSzama}", EvFolyamIdList = string.Join(",", item.Value.EvfolyamIdList), Leiras = item.Key.Leiras, KiseroLetszam = item.Value.EngedelyezettLetszamok.KiseroLetszam, TanuloLetszam = item.Value.EngedelyezettLetszamok.TanuloLetszam, KiseroLetszamFennmarado = item.Value.EngedelyezettLetszamok.KiseroLetszamFennmarado, TanuloLetszamFennmarado = item.Value.EngedelyezettLetszamok.TanuloLetszamFennmarado, IsToroltJelentkezes = item.Value.IsToroltJelentkezes, }); } } if (!string.IsNullOrWhiteSpace(model.EloadasNev)) lEloadasok = lEloadasok.Where(x => x.EloadasNev.ToLower().Contains(model.EloadasNev.ToLower())).ToList(); if (!string.IsNullOrWhiteSpace(model.Helyszin)) lEloadasok = lEloadasok.Where(x => x.Helyszin.ToLower().Contains(model.Helyszin.ToLower())).ToList(); if (model.EvfolyamID.HasValue) lEloadasok = lEloadasok.Where(x => x.EvFolyamIdList.Contains(model.EvfolyamID.Value.ToString())).ToList(); if (model.IdoszakKezdete.HasValue || model.IdoszakVege.HasValue) { if (model.IdoszakKezdete.HasValue && model.IdoszakVege.HasValue) lEloadasok = lEloadasok.Where(x => x.Datum >= model.IdoszakKezdete && x.Datum <= model.IdoszakVege).ToList(); if (model.IdoszakKezdete.HasValue && !model.IdoszakVege.HasValue) lEloadasok = lEloadasok.Where(x => x.Datum >= model.IdoszakKezdete).ToList(); if (!model.IdoszakKezdete.HasValue && model.IdoszakVege.HasValue) lEloadasok = lEloadasok.Where(x => x.Datum <= model.IdoszakVege).ToList(); } if (!string.IsNullOrWhiteSpace(model.SzervezetNev)) lEloadasok = lEloadasok.Where(x => x.SzervezetNev.ToLower().Contains(model.SzervezetNev.ToLower())).ToList(); if (model.IdoszakKezdeteTime.HasValue) lEloadasok = lEloadasok.Where(x => x.EloadasKezdete.Value.TimeOfDay == model.IdoszakKezdeteTime.Value.TimeOfDay).ToList(); if (model.IdoszakVegeTime.HasValue) lEloadasok = lEloadasok.Where(x => x.EloadasVege.Value.TimeOfDay == model.IdoszakVegeTime.Value.TimeOfDay).ToList(); } if (lEloadasok.Count > 0) { if (request.Sorts.Count == 1) { var sort = request.Sorts[0]; if (sort.Member == "Datum" && sort.SortDirection == ListSortDirection.Ascending) { LResult = lEloadasok.OrderBy(x => x.Datum).ToList(); } if (sort.Member == "Datum" && sort.SortDirection == ListSortDirection.Descending) { LResult = lEloadasok.OrderByDescending(x => x.Datum).ToList(); } if (sort.Member == "EloadasKezdete" && sort.SortDirection == ListSortDirection.Ascending) { LResult = lEloadasok.OrderBy(x => x.EloadasKezdete).ToList(); } if (sort.Member == "EloadasKezdete" && sort.SortDirection == ListSortDirection.Descending) { LResult = lEloadasok.OrderByDescending(x => x.EloadasKezdete).ToList(); } if (sort.Member == "EloadasVege" && sort.SortDirection == ListSortDirection.Ascending) { LResult = lEloadasok.OrderBy(x => x.EloadasVege).ToList(); } if (sort.Member == "EloadasVege" && sort.SortDirection == ListSortDirection.Descending) { LResult = lEloadasok.OrderByDescending(x => x.EloadasVege).ToList(); } if (sort.Member == "EloadasNev" && sort.SortDirection == ListSortDirection.Ascending) { LResult = lEloadasok.OrderBy(x => x.EloadasNev).ToList(); } if (sort.Member == "EloadasNev" && sort.SortDirection == ListSortDirection.Descending) { LResult = lEloadasok.OrderByDescending(x => x.EloadasNev).ToList(); } if (sort.Member == "Helyszin" && sort.SortDirection == ListSortDirection.Ascending) { LResult = lEloadasok.OrderBy(x => x.Helyszin).ToList(); } if (sort.Member == "Helyszin" && sort.SortDirection == ListSortDirection.Descending) { LResult = lEloadasok.OrderByDescending(x => x.Helyszin).ToList(); } if (sort.Member == "SzervezetNev" && sort.SortDirection == ListSortDirection.Ascending) { LResult = lEloadasok.OrderBy(x => x.SzervezetNev).ToList(); } if (sort.Member == "SzervezetNev" && sort.SortDirection == ListSortDirection.Descending) { LResult = lEloadasok.OrderByDescending(x => x.SzervezetNev).ToList(); } } else { LResult = lEloadasok.ToList(); } var cnt = LResult.Count; var result = LResult.ToDataSourceResult(); result.Total = cnt; result.Data = GetPage(LResult, request.Page, request.PageSize, cnt); return result; } return new DataSourceResult(); } catch { return new DataSourceResult(); } } public DataSourceResult GetEloadasokGondviseloGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { try { EloadasokSearchModel model = JsonConvert.DeserializeObject(data); List lEloadasok = new List(); List LResult = new List(); model.EvfolyamIdList = new List(); model.IntezmenyAzonosito = ClaimData.IntezmenyAzonosito; if (model.EvfolyamID.HasValue) { model.EvfolyamIdList.Add(model.EvfolyamID.Value); } else { if (!model.IsMindenEvfolyamJog) { foreach (var item in new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetLEPOszlyCspoortByTanevAndFelhasznalo(ClaimData.FelhasznaloId)) { model.EvfolyamIdList.Add(item.EvfolyamTipusa); } } } var client = new LepClient(LepConfiguration.Url, LepConfiguration.ApiKey); var kozpontiResult = client.GetEloadasok(ClaimData.IntezmenyAzonosito, model.EvfolyamIdList); if (kozpontiResult != null) { var groupedResult = kozpontiResult.GroupBy(x => (x.Id, x.IranyitoSzam, x.Telepules, x.KozteruletNev, x.KozteruletJellegNev, x.Hazszam, x.Kezdete, x.Vege, x.SzervezetNev, x.Nev, x.Leiras)).ToDictionary(x => x.Key, x => (EvfolyamIdList: x.Select(y => y.Evfolyam).ToList(), Ferohelyek: x.Select(y => (FerohelyMax: y.KiseroLetszam + y.TanuloLetszam, JelentkezokSzama: (y.KiseroJelentkezokSzama ?? 0) + (y.TanuloJelentkezokSzama ?? 0))).Distinct().Single(), EngedelyezettLetszamok: x.Select(y => (KiseroLetszam: y.KiseroLetszam, TanuloLetszam: y.TanuloLetszam)).Distinct().Single())); foreach (var item in groupedResult) { if (item.Value.EvfolyamIdList.Intersect(Core.Constants.LepEnabledEvfolyam).Any()) { lEloadasok.Add(new EloadasokGridModel() { ID = $"{item.Key.Id}", Helyszin = $"{item.Key.IranyitoSzam} {item.Key.Telepules} {item.Key.KozteruletNev} {item.Key.KozteruletJellegNev} {item.Key.Hazszam}", Datum = item.Key.Kezdete.Date, EloadasKezdete = item.Key.Kezdete, EloadasVege = item.Key.Vege, SzervezetNev = item.Key.SzervezetNev, EloadasNev = item.Key.Nev, FerohelyFoglaltHelyek = $"{item.Value.Ferohelyek.FerohelyMax} / {item.Value.Ferohelyek.JelentkezokSzama}", EvFolyamIdList = string.Join(",", item.Value.EvfolyamIdList), KiseroLetszam = item.Value.EngedelyezettLetszamok.KiseroLetszam, TanuloLetszam = item.Value.EngedelyezettLetszamok.TanuloLetszam, }); } } } var eHelper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanuloEloadas = eHelper.GetTanuloEloadasai(ClaimData.FelhasznaloId); List removableList = new List(); foreach (DataRow item in tanuloEloadas.Tables[0].Rows) { var removable = lEloadasok.Where(x => x.ID == (item.Field("EloadasId")).ToString()).FirstOrDefault(); removableList.Add(removable); } lEloadasok.RemoveAll(item => !removableList.Contains(item)); foreach (var item in lEloadasok) { foreach (DataRow row in tanuloEloadas.Tables[0].Rows) { if (item.ID == (row.Field("EloadasId")).ToString()) { item.GondviseloElfogadas = row.Field("GondviseloElfogadas"); item.Megjelent = row.Field("Megjelent_BNAME"); } } } if (!string.IsNullOrWhiteSpace(model.EloadasNev)) lEloadasok = lEloadasok.Where(x => x.EloadasNev.ToLower().Contains(model.EloadasNev.ToLower())).ToList(); if (!string.IsNullOrWhiteSpace(model.Helyszin)) lEloadasok = lEloadasok.Where(x => x.Helyszin.ToLower().Contains(model.Helyszin.ToLower())).ToList(); if (model.EvfolyamID.HasValue) lEloadasok = lEloadasok.Where(x => x.EvFolyamIdList.Contains(model.EvfolyamID.Value.ToString())).ToList(); if (model.IdoszakKezdete.HasValue || model.IdoszakVege.HasValue) { if (model.IdoszakKezdete.HasValue && model.IdoszakVege.HasValue) lEloadasok = lEloadasok.Where(x => x.Datum >= model.IdoszakKezdete && x.Datum <= model.IdoszakVege).ToList(); if (model.IdoszakKezdete.HasValue && !model.IdoszakVege.HasValue) lEloadasok = lEloadasok.Where(x => x.Datum >= model.IdoszakKezdete).ToList(); if (!model.IdoszakKezdete.HasValue && model.IdoszakVege.HasValue) lEloadasok = lEloadasok.Where(x => x.Datum <= model.IdoszakVege).ToList(); } if (!string.IsNullOrWhiteSpace(model.SzervezetNev)) lEloadasok = lEloadasok.Where(x => x.SzervezetNev.ToLower().Contains(model.SzervezetNev.ToLower())).ToList(); if (model.IdoszakKezdeteTime.HasValue) lEloadasok = lEloadasok.Where(x => x.EloadasKezdete.Value.TimeOfDay == model.IdoszakKezdeteTime.Value.TimeOfDay).ToList(); if (model.IdoszakVegeTime.HasValue) lEloadasok = lEloadasok.Where(x => x.EloadasVege.Value.TimeOfDay == model.IdoszakVegeTime.Value.TimeOfDay).ToList(); if (lEloadasok.Count > 0) { if (request.Sorts.Count == 1) { var sort = request.Sorts[0]; if (sort.Member == "Datum" && sort.SortDirection == ListSortDirection.Ascending) { LResult = lEloadasok.OrderBy(x => x.Datum).ToList(); } if (sort.Member == "Datum" && sort.SortDirection == ListSortDirection.Descending) { LResult = lEloadasok.OrderByDescending(x => x.Datum).ToList(); } if (sort.Member == "EloadasKezdete" && sort.SortDirection == ListSortDirection.Ascending) { LResult = lEloadasok.OrderBy(x => x.EloadasKezdete).ToList(); } if (sort.Member == "EloadasKezdete" && sort.SortDirection == ListSortDirection.Descending) { LResult = lEloadasok.OrderByDescending(x => x.EloadasKezdete).ToList(); } if (sort.Member == "EloadasVege" && sort.SortDirection == ListSortDirection.Ascending) { LResult = lEloadasok.OrderBy(x => x.EloadasVege).ToList(); } if (sort.Member == "EloadasVege" && sort.SortDirection == ListSortDirection.Descending) { LResult = lEloadasok.OrderByDescending(x => x.EloadasVege).ToList(); } if (sort.Member == "EloadasNev" && sort.SortDirection == ListSortDirection.Ascending) { LResult = lEloadasok.OrderBy(x => x.EloadasNev).ToList(); } if (sort.Member == "EloadasNev" && sort.SortDirection == ListSortDirection.Descending) { LResult = lEloadasok.OrderByDescending(x => x.EloadasNev).ToList(); } if (sort.Member == "Helyszin" && sort.SortDirection == ListSortDirection.Ascending) { LResult = lEloadasok.OrderBy(x => x.Helyszin).ToList(); } if (sort.Member == "Helyszin" && sort.SortDirection == ListSortDirection.Descending) { LResult = lEloadasok.OrderByDescending(x => x.Helyszin).ToList(); } if (sort.Member == "SzervezetNev" && sort.SortDirection == ListSortDirection.Ascending) { LResult = lEloadasok.OrderBy(x => x.SzervezetNev).ToList(); } if (sort.Member == "SzervezetNev" && sort.SortDirection == ListSortDirection.Descending) { LResult = lEloadasok.OrderByDescending(x => x.SzervezetNev).ToList(); } } else { LResult = lEloadasok.ToList(); } var cnt = LResult.Count; var result = LResult.ToDataSourceResult(); result.Total = cnt; result.Data = GetPage(LResult, request.Page, request.PageSize, cnt); return result; } return new DataSourceResult(); } catch { return new DataSourceResult(); } } List GetPage(List list, int page, int pageSize, int fullCnt) { page--; return list.Skip(page * pageSize).Take(pageSize).ToList(); } public DataSourceResult GetEloadasokDetailGrid(string data, [System.Web.Mvc.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var model = JsonConvert.DeserializeObject(data); var id = int.Parse(model.ID); var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var result = helper.GetEloadasJegyzekek(id, ClaimData.FelhasznaloId, model.IsMindenEvfolyamJog, model.Datum.Value, model.EvFolyamId, model.SzervezetNev, model.EloadasNev, model.EloadasKezdete.Value, model.EloadasVege.Value, model.Helyszin); return result.ToDataSourceResult(); } public JsonResult> GetTanulokForEloadas(int? eloadasId = null, int? evfolyamId = null, string filter = null, string isMindenEvfolyamJog = null) { var list = new List(); if (eloadasId.HasValue && evfolyamId.HasValue) { var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()); DataSet ds = helper.GetTanulokForEloadas(eloadasId.Value, evfolyamId.Value, filter, !string.IsNullOrWhiteSpace(isMindenEvfolyamJog) && SDAConvert.ToBoolean(isMindenEvfolyamJog) == false ? ClaimData.FelhasznaloId : (int?)null); if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { list.AddRange(ds.Tables[0].AsEnumerable().Select(dataRow => new SelectListItem { Value = dataRow.Field("TanuloId").ToString(), Text = dataRow.Field("TanuloNev").ToString(), Selected = false }).ToList()); } } return Json(list); } public JsonResult> GetTanulokForOsztaly(int? eloadasId = null, int? evfolyamId = null, string filter = null, string isMindenEvfolyamJog = null) { var list = new List(); if (eloadasId.HasValue && evfolyamId.HasValue && filter != null) { var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()); DataSet ds = helper.GetTanulokForOsztaly(int.Parse(filter)); if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { list.AddRange(ds.Tables[0].AsEnumerable().Select(dataRow => new SelectListItem { Value = dataRow.Field("TanuloId").ToString(), Text = dataRow.Field("TanuloNyomtatasiNev").ToString(), Selected = false }).ToList()); } } return Json(list); } public JsonResult<(List, List)> GetOsztalyokForEloadas(int? eloadasId = null, int? evfolyamId = null, string isMindenEvfolyamJog = null) { var list = new List(); var jelentkezettOsztalyList = new List(); if (eloadasId.HasValue && evfolyamId.HasValue) { var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()); DataSet ds = helper.GetOsztalyokForEloadas(eloadasId.Value, evfolyamId.Value, !string.IsNullOrWhiteSpace(isMindenEvfolyamJog) && SDAConvert.ToBoolean(isMindenEvfolyamJog) == false ? ClaimData.FelhasznaloId : (int?)null); DataSet jelentkezettOsztalyok = helper.GetJelentkeztetettOsztalyokIdForEloadas(eloadasId.Value, !string.IsNullOrWhiteSpace(isMindenEvfolyamJog) && SDAConvert.ToBoolean(isMindenEvfolyamJog) == false ? ClaimData.FelhasznaloId : (int?)null); if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { list.AddRange(ds.Tables[0].AsEnumerable().Select(dataRow => new SelectListItem { Value = dataRow.Field("Id").ToString(), Text = dataRow.Field("Nev").ToString(), Selected = false }).ToList()); } if (jelentkezettOsztalyok.Tables.Count > 0 && jelentkezettOsztalyok.Tables[0].Rows.Count > 0) { var jelentkezettOsztalyokIdList = jelentkezettOsztalyok.Tables[0].AsEnumerable().Select(datarow => datarow.Field("ID").ToString()); jelentkezettOsztalyList.AddRange(list.Where(x => jelentkezettOsztalyokIdList.Contains(x.Value)).ToList()); } } return Json((list, jelentkezettOsztalyList)); } public JsonResult> GetEvfolyamokForEloadas(int? eloadasId = null, string evfolyamIdList = null, string isMindenEvfolyamJog = null) { var list = new List(); if (eloadasId.HasValue && !string.IsNullOrWhiteSpace(evfolyamIdList)) { var evfolyamIds = evfolyamIdList.Split(",".ToCharArray()); list.AddRange(evfolyamIds.Select(x => new SelectListItem { Value = x, Text = ((EvfolyamTipusEnum)int.Parse(x)).GetDisplayName(ClaimData.SelectedTanevID.Value) })); } return Json(list); } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveTanulokForEloadas(EloadasTanuloSaveModel model) { var id = int.Parse(model.eloadasId); var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var dbSzamossag = helper.GetEloadasSzamok(id); var dbTanuloSzam = dbSzamossag.Tables[0].Rows[0].Field("TanuloSzam"); var tanuloSzam = model.tanuIds != null ? model.tanuIds.Length + dbTanuloSzam : 0 + dbTanuloSzam; var kiseroSzam = model.kiseroSzam; string errors = string.Empty; if (model.TanuloLetszamFennmarado.HasValue && (model.tanuIds?.Length ?? 0) > model.TanuloLetszamFennmarado.Value) { errors += string.Format("{0}
", EloadasokResource.AFoglaltHelyekSzamaMeghaladjaATanuloKeretszamot); } if (model.kiseroSzam > model.KiseroLetszam) { errors += EloadasokResource.AFoglaltHelyekSzamaMeghaladjaAKiseroKeretszamot; } if (!string.IsNullOrWhiteSpace(errors)) { throw new StatusError(HttpStatusCode.BadRequest, errors); } var client = new LepClient(LepConfiguration.Url, LepConfiguration.ApiKey); var kozpontiResult = client.PostEloadasokTanuloszamossag(ClaimData.IntezmenyAzonosito, id, tanuloSzam, kiseroSzam); if (kozpontiResult.Sikeres) { helper.SaveTanulokEloadas(id, model.tanuIds, model.kiseroSzam); var ds = helper.GetTanulokForEloadasWithMegjelent(id, model.idopont); try { client.PostEloadasokTanulojelenlet(ClaimData.IntezmenyAzonosito, id, ds); } catch { } return new HttpResponseMessage(HttpStatusCode.OK); } else { throw new StatusError(HttpStatusCode.BadRequest, kozpontiResult.StatuszUzenet); } } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage DeleteTanulokForEloadasByOsztaly(DeleteModel model) { var id = int.Parse(model.eloadasId); var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var row = helper.GetEloadasSzamok(id).Tables[0].Rows[0]; var dbTanuloSzam = row.Field("TanuloSzam"); var dbKiseroSzam = row.Field("KiseroSzam"); int torlendoTanuloSzam = helper.GetTorlendoTanuloSzam(id, model.osztalyId); int kiseroSzam = (dbTanuloSzam - torlendoTanuloSzam) == 0 ? 0 : dbKiseroSzam; var client = new LepClient(LepConfiguration.Url, LepConfiguration.ApiKey); var kozpontiResult = client.PostEloadasokTanuloszamossag(ClaimData.IntezmenyAzonosito, id, dbTanuloSzam - torlendoTanuloSzam, dbKiseroSzam); if (kozpontiResult.Sikeres) { helper.DeleteTanulokForEloadasByOsztaly(id, model.osztalyId); if (kiseroSzam == 0) { helper.UpdateEloadasKiseroSzam(id, kiseroSzam); } return new HttpResponseMessage(HttpStatusCode.OK); } else { throw new StatusError(HttpStatusCode.BadRequest, kozpontiResult.StatuszUzenet); } } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveGondviseloEngedelyezes(GVEngedelyModel model) { var id = int.Parse(model.eloadasId); var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.SaveGondviseloEngedelyezes(id, model.tanuloId, ClaimData.GondviseloId.Value, model.engedelyezve == true ? "T" : model.engedelyezve == false ? "F" : ""); return new HttpResponseMessage(HttpStatusCode.OK); } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveTanulokMegjelent(List listModel) { var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()); foreach (var item in listModel) { if (item.Id.HasValue) { helper.SaveTanulokMegjelent(item.Id.Value, item.Megjelent); } } var ds = helper.GetTanulokForEloadasWithMegjelent(listModel[0].EloadasId, listModel[0].EloadasDatum); var client = new LepClient(LepConfiguration.Url, LepConfiguration.ApiKey); try { var kozpontiResult = client.PostEloadasokTanulojelenlet(ClaimData.IntezmenyAzonosito, listModel[0].EloadasId, ds); if (!kozpontiResult.Sikeres) { throw new StatusError(HttpStatusCode.BadRequest, kozpontiResult.StatuszUzenet); } } catch (Exception ex) { throw; } return new HttpResponseMessage(HttpStatusCode.OK); } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public string DeleteTanulokForEloadas(int Id, string eloadasId, string szervNev, string eloadasNev, DateTime idopont, DateTime kezdete, DateTime vege) { var id = int.Parse(eloadasId); var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var dataRow = helper.GetEloadasSzamok(id).Tables[0].Rows[0]; int tanuloSzam = dataRow.Field("TanuloSzam") - 1; int kiseroSzam = tanuloSzam == 0 ? 0 : dataRow.Field("KiseroSzam"); var client = new LepClient(LepConfiguration.Url, LepConfiguration.ApiKey); var kozpontiResult = client.PostEloadasokTanuloszamossag(ClaimData.IntezmenyAzonosito, id, tanuloSzam, kiseroSzam); if (kozpontiResult.Sikeres) { helper.DeleteTanuloEloadas(Id); if (kiseroSzam == 0) { helper.UpdateEloadasKiseroSzam(id, kiseroSzam); } } else { throw new StatusError(HttpStatusCode.BadRequest, kozpontiResult.StatuszUzenet); } return eloadasId; } private void SendEmailLEPJelentkezes(int eloadasId, string[] tanuloIds, int dbTanuloSzam, string szervNev, string eloadasNev, string idopont, string kezdete, string vege) { var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var emailList = helper.GetEloadasJelentkezesEmailData(eloadasId); foreach (DataRow item in emailList.Tables[0].Rows) { if ((tanuloIds != null && tanuloIds.Length > 0 && tanuloIds.Contains(item.Field("TanuloId").ToString())) || dbTanuloSzam == 0) { var uzenetHelper = new UzenetekHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var emailMsg = string.Format(EmailResource.LEPJelentkezesContent, item.Field("Nev"), item.Field("TanuloNev"), item.Field("TanuloOsztalyNev"), item.Field("IntezmenyNev"), szervNev, eloadasNev, idopont, kezdete, vege, item.Field("IntezmenyEmail") ); //uzenetHelper.EmailKuldes(emailMsg, EmailResource.LEPJelentkezesSubject, item.Field("EmailCim"), ClaimData.IntezmenyAzonosito); } } } private void SendEmailLEPTorles(int eloadasJegyzesId, string szervNev, string eloadasNev, string idopont, string kezdete, string vege) { var helper = new LepEloadasJegyzekHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var emailList = helper.GetEloadasLemondasEmailData(eloadasJegyzesId); foreach (DataRow item in emailList.Tables[0].Rows) { var uzenetHelper = new UzenetekHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var emailMsg = string.Format(EmailResource.LEPTorlesContent, item.Field("Nev"), item.Field("TanuloNev"), item.Field("TanuloOsztalyNev"), item.Field("IntezmenyNev"), szervNev, eloadasNev, idopont, kezdete, vege, item.Field("IntezmenyEmail") ); //uzenetHelper.EmailKuldes(emailMsg, EmailResource.LEPTorlesSubject, item.Field("EmailCim"), ClaimData.IntezmenyAzonosito); } } } }