143 lines
6.1 KiB
C#
143 lines
6.1 KiB
C#
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.BusinessMgr.Web.Control.Components;
|
|
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<SacsHierarchyItem> disposables = new DisposableCollection<SacsHierarchyItem>())
|
|
{
|
|
|
|
// 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();
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|