using Microsoft.AspNetCore.Http; using Sarand.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Utils; using Sarand.Net.Standard.Proc.Excel; using Saxonite.Base.App; using Saxonite.Net.Core.Web.Base.App; using Saxonite.Net.Core.Web.Base.Controllers; using Saxonite.Net.Core.Web.Base.Models; using Saxonite.Net.Standard.Base.App; using Saxonite.Net.Standard.Base.Bus; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Reflection; using System.Threading.Tasks; namespace Saxonite.Net.Core.Web.Admin.Models { //======================================================================= /// /// Model for Organisation Upload. /// public class Model_OrganisationUpload : SaxModel_Admin { //------------------------------------------------------------------- // Construction. public Model_OrganisationUpload(SaxLocaliser localiser) : base(localiser) { } //------------------------------------------------------------------- // Organisation data files - only one allowed per request. public List OrganisationDataFile { get; set; } // Data file properties. public String SheetNameOrNumber { get; set; } = "1"; public String HeaderRow { get; set; } = "1"; public String FirstDataRow { get; set; } = "2"; //------------------------------------------------------------------- // Validation. //------------------------------------------------------------------- public bool ValidateProperties(SaxController_Base.AjaxResponse_Data responseData) { // Data file. { String controlName = nameof(OrganisationDataFile); // A single data file must be supplied. if (OrganisationDataFile == null || !OrganisationDataFile.Any()) responseData.SetControlError(controlName, Localiser["msg.error.data.file.missing"]); else if (OrganisationDataFile != null && OrganisationDataFile.Count() > 1) responseData.SetControlError(controlName, Localiser["msg.error.data.file.multiple"]); } // Sheet name or number. { String controlName = nameof(SheetNameOrNumber); if (StringUtil.IsBlank(SheetNameOrNumber)) responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]); else if (!ExcelHelper.IsValidSheetName(SheetNameOrNumber)) responseData.SetControlError(controlName, Localiser["msg.error.sheet.name.invalid"]); } // Header row position (from 1). { String controlName = nameof(HeaderRow); if (StringUtil.IsBlank(HeaderRow)) responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]); else if (!StringUtil.IsNumeric(HeaderRow) || StringUtil.ToInt(HeaderRow) < 1) responseData.SetControlError(controlName, Localiser["msg.error.spreadsheet.row.invalid"]); } // First data row position (from 1). { String controlName = nameof(FirstDataRow); if (StringUtil.IsBlank(FirstDataRow)) responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]); else if (!StringUtil.IsNumeric(FirstDataRow) || StringUtil.ToInt(FirstDataRow) < 1) responseData.SetControlError(controlName, Localiser["msg.error.spreadsheet.row.invalid"]); } return !responseData.HasControlErrors(); } //------------------------------------------------------------------- } //======================================================================= }