Portal signin via Control Instance
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
public class SbmInternals_Control : SacsDisposable
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private readonly SbmSystem system = SbmGlobals.System;
|
||||
private class MgrData
|
||||
{
|
||||
public SbmcAccountMgr controlAccountMgr;
|
||||
public SbmcInstanceMgr controlInstanceMgr;
|
||||
public SbmcItemMgr controlItemMgr;
|
||||
}
|
||||
private MgrData mgr { get; } = new MgrData();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SbmInternals_Control()
|
||||
{
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
if (mgr.controlAccountMgr != null) mgr.controlAccountMgr.Dispose();
|
||||
if (mgr.controlInstanceMgr != null) mgr.controlInstanceMgr.Dispose();
|
||||
if (mgr.controlItemMgr != null) mgr.controlItemMgr.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Control managers.
|
||||
public SbmcAccountMgr ControlAccountMgr
|
||||
{
|
||||
get
|
||||
{
|
||||
if (mgr.controlAccountMgr == null)
|
||||
mgr.controlAccountMgr = system.CreateControlAccountMgr();
|
||||
return mgr.controlAccountMgr;
|
||||
}
|
||||
}
|
||||
public SbmcInstanceMgr ControlInstanceMgr
|
||||
{
|
||||
get
|
||||
{
|
||||
if (mgr.controlInstanceMgr == null)
|
||||
mgr.controlInstanceMgr = system.CreateControlInstanceMgr();
|
||||
return mgr.controlInstanceMgr;
|
||||
}
|
||||
}
|
||||
public SbmcItemMgr ControlItemMgr
|
||||
{
|
||||
get
|
||||
{
|
||||
if (mgr.controlItemMgr == null)
|
||||
mgr.controlItemMgr = system.CreateControlItemMgr();
|
||||
return mgr.controlItemMgr;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
public abstract partial class SbmcAccountMgr : SbmcControlMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmcAccountMgr() : base()
|
||||
{
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
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.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Mail;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SbmcAccountMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Retrieve individual userAccounts.
|
||||
//-------------------------------------------------------------------
|
||||
// UserAccount exists.
|
||||
public bool UserAccountExistsById(SysId userAccountId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(userAccountId)) return false;
|
||||
SbmcUserAccount.Params prmUserAccount = new SbmcUserAccount.Params();
|
||||
prmUserAccount.IdsIncluded.Add(userAccountId);
|
||||
prmUserAccount.StatusCat = SbmcUserAccount.StatusCat.Any;
|
||||
return GetUserAccountCount(prmUserAccount) == 1;
|
||||
}
|
||||
public bool UserAccountExistsByUserId(SysId userAccountIdOwner)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(userAccountIdOwner)) return false;
|
||||
SbmcUserAccount.Params prmUserAccount = new SbmcUserAccount.Params();
|
||||
prmUserAccount.IdsIncluded.Add(userAccountIdOwner);
|
||||
prmUserAccount.StatusCat = SbmcUserAccount.StatusCat.Any;
|
||||
return GetUserAccountCount(prmUserAccount) == 1;
|
||||
}
|
||||
public bool OrganisationExistsByName(String organisationName, SysId userAccountIdExclude)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StringUtil.IsEmpty(organisationName) || !SysId.IsValid(userAccountIdExclude)) return false;
|
||||
SbmcUserAccount.Params prmUserAccount = new SbmcUserAccount.Params();
|
||||
prmUserAccount.Name = organisationName;
|
||||
prmUserAccount.IdsExcluded.Add(userAccountIdExclude);
|
||||
prmUserAccount.StatusCat = SbmcUserAccount.StatusCat.Any;
|
||||
return GetUserAccountCount(prmUserAccount) == 1;
|
||||
}
|
||||
public bool IndividualExistsByName(String firstName, String lastName, SysId userAccountIdExclude)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StringUtil.IsEmpty(firstName) || !StringUtil.IsEmpty(lastName) || !SysId.IsValid(userAccountIdExclude)) return false;
|
||||
SbmcUserAccount.Params prmUserAccount = new SbmcUserAccount.Params();
|
||||
prmUserAccount.Name = firstName;
|
||||
prmUserAccount.Name = lastName;
|
||||
prmUserAccount.IdsExcluded.Add(userAccountIdExclude);
|
||||
prmUserAccount.StatusCat = SbmcUserAccount.StatusCat.Any;
|
||||
return GetUserAccountCount(prmUserAccount) == 1;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get UserAccount.
|
||||
public abstract SbmcUserAccount GetUserAccount(SbmcUserAccount.Params prm);
|
||||
public SbmcUserAccount GetUserAccountById(SysId userAccountId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(userAccountId)) return null;
|
||||
SbmcUserAccount.Params prmUserAccount = new SbmcUserAccount.Params();
|
||||
prmUserAccount.IdsIncluded.Add(userAccountId);
|
||||
prmUserAccount.StatusCat = SbmcUserAccount.StatusCat.Any;
|
||||
return GetUserAccount(prmUserAccount);
|
||||
}
|
||||
public SbmcUserAccount GetUserAccountByEmailAddress(String emailAddress)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsBlank(emailAddress)) return null;
|
||||
SbmcUserAccount.Params prmUserAccount = new SbmcUserAccount.Params();
|
||||
prmUserAccount.EmailAddress = emailAddress;
|
||||
prmUserAccount.StatusCat = SbmcUserAccount.StatusCat.Any;
|
||||
return GetUserAccount(prmUserAccount);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create UserAccount.
|
||||
public abstract SbmcUserAccount CreateUserAccount();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate UserAccount data.
|
||||
public bool IsValidUserAccount(SbmcUserAccount userAccount)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (userAccount == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
|
||||
return IsValidUserAccountData(userAccount.GetData(), new SbmcUserAccount.ErrField());
|
||||
}
|
||||
public virtual bool IsValidUserAccountData(SbmcUserAccount.Data data, SbmcUserAccount.ErrField errField)
|
||||
{
|
||||
// UserAccount properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState("item not specified");
|
||||
|
||||
// Name.
|
||||
if (errField.Title != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Title, "title", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.UserAccount_Title)))
|
||||
{
|
||||
errField.Title = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.FirstName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FirstName, "first name", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.UserAccount_FirstName)))
|
||||
{
|
||||
errField.FirstName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Initials != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Initials, "initials", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.UserAccount_Initials)))
|
||||
{
|
||||
errField.Initials = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.LastName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.LastName, "last name", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.UserAccount_LastName), true))
|
||||
{
|
||||
errField.LastName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Phone numbers.
|
||||
if (errField.PhoneMain != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMain, "phone number", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.UserAccount_PhoneMain)))
|
||||
{
|
||||
errField.PhoneMain = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.PhoneMobile != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMobile, "mobile number", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.UserAccount_PhoneMobile)))
|
||||
{
|
||||
errField.PhoneMobile = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.PhoneAlt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneAlt, "alt number", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.UserAccount_PhoneAlt)))
|
||||
{
|
||||
errField.PhoneAlt = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.UserAccount_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.UserAccount_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (!SbmcUserAccount.ValidStatuses.Contains(data.Status))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState(ErrorMessage.InvalidStatus);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// UserAccount database interface.
|
||||
public abstract bool InsertUserAccount(SbmcUserAccount userAccount, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool UpdateUserAccount(SbmcUserAccount userAccount, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool UserAccountCanBeDeleted(SbmcUserAccount userAccount)
|
||||
{
|
||||
if (userAccount == null) return SetErrorState("item not specified");
|
||||
//ClearErrorState();
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeleteUserAccount(SbmcUserAccount userAccount, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// UserAccount list.
|
||||
public abstract ColumnDfn GetUserAccountColumnDfn(SbmcUserAccount.Column columnId, String caption = "", int width = 0);
|
||||
public abstract List<String> GetUserAccountQueryFilter(SbmcUserAccount.Params prm);
|
||||
public abstract long GetUserAccountCount(SbmcUserAccount.Params prm);
|
||||
public abstract List<SbmcUserAccount> GetUserAccountList(SbmcUserAccount.Params prm);
|
||||
public abstract DbResultSet ExecuteUserAccountQuery(List<ColumnDfn> columns, SbmcUserAccount.Params prm);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// D a t a V a l u e s
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Extract and format result set data value where specific handling is required.
|
||||
/// <para>Where response is an invalid data value, format value using column.FormatValue(values).</para>
|
||||
/// </summary>
|
||||
public DataValue GetUserAccountDataValue(ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SbmcUserAccount.Column)column.Id)
|
||||
{
|
||||
// Notes.
|
||||
case SbmcUserAccount.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
// Status.
|
||||
case SbmcUserAccount.Column.Status_Desc:
|
||||
case SbmcUserAccount.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SbmcUserAccount.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode));
|
||||
else if (column.Id == (int)SbmcUserAccount.Column.Status_Ind)
|
||||
value = new DataValue(SbmcUserAccount.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus.Control;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.CodeTypes;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Interfaces;
|
||||
using Sarand.Net.Standard.Base.ItemDocs;
|
||||
using Sarand.Net.Standard.Base.ItemOptions;
|
||||
using Sarand.Net.Standard.Base.ReferenceData;
|
||||
using Sarand.Net.Standard.Base.Security;
|
||||
using Sarand.Net.Standard.Base.UpdateLog;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
public abstract class SbmcControlMgr : SbmItemMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private SbmInternals_Control internals = null;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Static initialisation.
|
||||
static SbmcControlMgr()
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmcControlMgr()
|
||||
{
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
if (internals != null) internals.Dispose();
|
||||
internals = null;
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
protected SbmInternals_Control Internals_Control { get { if (internals == null) internals = new SbmInternals_Control(); return internals; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Control managers.
|
||||
protected SbmcAccountMgr ControlAccountMgr { get { return Internals_Control.ControlAccountMgr; } }
|
||||
protected SbmcInstanceMgr ControlInstanceMgr { get { return Internals_Control.ControlInstanceMgr; } }
|
||||
protected SbmcItemMgr ControlItemMgr { get { return Internals_Control.ControlItemMgr; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Get suitable display test to identity Control data item.
|
||||
/// </summary>
|
||||
/// <param name="itemId"></param>
|
||||
/// <returns></returns>
|
||||
public String GetItemCaption(ItemId itemId)
|
||||
{
|
||||
if (ItemId.IsValid(itemId))
|
||||
{
|
||||
// Record disposable items as they are created so all can be disposed when needed.
|
||||
using (DisposableCollection<SacsHierarchyItem> disposables = new DisposableCollection<SacsHierarchyItem>())
|
||||
{
|
||||
if (itemId.Type == (short)SbmcHierarchyItem.ItemType.UserAccount)
|
||||
{
|
||||
SbmcUserAccount userAccount = ControlAccountMgr.GetUserAccountById(itemId.Id);
|
||||
disposables.Add(userAccount);
|
||||
if (userAccount != null)
|
||||
return userAccount.GetDisplayName();
|
||||
return $"UserAccount #{itemId.Id}";
|
||||
}
|
||||
if (itemId.Type == (short)SbmcHierarchyItem.ItemType.Owner)
|
||||
{
|
||||
SbmcOwner owner = ControlInstanceMgr.GetOwnerById(itemId.Id);
|
||||
disposables.Add(owner);
|
||||
if (owner != null)
|
||||
return owner.Name;
|
||||
return $"Owner #{itemId.Id}";
|
||||
}
|
||||
if (itemId.Type == (short)SbmcHierarchyItem.ItemType.Repository)
|
||||
{
|
||||
SbmcRepository repository = ControlInstanceMgr.GetRepositoryById(itemId.Id);
|
||||
disposables.Add(repository);
|
||||
if (repository != null)
|
||||
return repository.Context;
|
||||
return $"Repository #{itemId.Id}";
|
||||
}
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using System.Collections.Generic;
|
||||
using static Sarand.BusinessMgr.Net.Standard.Base.App.Sbm.Config;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
public abstract partial class SbmcInstanceMgr : SbmcControlMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmcInstanceMgr() : base()
|
||||
{
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
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.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Mail;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
// Control Instance Manager - Owners.
|
||||
//=======================================================================
|
||||
partial class SbmcInstanceMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Owner exists.
|
||||
public bool OwnerExistsById(SysId ownerId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(ownerId)) return false;
|
||||
SbmcOwner.Params prmOwner = new SbmcOwner.Params();
|
||||
prmOwner.IdsIncluded.Add(ownerId);
|
||||
prmOwner.StatusCat = SbmcOwner.StatusCat.Any;
|
||||
return GetOwnerCount(prmOwner) == 1;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Owner.
|
||||
public abstract SbmcOwner GetOwner(SbmcOwner.Params prm);
|
||||
public SbmcOwner GetOwnerById(SysId ownerId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(ownerId)) return null;
|
||||
SbmcOwner.Params prmOwner = new SbmcOwner.Params();
|
||||
prmOwner.IdsIncluded.Add(ownerId);
|
||||
prmOwner.StatusCat = SbmcOwner.StatusCat.Any;
|
||||
return GetOwner(prmOwner);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create Owner.
|
||||
public abstract SbmcOwner CreateOwner();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Owner data.
|
||||
public bool IsValidOwner(SbmcOwner owner)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (owner == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
|
||||
return IsValidOwnerData(owner.GetData(), new SbmcOwner.ErrField());
|
||||
}
|
||||
public virtual bool IsValidOwnerData(SbmcOwner.Data data, SbmcOwner.ErrField errField)
|
||||
{
|
||||
// Owner properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState("item not specified");
|
||||
|
||||
// Contact.
|
||||
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Owner_Name), true))
|
||||
{
|
||||
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ContactName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactName, "contact", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Owner_ContactName)))
|
||||
{
|
||||
errField.ContactName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ContactEmailAddress != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactEmailAddress, "contact email", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Owner_ContactEmailAddress)))
|
||||
{
|
||||
errField.ContactEmailAddress = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ContactPhoneMain != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactPhoneMain, "contact phone", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Owner_ContactPhoneMain)))
|
||||
{
|
||||
errField.ContactPhoneMain = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ContactPhoneAlt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactPhoneAlt, "contact alt phone", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Owner_ContactPhoneAlt)))
|
||||
{
|
||||
errField.ContactPhoneAlt = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Owner_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Owner_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (!SbmcOwner.ValidStatuses.Contains(data.Status))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState(ErrorMessage.InvalidStatus);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Owner owner interface.
|
||||
public abstract bool InsertOwner(SbmcOwner owner, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool UpdateOwner(SbmcOwner owner, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool OwnerCanBeDeleted(SbmcOwner owner)
|
||||
{
|
||||
if (owner == null) return SetErrorState("item not specified");
|
||||
//ClearErrorState();
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeleteOwner(SbmcOwner owner, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Owner list.
|
||||
public abstract ColumnDfn GetOwnerColumnDfn(SbmcOwner.Column columnId, String caption = "", int width = 0);
|
||||
public abstract List<String> GetOwnerQueryFilter(SbmcOwner.Params prm);
|
||||
public abstract long GetOwnerCount(SbmcOwner.Params prm);
|
||||
public abstract List<SbmcOwner> GetOwnerList(SbmcOwner.Params prm);
|
||||
public abstract DbResultSet ExecuteOwnerQuery(List<ColumnDfn> columns, SbmcOwner.Params prm);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// D a t a V a l u e s
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Extract and format result set data value where specific handling is required.
|
||||
/// <para>Where response is an invalid data value, format value using column.FormatValue(values).</para>
|
||||
/// </summary>
|
||||
public DataValue GetOwnerDataValue(ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SbmcOwner.Column)column.Id)
|
||||
{
|
||||
// Notes.
|
||||
case SbmcOwner.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
// Status.
|
||||
case SbmcOwner.Column.Status_Desc:
|
||||
case SbmcOwner.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SbmcOwner.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode));
|
||||
else if (column.Id == (int)SbmcOwner.Column.Status_Ind)
|
||||
value = new DataValue(SbmcOwner.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,198 @@
|
||||
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.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Mail;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
// Control - Instance Manager - Repositories.
|
||||
//=======================================================================
|
||||
partial class SbmcInstanceMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Repository exists.
|
||||
public bool RepositoryExistsById(SysId repositoryId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(repositoryId)) return false;
|
||||
SbmcRepository.Params prmRepository = new SbmcRepository.Params();
|
||||
prmRepository.IdsIncluded.Add(repositoryId);
|
||||
prmRepository.StatusCat = SbmcRepository.StatusCat.Any;
|
||||
return GetRepositoryCount(prmRepository) == 1;
|
||||
}
|
||||
public bool RepositoryExistsByContext(String context)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StringUtil.IsBlank(context)) return false;
|
||||
SbmcRepository.Params prmRepository = new SbmcRepository.Params();
|
||||
prmRepository.ContextsIncluded.Add(context);
|
||||
prmRepository.StatusCat = SbmcRepository.StatusCat.Any;
|
||||
return GetRepositoryCount(prmRepository) == 1;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Repository.
|
||||
public abstract SbmcRepository GetRepository(SbmcRepository.Params prm);
|
||||
public SbmcRepository GetRepositoryById(SysId repositoryId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(repositoryId)) return null;
|
||||
SbmcRepository.Params prmRepository = new SbmcRepository.Params();
|
||||
prmRepository.IdsIncluded.Add(repositoryId);
|
||||
prmRepository.StatusCat = SbmcRepository.StatusCat.Any;
|
||||
return GetRepository(prmRepository);
|
||||
}
|
||||
public SbmcRepository GetRepositoryByContext(String context)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsBlank(context)) return null;
|
||||
SbmcRepository.Params prmRepository = new SbmcRepository.Params();
|
||||
prmRepository.ContextsIncluded.Add(context);
|
||||
prmRepository.StatusCat = SbmcRepository.StatusCat.Any;
|
||||
return GetRepository(prmRepository);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create Repository.
|
||||
public abstract SbmcRepository CreateRepository();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Repository data.
|
||||
public bool IsValidRepository(SbmcRepository repository)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (repository == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
|
||||
return IsValidRepositoryData(repository.GetData(), new SbmcRepository.ErrField());
|
||||
}
|
||||
public virtual bool IsValidRepositoryData(SbmcRepository.Data data, SbmcRepository.ErrField errField)
|
||||
{
|
||||
// Repository properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState("item not specified");
|
||||
|
||||
// Owner.
|
||||
if (!SysId.IsValid(data.OwnerId)) return SetErrorState("Owner must be specified");
|
||||
|
||||
// Repository.
|
||||
if (errField.Context != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Context, "context", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Repository_Context), true))
|
||||
{
|
||||
errField.Context = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ServerName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ServerName, "server", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Repository_ServerName), true))
|
||||
{
|
||||
errField.ServerName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.InstanceName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.InstanceName, "instance", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Repository_InstanceName)))
|
||||
{
|
||||
errField.InstanceName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DatabaseName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DatabaseName, "database", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Repository_DatabaseName), true))
|
||||
{
|
||||
errField.DatabaseName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Credentials.
|
||||
|
||||
if (errField.UserName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.UserName, "user", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Repository_UserName)))
|
||||
{
|
||||
errField.UserName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Password != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Password, "password", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Repository_Password)))
|
||||
{
|
||||
errField.Password = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Repository_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.Repository_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (!SbmcRepository.ValidStatuses.Contains(data.Status))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState(ErrorMessage.InvalidStatus);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Repository repository interface.
|
||||
public abstract bool InsertRepository(SbmcRepository repository, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool UpdateRepository(SbmcRepository repository, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool RepositoryCanBeDeleted(SbmcRepository repository)
|
||||
{
|
||||
if (repository == null) return SetErrorState("item not specified");
|
||||
//ClearErrorState();
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeleteRepository(SbmcRepository repository, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Repository list.
|
||||
public abstract ColumnDfn GetRepositoryColumnDfn(SbmcRepository.Column columnId, String caption = "", int width = 0);
|
||||
public abstract List<String> GetRepositoryQueryFilter(SbmcRepository.Params prm);
|
||||
public abstract long GetRepositoryCount(SbmcRepository.Params prm);
|
||||
public abstract List<SbmcRepository> GetRepositoryList(SbmcRepository.Params prm);
|
||||
public abstract DbResultSet ExecuteRepositoryQuery(List<ColumnDfn> columns, SbmcRepository.Params prm);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// D a t a V a l u e s
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Extract and format result set data value where specific handling is required.
|
||||
/// <para>Where response is an invalid data value, format value using column.FormatValue(values).</para>
|
||||
/// </summary>
|
||||
public DataValue GetRepositoryDataValue(ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SbmcRepository.Column)column.Id)
|
||||
{
|
||||
// Notes.
|
||||
case SbmcRepository.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
// Status.
|
||||
case SbmcRepository.Column.Status_Desc:
|
||||
case SbmcRepository.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SbmcRepository.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode));
|
||||
else if (column.Id == (int)SbmcRepository.Column.Status_Ind)
|
||||
value = new DataValue(SbmcRepository.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
public abstract partial class SbmcItemMgr : SbmcControlMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmcItemMgr() : base()
|
||||
{
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,212 @@
|
||||
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.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Mail;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
// Control Item Manager - ItemParams.
|
||||
//=======================================================================
|
||||
partial class SbmcItemMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Item exists.
|
||||
public bool ItemParamExistsById(SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(id)) return false;
|
||||
SbmcItemParam.Params prmItemParam = new SbmcItemParam.Params();
|
||||
prmItemParam.IdsIncluded.Add(id);
|
||||
prmItemParam.StatusCat = SbmcItemParam.StatusCat.NotDeleted;
|
||||
return GetItemParamCount(prmItemParam) == 1;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get item.
|
||||
public abstract SbmcItemParam GetItemParam(SbmcItemParam.Params prm);
|
||||
public SbmcItemParam GetItemParamById(SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(id)) return null;
|
||||
SbmcItemParam.Params prmItemParam = new SbmcItemParam.Params();
|
||||
prmItemParam.IdsIncluded.Add(id);
|
||||
prmItemParam.StatusCat = SbmcItemParam.StatusCat.NotDeleted;
|
||||
return GetItemParam(prmItemParam);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create item.
|
||||
public abstract SbmcItemParam CreateItemParam(ItemId itemId);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate item data.
|
||||
public bool IsValidItemParam(SbmcItemParam itemParam)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (itemParam == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
|
||||
return IsValidItemParamData(itemParam.GetData(), new SbmcItemParam.ErrField());
|
||||
}
|
||||
public virtual bool IsValidItemParamData(SbmcItemParam.Data data, SbmcItemParam.ErrField errField)
|
||||
{
|
||||
// Item properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState("item not specified");
|
||||
|
||||
// Item.
|
||||
|
||||
if (errField.ItemId != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!ItemId.IsValid(data.ItemId))
|
||||
{
|
||||
errField.Context = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Item Id must be specified");
|
||||
}
|
||||
if (!SbmcItemParam.ValidItemTypes.Contains((SbmcHierarchyItem.ItemType)data.ItemId.Type))
|
||||
{
|
||||
errField.Context = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Invalid item type specified");
|
||||
}
|
||||
}
|
||||
|
||||
// Param.
|
||||
|
||||
if (errField.Context != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Context, "context", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.ItemParam_Context), true))
|
||||
{
|
||||
errField.Context = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.ItemParam_Name), true))
|
||||
{
|
||||
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Value != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Value, "contact email", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.ItemParam_Value)))
|
||||
{
|
||||
errField.Value = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.ItemParam_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.ItemParam_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (!SbmcItemParam.ValidStatuses.Contains(data.Status))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState(ErrorMessage.InvalidStatus);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item interface.
|
||||
public abstract bool InsertItemParam(SbmcItemParam itemParam, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool UpdateItemParam(SbmcItemParam itemParam, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool ItemParamCanBeDeleted(SbmcItemParam itemParam)
|
||||
{
|
||||
if (itemParam == null) return SetErrorState("item not specified");
|
||||
//ClearErrorState();
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeleteItemParam(SbmcItemParam itemParam, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item list.
|
||||
public abstract ColumnDfn GetItemParamColumnDfn(SbmcItemParam.Column columnId, String caption = "", int width = 0);
|
||||
public abstract List<String> GetItemParamQueryFilter(SbmcItemParam.Params prm);
|
||||
public abstract long GetItemParamCount(SbmcItemParam.Params prm);
|
||||
public abstract List<SbmcItemParam> GetItemParamList(SbmcItemParam.Params prm);
|
||||
public abstract DbResultSet ExecuteItemParamQuery(List<ColumnDfn> columns, SbmcItemParam.Params prm);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// D a t a V a l u e s
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Extract and format result set data value where specific handling is required.
|
||||
/// <para>Where response is an invalid data value, format value using column.FormatValue(values).</para>
|
||||
/// </summary>
|
||||
public DataValue GetItemParamDataValue(ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SbmcItemParam.Column)column.Id)
|
||||
{
|
||||
// Item Type caption.
|
||||
case SbmcItemParam.Column.ItemType_Caption:
|
||||
{
|
||||
short itemTypeValue = (short)values.GetValue(column.DataName).AsLong();
|
||||
SbmcHierarchyItem.ItemType itemType = (SbmcHierarchyItem.ItemType)itemTypeValue;
|
||||
value = new DataValue(SbmcHierarchyItem.getItemTypeCaption(itemType));
|
||||
}
|
||||
break;
|
||||
|
||||
// Item caption.
|
||||
case SbmcItemParam.Column.Item_Caption:
|
||||
{
|
||||
value = new DataValue(values.GetValue(column.DataName).AsString());
|
||||
if (StringUtil.IsBlank(value.ToString()))
|
||||
{
|
||||
short itemType = (short)values.GetValue(GetItemParamColumnDfn(SbmcItemParam.Column.ItemType).DataName).AsLong();
|
||||
SysId itemId = new SysId(values.GetValue(GetItemParamColumnDfn(SbmcItemParam.Column.ItemId).DataName).AsLong());
|
||||
value = new DataValue($"[{GetItemCaption(new ItemId(itemType, itemId))}]");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
// Value.
|
||||
case SbmcItemParam.Column.Value:
|
||||
String paramContext = values.GetValue(GetItemParamColumnDfn(SbmcItemParam.Column.Context).DataName).AsString();
|
||||
String paramName = values.GetValue(GetItemParamColumnDfn(SbmcItemParam.Column.Name).DataName).AsString();
|
||||
ushort paramFlags = (ushort)values.GetValue(GetItemParamColumnDfn(SbmcItemParam.Column.Flags).DataName).AsLong();
|
||||
if (SbmcItemParam.IsPasswordValue(paramContext, paramName, paramFlags))
|
||||
value = new DataValue("******");
|
||||
else value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
// Notes.
|
||||
case SbmcItemParam.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
// Status.
|
||||
case SbmcItemParam.Column.Status_Desc:
|
||||
case SbmcItemParam.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SbmcItemParam.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode));
|
||||
else if (column.Id == (int)SbmcItemParam.Column.Status_Ind)
|
||||
value = new DataValue(SbmcItemParam.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
value = new DataValue(column.FormatValue(values));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
Reference in New Issue
Block a user