141 lines
6.7 KiB
C#
141 lines
6.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Web.Http;
|
|
using System.Web.Http.Results;
|
|
using Kendo.Mvc.UI;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.Classes.ComboBox;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Logic;
|
|
using Kreta.BusinessLogic.Utils;
|
|
using Kreta.Core;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
using Kreta.Framework.Entities;
|
|
using Kreta.Framework.Util;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.TanuloErtekeles.Models.TanuloErtekeles;
|
|
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
|
|
{
|
|
public class BaseTanuloErtekelesKeresoApiController : ApiController
|
|
{
|
|
[NonAction]
|
|
public HttpResponseMessage GetExport(string data, DataSourceRequest request, SzervezetTipusEnum? szervezetTipus = null)
|
|
{
|
|
try
|
|
{
|
|
var (gridParameter, modelList) = GetGridData(data, request, szervezetTipus);
|
|
|
|
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
|
|
|
|
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<TanuloErtekelesListGridModel>(TanuloErtekelesListGridModel.TanuloErtekelesExportAttributeId);
|
|
|
|
var memoryStream = SimpleExportLogic.GetExport(TanuloErtekelesResource.TanulokJegyeiExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
|
|
|
|
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), TanuloErtekelesResource.TanulokJegyeiExportFileName);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
|
|
}
|
|
}
|
|
|
|
public (GridParameters gridParameter, List<TanuloErtekelesListGridModel> modelList) GetGridData(string data, DataSourceRequest request, SzervezetTipusEnum? szervezetTipus = null)
|
|
{
|
|
var model = JsonConvert.DeserializeObject<TanuloErtekelesListModel>(data);
|
|
|
|
if (szervezetTipus.HasValue)
|
|
{
|
|
model.SzervezetTipusIdSearch = (int)szervezetTipus;
|
|
}
|
|
|
|
var gridParameter = Converter.GridParameter(request);
|
|
|
|
var dataSet = new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloErtekelesListGridDataSet(model.ToCo(), utolagosOsztalyszures: true);
|
|
|
|
var kapcsolodoOsztalyCsoportList = new List<int>();
|
|
if (model.OsztalyCsoportIdSearch.HasValue && model.KellKapcsolodoCsoportokSearch)
|
|
{
|
|
kapcsolodoOsztalyCsoportList = new OsztalyCsoportHelper(ConnectionTypeExtensions.GetSessionConnectionType()).ListOsztalyCsoportokKapcsolodoOsztalyCsoportjai(new List<int> { model.OsztalyCsoportIdSearch.Value }).ToList();
|
|
}
|
|
else if (model.OsztalyCsoportIdSearch.HasValue)
|
|
{
|
|
kapcsolodoOsztalyCsoportList.Add(model.OsztalyCsoportIdSearch.Value);
|
|
}
|
|
|
|
var modelList = new List<TanuloErtekelesListGridModel>();
|
|
foreach (DataRow dataRow in dataSet.Tables[0].Rows)
|
|
{
|
|
var gridModel = new TanuloErtekelesListGridModel
|
|
{
|
|
ID = SDAConvert.ToString(dataRow["ID"]),
|
|
TanuloNev = SDAConvert.ToString(dataRow["TanuloNev"]),
|
|
TanuloNevElotagNelkul = SDAConvert.ToString(dataRow["TanuloNevElotagNelkul"]),
|
|
Datum = SDAConvert.ToDateTime(dataRow["Datum"]).Value,
|
|
RogzitesDatum = SDAConvert.ToDateTime(dataRow["RogzitesDatum"]).Value,
|
|
ErtekeloNyomtatasiNev = SDAConvert.ToString(dataRow["ErtekeloNyomtatasiNev"]) ?? string.Empty,
|
|
ErtekeloNyomtatasiNevElotagNelkul = SDAConvert.ToString(dataRow["ErtekeloNyomtatasiNevElotagNelkul"]) ?? string.Empty,
|
|
OsztalyCsoportNev = SDAConvert.ToString(dataRow["OsztalyCsoportNev"]) ?? string.Empty,
|
|
TantargyNev = SDAConvert.ToString(dataRow["TantargyNev"]) ?? string.Empty,
|
|
TipusId_DNAME = SDAConvert.ToString(dataRow["TipusId_DNAME"]) ?? string.Empty,
|
|
ErtekelesModId_DNAME = SDAConvert.ToString(dataRow["ErtekelesModId_DNAME"]) ?? string.Empty,
|
|
ErtekelesTema = SDAConvert.ToString(dataRow["ErtekelesTema"]) ?? string.Empty,
|
|
TanuloErtekelesText = SDAConvert.ToString(dataRow["TanuloErtekelesText"]) ?? string.Empty
|
|
};
|
|
|
|
if (!model.OsztalyCsoportIdSearch.IsEntityId() || (model.OsztalyCsoportIdSearch.IsEntityId() && kapcsolodoOsztalyCsoportList.Contains(SDAConvert.ToInt32(dataRow["OsztalyCsoportId"]))))
|
|
{
|
|
modelList.Add(gridModel);
|
|
}
|
|
}
|
|
|
|
return (gridParameter, modelList);
|
|
}
|
|
|
|
[HttpPost]
|
|
[ApiValidateAjaxAntiForgeryToken]
|
|
public HttpResponseMessage DeleteErtekeles([FromBody] int id)
|
|
{
|
|
try
|
|
{
|
|
var helper = new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
helper.DeleteTanuloErtekelesById(id);
|
|
|
|
return new HttpResponseMessage(HttpStatusCode.OK);
|
|
}
|
|
catch (EntityDeleteFailedException ex)
|
|
{
|
|
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloErtekelesResource.Ertekeles, ex.ConnectionErrorMessage);
|
|
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
|
|
}
|
|
}
|
|
|
|
public JsonResult<List<ComboBoxListItem>> GetOsztalyzatList()
|
|
{
|
|
var items = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.OsztalyzatTipus, ClaimData.SelectedTanevID.Value);
|
|
return Json(items.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value).ToComboBoxItemList());
|
|
}
|
|
|
|
public JsonResult<List<ComboBoxListItem>> GetErtekelesTipusList()
|
|
{
|
|
var items = ((int)GeneratedAdatszotarTipusEnum.ErtekelesTipus).GetItemsByType(ClaimData.SelectedTanevID.Value, true);
|
|
return Json(items.ToComboBoxItemList());
|
|
}
|
|
|
|
public JsonResult<List<ComboBoxListItem>> GetSpecialisOsztalyzatList()
|
|
{
|
|
var items = EnumExtensions.EnumToDictionary<SpecialisErtekelesOsztalyzatEnum>(ClaimData.SelectedTanevID.Value, removeValueList: new List<string> { ((int)SpecialisErtekelesOsztalyzatEnum.None).ToString() });
|
|
return Json(items.ToComboBoxItemList());
|
|
}
|
|
}
|
|
}
|