102 lines
4.7 KiB
C#
102 lines
4.7 KiB
C#
using System;
|
|
using System.Data;
|
|
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.Enums;
|
|
using Kreta.Framework;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.TanuloErtekeles.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.TanuloErtekeles.ApiControllers
|
|
{
|
|
[ApiRoleClaimsAuthorize(true)]
|
|
[ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue)]
|
|
public class NaploEllenorzesApiController : ApiController
|
|
{
|
|
public DataSourceResult GetNaploEllenorzesGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
NaploEllenorzesKeresoModel model = JsonConvert.DeserializeObject<NaploEllenorzesKeresoModel>(data);
|
|
|
|
if (!model.OsztalyId.HasValue)
|
|
{
|
|
return new DataSourceResult();
|
|
}
|
|
|
|
Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(model.OsztalyId.Value).ToString(), out OktNevelesiKategoriaEnum osztalycsoportKategoria);
|
|
model.FeladatKategoriaId = (int)osztalycsoportKategoria;
|
|
|
|
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
|
|
if (!authorization.IsValidOsztaly(model.OsztalyId.Value))
|
|
{
|
|
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
|
}
|
|
|
|
var helper = new NaploEllenorzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
|
|
helper.GridParameters = Converter.GridParameter(request);
|
|
var ds = helper.GetNaploEllenorzesekHeadRow(model.FeladatKategoriaId, model.OsztalyId, model.FeladatEllatasiHelyId);
|
|
|
|
ds.Tables[0].Columns.Add("Osszegzes");
|
|
foreach (DataRow row in ds.Tables[0].Rows)
|
|
{
|
|
row["Osszegzes"] = string.Format(StringResourcesUtil.GetString(2745),
|
|
"<b>" + row["hetSorszam"] + "</b>", "<b>" + row["NemNaplozottOrakSzama"] + "</b>");
|
|
}
|
|
return ds.ToDataSourceResult();
|
|
}
|
|
|
|
public DataSourceResult GetNaploEllenorzesDetailsGrid(int? feladatKategoriaId, int? feladatEllatasiHelyId, int osztalyId, int hetsorszamaId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
|
|
{
|
|
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
|
|
if (!authorization.IsValidOsztaly(osztalyId))
|
|
{
|
|
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
|
}
|
|
|
|
var helper = new NaploEllenorzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
helper.GridParameters = Converter.GridParameter(request);
|
|
|
|
var ds = helper.GetNaploEllenorzesekDetails(feladatKategoriaId, hetsorszamaId, osztalyId, feladatEllatasiHelyId);
|
|
|
|
ds.Tables[0].Columns.Add("OraKezdeteString");
|
|
ds.Tables[0].Columns.Add("OraVegeString");
|
|
foreach (DataRow row in ds.Tables[0].Rows)
|
|
{
|
|
if (!row.Field<int?>("CsengetesiRend").HasValue)
|
|
{
|
|
row["OraKezdeteString"] = row.Field<DateTime>("OraKezdete").ToString("HH:mm");
|
|
row["OraVegeString"] = row.Field<DateTime>("OraVege").ToString("HH:mm");
|
|
}
|
|
}
|
|
|
|
return ds.ToDataSourceResult();
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage NaploellenorzesMentes(NaploEllenorzesModel model)
|
|
{
|
|
model.EllenorzesDatuma = model.EllenorzesDatuma.ToLocalTime();
|
|
|
|
var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization));
|
|
if (!authorization.IsValidOsztaly(model.OsztalyId.Value))
|
|
{
|
|
throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz);
|
|
}
|
|
|
|
var helper = new NaploEllenorzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
|
|
helper.SaveNaploEllenorzes(model.ConvertModelToCo());
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
}
|
|
}
|