Files
BusinessMgr-2019/SaBusinessMgrCoreWebControl/Control/Models/Instance/Model_Owner.cs
T

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();
}
//-------------------------------------------------------------------
}
//=======================================================================
}