265 lines
9.6 KiB
C#
265 lines
9.6 KiB
C#
using System.Collections.Generic;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Web.Http;
|
|
using System.Web.Http.ModelBinding;
|
|
using Kendo.Mvc.UI;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.Classes.ComboBox;
|
|
using Kreta.BusinessLogic.Exceptions;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Security;
|
|
using Kreta.BusinessLogic.Utils;
|
|
using Kreta.Core;
|
|
using Kreta.Core.Exceptions;
|
|
using Kreta.Enums;
|
|
using Kreta.Framework;
|
|
using Kreta.Framework.Entities;
|
|
using Kreta.Framework.Util;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.Tantargy.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.Tantargy.ApiControllers
|
|
{
|
|
[ApiRoleClaimsAuthorize(true)]
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)]
|
|
public class TantervekApiController : ApiController
|
|
{
|
|
public DataSourceResult GetTantervekGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
TantervSearchModel model = JsonConvert.DeserializeObject<TantervSearchModel>(data);
|
|
|
|
TantervHelper helper = new TantervHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
helper.GridParameters = Converter.GridParameter(request);
|
|
var tantervek = helper.TantervKereses(model.TantervNev, model.JellemzoCsopTipID, model.KezdoEvfolyamID, model.VegzoEvfolyamID, model.IsKerettantervreEpul, model.IsKerettantervSrc);
|
|
return tantervek.ToDataSourceResult();
|
|
}
|
|
|
|
public TantervModel GetTantervProperties(int tantervID)
|
|
{
|
|
TantervCO co;
|
|
|
|
TantervHelper thelper = new TantervHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
co = thelper.GetCo(tantervID);
|
|
|
|
return ConvertCOtoModel(co);
|
|
}
|
|
|
|
public TantervModModel GetTantervPropertiesMod(int tantervID)
|
|
{
|
|
TantervHelper thelper = new TantervHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
TantervCO co = thelper.GetCo(tantervID);
|
|
TantervModModel model = new TantervModModel()
|
|
{
|
|
ID = co.ID,
|
|
Nev = co.Nev,
|
|
CsoportTipusa = co.CsoportTipusa,
|
|
Evfolyamtol = co.Evfolyamtol,
|
|
Evfolyamig = co.Evfolyamig,
|
|
KerettantervreEpulo = co.KerettantervreEpulo.ToNullableInt(),
|
|
IsKerettanterv = co.IsKerettanterv.ToNullableInt()
|
|
};
|
|
|
|
return model;
|
|
}
|
|
|
|
public DataSourceResult GetTantervOSztalyai(string tantervID, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var helper = new TantervHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
helper.GridParameters = Converter.GridParameter(request);
|
|
|
|
var ds = helper.GetTantervOsztalyai(SDAConvert.ToInt32(tantervID));
|
|
|
|
return ds.ToDataSourceResult();
|
|
}
|
|
|
|
public DataSourceResult GetTantervTanuloi(string tantervID, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var helper = new TantervHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
helper.GridParameters = Converter.GridParameter(request);
|
|
|
|
var ds = helper.GetTantervTanuloi(SDAConvert.ToInt32(tantervID));
|
|
|
|
return ds.ToDataSourceResult();
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage SaveModifiedOrNewTanterv(TantervModel tmodel)
|
|
{
|
|
try
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
TantervCO co = ConvertModelToCO(tmodel);
|
|
TantervHelper helper = new TantervHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
if (co.ID.HasValue)
|
|
{
|
|
helper.Update(co);
|
|
}
|
|
else
|
|
{
|
|
helper.Insert(co);
|
|
}
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
catch (SDA.DataProvider.SDADataProviderException ex)
|
|
{
|
|
if (ex.Error == SDA.DataProvider.SDADataProviderError.UniqueKeyViolation)
|
|
{
|
|
string msg = string.Format(StringResourcesUtil.GetString(3554), StringResourcesUtil.GetString(1589 /*Tanterv neve*/));
|
|
ModelState.AddModelError("Nev", msg);
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
|
|
throw;
|
|
|
|
}
|
|
catch (CannotBeInsertedException e)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
|
}
|
|
}
|
|
|
|
public HttpResponseMessage SaveModTanterv(TantervModModel tmodel)
|
|
{
|
|
try
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
var co = ConvertModModelToCO(tmodel);
|
|
var helper = new TantervHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
if (string.IsNullOrWhiteSpace(tmodel.TantervIDArray))
|
|
{
|
|
helper.TantervTobbesModify(co);
|
|
}
|
|
else
|
|
{
|
|
string[] tantervIDArray = tmodel.TantervIDArray.Split(',');
|
|
foreach (var item in tantervIDArray)
|
|
{
|
|
co.ID = int.Parse(item);
|
|
helper.TantervTobbesModify(co);
|
|
}
|
|
}
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
|
|
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
|
|
}
|
|
catch (CannotBeInsertedException e)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
|
}
|
|
catch (BlException e)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
|
|
}
|
|
}
|
|
|
|
private TantervTobbesModCO ConvertModModelToCO(TantervModModel model)
|
|
{
|
|
return new TantervTobbesModCO()
|
|
{
|
|
ID = model.ID,
|
|
CsoportTipusa = model.CsoportTipusa,
|
|
Evfolyamig = model.Evfolyamig,
|
|
Evfolyamtol = model.Evfolyamtol,
|
|
KerettantervreEpulo = model.KerettantervreEpulo,
|
|
IsKerettanterv = model.IsKerettanterv
|
|
};
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage DeleteTanterv([FromBody] int tantervID)
|
|
{
|
|
if (ClaimData.SelectedTanevID == ClaimData.KovTanevID)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.TantervTorleseCsakAzAktualisTanevbenLehetseges);
|
|
}
|
|
|
|
try
|
|
{
|
|
TantervHelper helper = new TantervHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
var ds = helper.GetAktivTantervDataSet();
|
|
if (ds.Tables[0].Rows.Count == 1)
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.Legalabb1TantervLetezne);
|
|
|
|
helper.Delete(tantervID);
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
catch (BlException exception)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, exception.Message);
|
|
}
|
|
catch (EntityDeleteFailedException ex)
|
|
{
|
|
|
|
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Tanterv, ex.ConnectionErrorMessage);
|
|
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
|
}
|
|
|
|
}
|
|
|
|
private TantervCO ConvertModelToCO(TantervModel tmodel)
|
|
{
|
|
TantervCO co = new TantervCO()
|
|
{
|
|
CsoportTipusa = tmodel.CsoportTipusa ?? -1,
|
|
Evfolyamig = tmodel.Evfolyamig ?? -1,
|
|
Evfolyamtol = tmodel.Evfolyamtol ?? -1,
|
|
ID = tmodel.ID,
|
|
KerettantervreEpulo = tmodel.KerettantervreEpulo,
|
|
Megjegyzes = tmodel.Megjegyzes,
|
|
Nev = tmodel.Nev,
|
|
IsKerettanterv = tmodel.IsKerettanterv
|
|
};
|
|
|
|
return co;
|
|
}
|
|
|
|
private TantervModel ConvertCOtoModel(TantervCO co)
|
|
{
|
|
TantervModel model = new TantervModel()
|
|
{
|
|
CsoportTipusa = co.CsoportTipusa,
|
|
Evfolyamig = co.Evfolyamig,
|
|
Evfolyamtol = co.Evfolyamtol,
|
|
ID = co.ID,
|
|
KerettantervreEpulo = co.KerettantervreEpulo,
|
|
Megjegyzes = co.Megjegyzes,
|
|
Nev = co.Nev,
|
|
IsKerettanterv = co.IsKerettanterv
|
|
};
|
|
|
|
return model;
|
|
}
|
|
|
|
public System.Web.Http.Results.JsonResult<List<ComboBoxListItem>> GetEvfolyamListS([DataSourceRequest] DataSourceRequest request)
|
|
{
|
|
List<ComboBoxListItem> items = ((int)GeneratedAdatszotarTipusEnum.EvfolyamTipus).GetItemsByType(ClaimData.SelectedTanevID.Value, true).ToComboBoxItemList();
|
|
|
|
return Json(items);
|
|
}
|
|
}
|
|
}
|