using System; using System.Collections.Generic; using System.Data; using System.Net; using System.Net.Http; using System.Web.Http; using Kendo.Mvc.UI; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Logic; using Kreta.BusinessLogic.Security; using Kreta.Core; using Kreta.Framework.Util; using Kreta.Resources; using Kreta.Web.Areas.Orarend.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.Tanar.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize( KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Tanar.ClaimValue )] public class TanarBejelentettSzamonkeresekApiController : ApiController { public DataSourceResult GetBejelentettSzamonkeresekGrid(string data, DataSourceRequest request) { var (gridParameter, modelList) = GetGridData(data, request); return modelList.ToDataSourceResult(gridParameter); } public HttpResponseMessage GetExport(string data, DataSourceRequest request) { try { var (gridParameter, modelList) = GetGridData(data, request); modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary); var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos(BejelentettSzamonkeresekGridModel.BejelentettSzamonkeresekExportAttributeId); var memoryStream = SimpleExportLogic.GetExport(OrarendResource.BejelentettSzamonkeresekExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value); return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{OrarendResource.BejelentettSzamonkeresekExportFileName}_{DateTime.Now:yyyy_MM_dd}.xlsx"); } catch (Exception ex) { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex }; } } private (GridParameters gridParameter, List modelList) GetGridData(string data, DataSourceRequest request) { var model = JsonConvert.DeserializeObject(data); ///NOTE: Azért kell null-ra állítani, hogy láthassák egymás számonkéréseit a tanárok. Null-al nem szűrűnk így tanárra. model.TanarSrc = null; var gridParameter = Converter.GridParameter(request); var coList = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetBejelentettSzamonkeresekCoList(model.ConvertToCo()); var modelList = new List(); foreach (var co in coList) { var gridModel = new BejelentettSzamonkeresekGridModel(co); modelList.Add(gridModel); } return (gridParameter, modelList); } public DataSourceResult GetBejelentettSzamonkeresekExportGrid(string searchFilter, string sortColumn, string sortDir) { BejelentettSzamonkeresekSearchModel model = JsonConvert.DeserializeObject(searchFilter); model.TanarSrc = ClaimData.FelhasznaloId; var helper = new SzamonkeresElorejelzesHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var ds = helper.GetBejelentettSzamonkeresekGrid(model.ConvertToCo()); ds.Tables[0].Columns.Add("SzamonkeresDatumaStr", typeof(string)); ds.Tables[0].Columns.Add("BejelentesDatumaStr", typeof(string)); foreach (DataRow row in ds.Tables[0].Rows) { var dt = DateTime.Parse(row["SzamonkeresDatuma"].ToString()); row["SzamonkeresDatumaStr"] = dt.ToString("yyyy.MM.dd."); var dt2 = DateTime.Parse(row["BejelentesDatuma"].ToString()); row["BejelentesDatumaStr"] = dt2.ToString("yyyy.MM.dd."); } if (sortColumn != "-" && sortDir != "-") { DataSet result = new DataSet(); ds.Tables[0].DefaultView.Sort = (sortColumn).ToUpper() + " " + (sortDir).ToUpper(); result.Tables.Add(ds.Tables[0].DefaultView.ToTable()); return result.ToDataSourceResult(); } return ds.ToDataSourceResult(); } [System.Web.Http.HttpPost] public System.Web.Http.Results.JsonResult> GetExportColumns() { List Items = new List(); Items.Add(new ExportColumn() { Field = "SzamonkeresDatumaStr", Title = OrarendResource.Datum }); Items.Add(new ExportColumn() { Field = "HetNapja_DNAME", Title = OrarendResource.HetNapja }); Items.Add(new ExportColumn() { Field = "Oraszam", Title = OrarendResource.Oraszam }); Items.Add(new ExportColumn() { Field = "TargyNev", Title = OrarendResource.Targy }); Items.Add(new ExportColumn() { Field = "OsztalyNev", Title = OrarendResource.OsztalyCsoport }); Items.Add(new ExportColumn() { Field = "ErtekelesModNev", Title = OrarendResource.SzamonkeresMod }); Items.Add(new ExportColumn() { Field = "SzamonkeresMegnevezes", Title = OrarendResource.SzamonkeresMegnevezes }); Items.Add(new ExportColumn() { Field = "BejelentesDatumaStr", Title = OrarendResource.BejelentesDatuma }); return Json(Items); } } }