using System.Collections.Generic; using System.Linq; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.HelperClasses.ImportCo; using Kreta.BusinessLogic.Security; using Kreta.Enums.ManualEnums.ImportExport; using Kreta.Resources; using Kreta.Web.Areas.ImportExport.Models.CommonModels; using Kreta.Web.Security; namespace Kreta.Web.Areas.ImportExport.Controllers { [MvcRoleClaimsAuthorize(true)] [MvcRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)] public class BaseTantargyfelosztasImportExportController : BaseImportExportController { #region Public properties public static string TantargyGridName => "TantargyGrid"; public static string TantargyGridRowTemplateName => "TantargyGridRowTemplate"; public static string OsztalyGridName => "OsztalyGrid"; public static string OsztalyGridRowTemplateName => "OsztalyGridRowTemplate"; public static string CsoportGridName => "CsoportGrid"; public static string CsoportGridRowTemplateName => "CsoportGridRowTemplate"; public static string TantargyfelosztasGridName => "TantargyfelosztasGrid"; public static string TantargyfelosztasGridRowTemplateName => "TantargyfelosztasGridRowTemplate"; #endregion Public properties #region Import protected static ImportInfoSummaryModel GetTantargyImportInfoSummary(List importJsonItemList, List coList) { var importInfoSummary = new ImportInfoSummaryModel { ImportName = ImportExportTantargyfelosztasResource.Tantargy, InsertRowCount = importJsonItemList?.Count(x => x.Operation == (int)ImportItemOperationEnum.Insert).ToString() ?? "0", UpdateRowCount = "-", DeleteRowCount = "-", UnchangedRowCount = coList.Count.ToString(), InvalidRowCount = "-" }; return importInfoSummary; } protected static ImportInfoSummaryModel GetOsztalyImportInfoSummary(List importJsonItemList, List coList) { var importInfoSummary = new ImportInfoSummaryModel { ImportName = ImportExportTantargyfelosztasResource.Osztaly, InsertRowCount = importJsonItemList?.Count(x => x.Operation == (int)ImportItemOperationEnum.Insert).ToString() ?? "0", UpdateRowCount = "-", DeleteRowCount = "-", UnchangedRowCount = coList.Count.ToString(), InvalidRowCount = "-" }; return importInfoSummary; } protected static ImportInfoSummaryModel GetCsoportImportInfoSummary(List importJsonItemList, List coList) { var importInfoSummary = new ImportInfoSummaryModel { ImportName = ImportExportTantargyfelosztasResource.Csoport, InsertRowCount = importJsonItemList?.Count(x => x.Operation == (int)ImportItemOperationEnum.Insert).ToString() ?? "0", UpdateRowCount = "-", DeleteRowCount = "-", UnchangedRowCount = coList.Count.ToString(), InvalidRowCount = "-" }; return importInfoSummary; } protected List GetTantargyImportItemModelList(List importJsonItemList, List coList) { var importItemModelList = new List(); if (importJsonItemList == null) { if (coList.Count == 0) { return importItemModelList; } importJsonItemList = new List(); } //NOTE: Hozzáadjuk azokat a az elemeket, amik az excel-ből jöttek! foreach (TantargyImportJsonItemCo importJsonItem in importJsonItemList) { importItemModelList.Add(new TantargyImportItemModel { Nev = importJsonItem.Nev, Operation = importJsonItem.Operation }); } //NOTE: Hozzáadjuk azokat a az elemeket, amik az adatbázisból jöttek! foreach (TantargyItemCo co in coList) { if (!importJsonItemList.Select(x => x.Nev).Contains(co.Nev)) { importItemModelList.Add(new TantargyImportItemModel { Nev = co.Nev, Operation = (int)ImportItemOperationEnum.Default }); } } return importItemModelList.OrderBy(x => x.Nev).ThenByDescending(x => x.OperationText).ToList(); } protected List GetOsztalyImportItemModelList(List importJsonItemList, List coList) { var importItemModelList = new List(); if (importJsonItemList == null) { if (coList.Count == 0) { return importItemModelList; } importJsonItemList = new List(); } //NOTE: Hozzáadjuk azokat a az elemeket, amik az excel-ből jöttek! foreach (OsztalyImportJsonItemCo importJsonItem in importJsonItemList) { importItemModelList.Add(new OsztalyImportItemModel { Nev = importJsonItem.OsztalyCsoportNev, Operation = importJsonItem.Operation }); } //NOTE: Hozzáadjuk azokat a az elemeket, amik az adatbázisból jöttek! foreach (OsztalyItemCo co in coList) { if (!importJsonItemList.Select(x => x.OsztalyCsoportNev).Contains(co.Nev)) { importItemModelList.Add(new OsztalyImportItemModel { Nev = co.Nev, Operation = (int)ImportItemOperationEnum.Default }); } } return importItemModelList.OrderBy(x => x.Nev).ThenByDescending(x => x.OperationText).ToList(); } protected List GetCsoportImportItemModelList(List importJsonItemList, List coList) { var importItemModelList = new List(); if (importJsonItemList == null) { if (coList.Count == 0) { return importItemModelList; } importJsonItemList = new List(); } //NOTE: Hozzáadjuk azokat a az elemeket, amik az excel-ből jöttek! foreach (CsoportImportJsonItemCo importJsonItem in importJsonItemList) { importItemModelList.Add(new CsoportImportItemModel { Nev = importJsonItem.OsztalyCsoportNev, Operation = importJsonItem.Operation }); } //NOTE: Hozzáadjuk azokat a az elemeket, amik az adatbázisból jöttek! foreach (CsoportItemCo co in coList) { if (!importJsonItemList.Select(x => x.OsztalyCsoportNev).Contains(co.Nev)) { importItemModelList.Add(new CsoportImportItemModel { Nev = co.Nev, Operation = (int)ImportItemOperationEnum.Default }); } } return importItemModelList.OrderBy(x => x.Nev).ThenByDescending(x => x.OperationText).ToList(); } #endregion Import } }