Files
BusinessMgr-2019/SaBusMgrStandardBase/Base/Core/ISbmDemoInstanceConsole.cs
T

73 lines
2.5 KiB
C#

using Sarand.BusinessMgr.Net.Standard.Base.App;
using Sarand.BusinessMgr.Net.Standard.Base.Data;
using Sarand.Net.Standard.Base.Bus;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sarand.BusinessMgr.Net.Standard.Base.Core
{
//=======================================================================
/// <summary>
/// Utilitiy functions relating to the Demo BusinessMgr database instance.
/// <para>For instance:</para>
/// <para>- Database initialisation.</para>
/// <para>- Populate example data.</para>
/// <para>- Populate Demo Account User.</para>
/// </summary>
public interface ISbmDemoInstanceConsole
{
//-------------------------------------------------------------------
/// <summary>
/// Is repository database valid.
/// <para>- Contains core tables (Affiliate, Association, Commodity etc).</para>
/// </summary>
abstract bool IsRepositoryValid();
/// <summary>
/// Prepare a suitable batch of data to populate the demo database.
/// <br/>- Randomly crafted.
/// <br/>- Selected from data stored on the Control database.
/// </summary>
abstract SbmRepositoryPopulationData PrepareDemoPopulationData();
/// <summary>
/// Populate repository.
/// <br/>- Initialise repository: Organisation contact, Internal association, Security item and 'Super' group, User contact, User member association.
/// <br/>- Demo specific security.
/// <br/>- Populate demo data, including Repository configuration.
/// </summary>
abstract bool PopulateRepository(SbmRepositoryPopulationData data);
/// <summary>
/// Get Affiliate Owner Ids for Internal Associations.
/// </summary>
abstract HashSet<SysId> GetInternalAssociationAffiliateIdsOwner();
//-------------------------------------------------------------------
// User Security.
public enum SecurityGroup { Standard, Super }
/// <summary>
/// Security Group codes - as set up during initialisation.
/// </summary>
abstract String GetSecurityGroupCode(SecurityGroup group);
/// <summary>
/// Check whether User Account already exists, ie. Security Item with matching code/email.
/// </summary>
abstract bool UserAccountExists(SbmRepositoryPopulationData.UserAccount userAccount);
/// <summary>
/// Add User Account.
/// </summary>
abstract bool AddUserAccount(SbmRepositoryPopulationData.UserAccount userAccount);
//-------------------------------------------------------------------
}
//=======================================================================
}