203 lines
8.9 KiB
C#
203 lines
8.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Web.Mvc;
|
|
using Hangfire;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.Client.Eugyintezes.Configuration;
|
|
using Kreta.Core;
|
|
using Kreta.Core.FileService;
|
|
using Kreta.Enums;
|
|
using Kreta.Job.Tasks.Core;
|
|
using Kreta.Resources;
|
|
using Kreta.Web.Areas.Intezmeny.Controllers;
|
|
using Kreta.Web.Areas.Intezmeny.Models;
|
|
using Kreta.Web.Helpers;
|
|
using Kreta.Web.Helpers.Error;
|
|
using Kreta.Web.Helpers.TabStrip;
|
|
using Kreta.Web.Security;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Kreta.Web.Areas.Intezmeny.Logic
|
|
{
|
|
public static class TeremLogic
|
|
{
|
|
private static TabStripItemModel BuildTabStripModel(string itemId, string itemName, string area, string controller, string action, Dictionary<string, string> routeParameters)
|
|
=> new TabStripItemModel
|
|
{
|
|
ItemId = itemId,
|
|
ItemName = itemName,
|
|
Area = area,
|
|
Controller = controller,
|
|
Action = action,
|
|
RouteParameters = routeParameters
|
|
};
|
|
|
|
private static TabStripItemModel BuildTabStripModel<Model>(string itemId, string itemName, Model model, string partialViewName, bool isActive = false, Dictionary<string, string> routeParameters = null)
|
|
where Model : class
|
|
{
|
|
var tabStripItemModel = new TabStripItemModel
|
|
{
|
|
ItemId = itemId,
|
|
ItemName = itemName,
|
|
RouteParameters = routeParameters,
|
|
Model = model,
|
|
PartialViewName = partialViewName,
|
|
IsActive = isActive
|
|
};
|
|
|
|
if (routeParameters != null)
|
|
{
|
|
tabStripItemModel.RouteParameters = routeParameters;
|
|
}
|
|
|
|
return tabStripItemModel;
|
|
}
|
|
|
|
public static TeremModel GetTeremBaseProperties(int? teremId)
|
|
{
|
|
var teremModel = new TeremModel();
|
|
|
|
if (teremId > 0)
|
|
{
|
|
TeremCO teremCO = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTeremCo(teremId.Value);
|
|
|
|
teremModel = TeremModel.ConvertCoToModel(teremCO);
|
|
}
|
|
else
|
|
{
|
|
teremModel.TeremAlapadatokModel.Jelleg = (int)TeremTipusEnum.Osztalyterem;
|
|
teremModel.TeremBerbeadasModel.TulajdonTipusaId = (int)TulajdonTipusEnum.allami_tulajdonban_levo_ingatlan;
|
|
}
|
|
|
|
return teremModel;
|
|
}
|
|
|
|
public static TeremModModel GetTeremModelForModPopup(List<TeremModModel> teremModelList, int? szervezetId, bool isFromSzervezet)
|
|
{
|
|
var teremModModel = new TeremModModel()
|
|
{
|
|
IsFromSzervezet = isFromSzervezet,
|
|
};
|
|
|
|
foreach (var item in teremModelList)
|
|
{
|
|
teremModModel.TeremIDArray += item.TeremId.ToString() + ",";
|
|
teremModModel.TeremNevArray += item.Nev.ToString() + ", ";
|
|
}
|
|
|
|
teremModModel.TeremIDArray = teremModModel.TeremIDArray.Remove(teremModModel.TeremIDArray.Count() - 1);
|
|
teremModModel.TeremNevArray = teremModModel.TeremNevArray.Remove(teremModModel.TeremNevArray.Count() - 2);
|
|
teremModModel.ModSzervezetId = szervezetId.IsEntityId() ? szervezetId : null;
|
|
|
|
return teremModModel;
|
|
}
|
|
|
|
public static List<TabStripItemModel> GetDetailTabs(string teremId, bool isLetesitmenyBerbeadasEnabled, bool isFromSzervezet, string controllerName)
|
|
{
|
|
var tabStripItemModelList = new List<TabStripItemModel>()
|
|
{
|
|
BuildTabStripModel("1", IntezmenyResource.Alapadatok, Constants.Areas.Intezmeny, controllerName, nameof(BaseTeremController.OpenTeremBaseProperties), new Dictionary<string, string>() { { nameof(teremId), teremId } }),
|
|
BuildTabStripModel("3", IntezmenyResource.OrarendiOrak, Constants.Areas.Intezmeny, controllerName, nameof(BaseTeremController.OpenTeremOrarendiOrai), new Dictionary<string, string>() { { nameof(teremId), teremId } }),
|
|
};
|
|
|
|
if (!isFromSzervezet)
|
|
{
|
|
BuildTabStripModel("4", IntezmenyResource.TeremhezTartozoEszkozok, Constants.Areas.Intezmeny, Constants.Controllers.Terem, nameof(TeremController.OpenTeremEszkozok), new Dictionary<string, string>() { { nameof(teremId), teremId } });
|
|
}
|
|
|
|
if (isLetesitmenyBerbeadasEnabled && !isFromSzervezet)
|
|
{
|
|
tabStripItemModelList.Add(BuildTabStripModel("2", IntezmenyResource.Berbeadas, Constants.Areas.Intezmeny, Constants.Controllers.Terem, nameof(TeremController.OpenTeremBerbeadasProperties), new Dictionary<string, string>() { { nameof(teremId), teremId } }));
|
|
}
|
|
|
|
return tabStripItemModelList;
|
|
}
|
|
|
|
public static List<TabStripItemModel> GetNewTabs(TeremModel teremModel, bool isLetesitmenyBerbeadasEnabled)
|
|
{
|
|
var tabStripItemModelList = new List<TabStripItemModel>
|
|
{
|
|
BuildTabStripModel("1", IntezmenyResource.Alapadatok, teremModel, Constants.ViewNames.Terem.Edit_TeremBasicProperties_Tab, true)
|
|
};
|
|
|
|
if (isLetesitmenyBerbeadasEnabled)
|
|
{
|
|
tabStripItemModelList.Add(BuildTabStripModel("2", IntezmenyResource.Berbeadas, teremModel, Constants.ViewNames.Terem.Edit_TeremBerbeadas_Tab));
|
|
}
|
|
|
|
return tabStripItemModelList;
|
|
}
|
|
|
|
public static ActionResult ExportTermekAdatai(TeremSearchModel model, bool isSelectedTanev21_22OrLater)
|
|
{
|
|
MemoryStream stream = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTermekAdataiExcelExport(TeremSearchModel.ConvertModelSearchToCO(model), isSelectedTanev21_22OrLater);
|
|
var result = new FileStreamResult(stream, Core.Constants.ContentTypes.Xlsx) { FileDownloadName = $"{IntezmenyResource.TermekAdatai}.xlsx" };
|
|
return result;
|
|
}
|
|
|
|
public static List<UploadedFile> GetPicture(IFileService fileService, int? teremId)
|
|
{
|
|
try
|
|
{
|
|
if (teremId > 0)
|
|
{
|
|
TeremCO teremCO = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTeremCo(teremId.Value);
|
|
|
|
if (!string.IsNullOrWhiteSpace(teremCO.KepUtvonal) && !string.IsNullOrWhiteSpace(teremCO.KepKiterjesztes))
|
|
{
|
|
return new List<UploadedFile>
|
|
{
|
|
new UploadedFile
|
|
{
|
|
ContentAsBase64EncodedString = fileService.ReadAndResizeImage(teremCO.KepUtvonal, 350, 350)
|
|
}
|
|
};
|
|
}
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlLetolteseKozben);
|
|
}
|
|
|
|
return new List<UploadedFile> { new UploadedFile() };
|
|
}
|
|
|
|
public static (string FajNev, byte[] Content) GetDocument(IFileService fileService, int? teremId)
|
|
{
|
|
if (teremId > 0)
|
|
{
|
|
TeremCO teremCO = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTeremCo(teremId.Value);
|
|
|
|
if (!string.IsNullOrWhiteSpace(teremCO.DokumentumUtvonal) && !string.IsNullOrWhiteSpace(teremCO.DokumentumKiterjesztes))
|
|
{
|
|
return (FajNev: $"{teremCO.DokumentumNev}.{teremCO.DokumentumKiterjesztes}", Content: fileService.ReadFromFile(teremCO.DokumentumUtvonal));
|
|
}
|
|
}
|
|
|
|
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlLetolteseKozben);
|
|
}
|
|
|
|
public static void EugyErtesitesTeremBerbeadhatoStatuszValtozasrol(IEugyintezesClientConfiguration config)
|
|
{
|
|
TeremBerbeadhatoStatuszValtozasModel teremBerbeadhatoStatuszValtozasModel = new TeremBerbeadhatoStatuszValtozasModel();
|
|
TeremHelper teremHelper = new TeremHelper(ConnectionTypeExtensions.GetSessionConnectionType());
|
|
|
|
DataSet berbeadhatoTermekMukodesiHelyeinekVarosaiDataSet = teremHelper.GetBerbeadhatoTermekMukodesiHelyeinekVarosai();
|
|
teremBerbeadhatoStatuszValtozasModel.Varosok = new List<string>();
|
|
foreach (DataRow dataRow in berbeadhatoTermekMukodesiHelyeinekVarosaiDataSet.Tables[0].Rows)
|
|
{
|
|
teremBerbeadhatoStatuszValtozasModel.Varosok.Add(dataRow.Field<string>("Varos"));
|
|
}
|
|
|
|
var jsonData = JsonConvert.SerializeObject(teremBerbeadhatoStatuszValtozasModel);
|
|
|
|
BackgroundJob.Enqueue<IEugyintezesJob>((a) => a.TeremBerbeadhatoStatuszValtozas(null, config.BaseUrl, config.ApiKey, ClaimData.IntezmenyAzonosito, jsonData));
|
|
}
|
|
}
|
|
}
|