init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
671
KretaWeb/Areas/LEPModul/ApiControllers/EloadasokKezeleseApi.cs
Normal file
671
KretaWeb/Areas/LEPModul/ApiControllers/EloadasokKezeleseApi.cs
Normal file
|
@ -0,0 +1,671 @@
|
|||
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<EloadasokSearchModel>(data);
|
||||
List<EloadasokGridModel> lEloadasok = new List<EloadasokGridModel>();
|
||||
List<EloadasokGridModel> LResult = new List<EloadasokGridModel>();
|
||||
model.EvfolyamIdList = new List<int>();
|
||||
|
||||
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<EloadasokSearchModel>(data);
|
||||
List<EloadasokGridModel> lEloadasok = new List<EloadasokGridModel>();
|
||||
List<EloadasokGridModel> LResult = new List<EloadasokGridModel>();
|
||||
model.EvfolyamIdList = new List<int>();
|
||||
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<EloadasokGridModel> removableList = new List<EloadasokGridModel>();
|
||||
|
||||
foreach (DataRow item in tanuloEloadas.Tables[0].Rows)
|
||||
{
|
||||
var removable = lEloadasok.Where(x => x.ID == (item.Field<int>("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<int>("EloadasId")).ToString())
|
||||
{
|
||||
item.GondviseloElfogadas = row.Field<string>("GondviseloElfogadas");
|
||||
item.Megjelent = row.Field<string>("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<EloadasokGridModel> GetPage(List<EloadasokGridModel> 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<EloadasokDetailModel>(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<List<SelectListItem>> GetTanulokForEloadas(int? eloadasId = null, int? evfolyamId = null, string filter = null, string isMindenEvfolyamJog = null)
|
||||
{
|
||||
var list = new List<SelectListItem>();
|
||||
|
||||
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<int>("TanuloId").ToString(),
|
||||
Text = dataRow.Field<string>("TanuloNev").ToString(),
|
||||
Selected = false
|
||||
}).ToList());
|
||||
}
|
||||
}
|
||||
|
||||
return Json(list);
|
||||
}
|
||||
|
||||
public JsonResult<List<SelectListItem>> GetTanulokForOsztaly(int? eloadasId = null, int? evfolyamId = null, string filter = null, string isMindenEvfolyamJog = null)
|
||||
{
|
||||
var list = new List<SelectListItem>();
|
||||
|
||||
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<int>("TanuloId").ToString(),
|
||||
Text = dataRow.Field<string>("TanuloNyomtatasiNev").ToString(),
|
||||
Selected = false
|
||||
}).ToList());
|
||||
}
|
||||
}
|
||||
|
||||
return Json(list);
|
||||
}
|
||||
|
||||
public JsonResult<(List<SelectListItem>, List<SelectListItem>)> GetOsztalyokForEloadas(int? eloadasId = null, int? evfolyamId = null, string isMindenEvfolyamJog = null)
|
||||
{
|
||||
var list = new List<SelectListItem>();
|
||||
var jelentkezettOsztalyList = new List<SelectListItem>();
|
||||
|
||||
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<int>("Id").ToString(),
|
||||
Text = dataRow.Field<string>("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<int>("ID").ToString());
|
||||
jelentkezettOsztalyList.AddRange(list.Where(x => jelentkezettOsztalyokIdList.Contains(x.Value)).ToList());
|
||||
}
|
||||
}
|
||||
|
||||
return Json((list, jelentkezettOsztalyList));
|
||||
}
|
||||
|
||||
public JsonResult<List<SelectListItem>> GetEvfolyamokForEloadas(int? eloadasId = null, string evfolyamIdList = null, string isMindenEvfolyamJog = null)
|
||||
{
|
||||
var list = new List<SelectListItem>();
|
||||
|
||||
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<int>("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}<br/>", 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<int>("TanuloSzam");
|
||||
var dbKiseroSzam = row.Field<int>("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<MegjelentDataModel> 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<int>("TanuloSzam") - 1;
|
||||
int kiseroSzam = tanuloSzam == 0 ? 0 : dataRow.Field<int>("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<int>("TanuloId").ToString())) || dbTanuloSzam == 0)
|
||||
{
|
||||
var uzenetHelper = new UzenetekHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
||||
var emailMsg = string.Format(EmailResource.LEPJelentkezesContent,
|
||||
item.Field<string>("Nev"),
|
||||
item.Field<string>("TanuloNev"),
|
||||
item.Field<string>("TanuloOsztalyNev"),
|
||||
item.Field<string>("IntezmenyNev"),
|
||||
szervNev,
|
||||
eloadasNev,
|
||||
idopont,
|
||||
kezdete,
|
||||
vege,
|
||||
item.Field<string>("IntezmenyEmail")
|
||||
);
|
||||
//uzenetHelper.EmailKuldes(emailMsg, EmailResource.LEPJelentkezesSubject, item.Field<string>("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<string>("Nev"),
|
||||
item.Field<string>("TanuloNev"),
|
||||
item.Field<string>("TanuloOsztalyNev"),
|
||||
item.Field<string>("IntezmenyNev"),
|
||||
szervNev,
|
||||
eloadasNev,
|
||||
idopont,
|
||||
kezdete,
|
||||
vege,
|
||||
item.Field<string>("IntezmenyEmail")
|
||||
);
|
||||
//uzenetHelper.EmailKuldes(emailMsg, EmailResource.LEPTorlesSubject, item.Field<string>("EmailCim"), ClaimData.IntezmenyAzonosito);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue