using DocumentFormat.OpenXml.Spreadsheet; using Sarand.BusinessMgr.Net.Core.Web.App; using Sarand.BusinessMgr.Net.Core.Web.Components; using Sarand.BusinessMgr.Net.Standard.Base.App; using Sarand.BusinessMgr.Net.Standard.Base.Bus.Control; using Sarand.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Helpers; using Sarand.Net.Standard.Base.Utils; using System; namespace Sarand.BusinessMgr.Web.Control.Models.Instance { //======================================================================= public class Model_Owner : SbmModel_Control { //------------------------------------------------------------------- // Construction. public Model_Owner(SbmLocaliser localiser) : base(localiser) { } //------------------------------------------------------------------- // Filter properties. public class FilterData { public String Search { get; set; } public String StatusCat { get; set; } public SbmcOwner.StatusCat GetStatusCat() { return EnumUtil.ParseEnum(StatusCat, SbmcOwner.StatusCat.NotDeleted); } } public FilterData Filter { get; } = new FilterData(); //------------------------------------------------------------------- // Item properties. public class OwnerData { public String Exists { get; set; } public String Id { get; set; } public String Name { get; set; } public String ContactName { get; set; } public String ContactEmailAddress { get; set; } public String ContactPhoneMain { get; set; } public String ContactPhoneAlt { get; set; } public String StatusCode { get; set; } public SaStatus GetStatus() { return SacsSystem.GetStatusForCode(StatusCode); } } public OwnerData Owner { get; } = new OwnerData(); //------------------------------------------------------------------- // Validation. //------------------------------------------------------------------- // Owner. public bool ValidateOwnerData(SbmController_Base.AjaxResponse_Data responseData) { // Record disposable items as they are created so all can be disposed when needed. using (DisposableCollection disposables = new DisposableCollection()) { // Owner name. if (Owner.Name != null) { String controlName = "OwnerName"; responseData.SetControlValue(controlName, Owner.Name); if (StringUtil.IsBlank(Owner.Name)) responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]); else if (StringUtil.GetLength(Owner.Name) > GetControlMaxLength(SbmDbDfn_Control.ColumnIdx.Owner_Name)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn_Control.ColumnIdx.Owner_Name)]); } // Owner contact name. if (Owner.ContactName != null) { String controlName = "OwnerContactName"; responseData.SetControlValue(controlName, Owner.ContactName); if (!StringUtil.IsBlank(Owner.ContactName)) { if (StringUtil.GetLength(Owner.ContactName) > GetControlMaxLength(SbmDbDfn_Control.ColumnIdx.Owner_ContactName)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn_Control.ColumnIdx.Owner_ContactName)]); } } // Contact email. if (Owner.ContactEmailAddress != null) { String controlName = "OwnerContactEmailAddress"; Owner.ContactEmailAddress = Owner.ContactEmailAddress.ToLowerInvariant(); responseData.SetControlValue(controlName, Owner.ContactEmailAddress); if (!StringUtil.IsBlank(Owner.ContactEmailAddress)) { if (StringUtil.GetLength(Owner.ContactEmailAddress) > GetControlMaxLength(SbmDbDfn_Control.ColumnIdx.Owner_ContactEmailAddress)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn_Control.ColumnIdx.Owner_ContactEmailAddress)]); else if (!SacsDataValidationHelper.IsValidEmailAddress(Owner.ContactEmailAddress)) responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]); } } // Contact Phone. if (Owner.ContactPhoneMain != null) { String controlName = "OwnerContactPhoneMain"; responseData.SetControlValue(controlName, Owner.ContactPhoneMain); if (StringUtil.GetLength(Owner.ContactPhoneMain) > GetControlMaxLength(SbmDbDfn_Control.ColumnIdx.Owner_ContactPhoneMain)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn_Control.ColumnIdx.Owner_ContactPhoneMain)]); else if (!StringUtil.IsEmpty(Owner.ContactPhoneMain) && !SacsDataValidationHelper.IsValidPhone(Owner.ContactPhoneMain)) responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]); } // Contact Alt Phone. if (Owner.ContactPhoneAlt != null) { String controlName = "OwnerContactPhoneAlt"; responseData.SetControlValue(controlName, Owner.ContactPhoneAlt); if (StringUtil.GetLength(Owner.ContactPhoneAlt) > GetControlMaxLength(SbmDbDfn_Control.ColumnIdx.Owner_ContactPhoneAlt)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn_Control.ColumnIdx.Owner_ContactPhoneAlt)]); else if (!StringUtil.IsEmpty(Owner.ContactPhoneAlt) && !SacsDataValidationHelper.IsValidPhone(Owner.ContactPhoneAlt)) responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]); } // Owner status. if (Owner.StatusCode != null) { String controlName = "OwnerStatus"; if (StringUtil.IsBlank(Owner.StatusCode)) responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]); else if (!SbmcOwner.ValidStatuses.Contains(Owner.GetStatus())) responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]); } } return !responseData.HasControlErrors(); } //------------------------------------------------------------------- } //======================================================================= }