144 lines
4.1 KiB
C#
144 lines
4.1 KiB
C#
///////////////////////////////////////////////////////////
|
|
// Bool.cs
|
|
// Implementation of Class TemplateServiceResolver
|
|
// CSLA type: Read-only object
|
|
// Created on: 9-Nov-2007
|
|
// Object design: John
|
|
// Coded: 9-Nov-2007
|
|
///////////////////////////////////////////////////////////
|
|
|
|
using System;
|
|
using System.Data;
|
|
using CSLA.Data;
|
|
using GZTW.Data;
|
|
using CSLA;
|
|
using System.Threading;
|
|
using CSLA.Security;
|
|
using System.ComponentModel;
|
|
|
|
|
|
|
|
namespace GZTW.AyaNova.BLL
|
|
{
|
|
|
|
/// <summary>
|
|
///Resolves which workorder service template
|
|
/// is the default.
|
|
///
|
|
/// Checks for client template, user template and global template
|
|
/// returns most responsible template in order of client, user, global
|
|
/// or guid empty if none found
|
|
/// </summary>
|
|
[Serializable, EditorBrowsable(EditorBrowsableState.Never)]
|
|
public class TemplateServiceResolver : ReadOnlyBase
|
|
{
|
|
|
|
#region Attributes
|
|
private Guid mTemplateID;
|
|
#endregion
|
|
|
|
#region Constructor
|
|
|
|
/// <summary>
|
|
/// Private constructor to prevent direct instantiation
|
|
/// </summary>
|
|
private TemplateServiceResolver()
|
|
{
|
|
mTemplateID = Guid.Empty;
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region Static methods
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// Returns template ID
|
|
/// </summary>
|
|
/// <param name="ClientID">Client for workorder</param>
|
|
/// <param name="UserID">Current user ID</param>
|
|
/// <returns>Guid of template that applies</returns>
|
|
public static Guid ResolveTemplate(Guid ClientID, Guid UserID)
|
|
{
|
|
|
|
return ((TemplateServiceResolver)DataPortal.Fetch(new Criteria(ClientID,UserID))).mTemplateID;
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#region DAL DATA ACCESS
|
|
///
|
|
/// <param Bool="Criteria"></param>
|
|
protected override void DataPortal_Fetch(object Criteria)
|
|
{
|
|
Criteria crit = (Criteria)Criteria;
|
|
|
|
Guid ClientTemplateID=Guid.Empty;
|
|
Guid UserTemplateID=Guid.Empty;
|
|
|
|
DBCommandWrapper cmClient = DBUtil.DB.GetSqlStringCommandWrapper(
|
|
"SELECT ADEFAULTSERVICETEMPLATEID FROM aClient WHERE " +
|
|
"(AID = @ID)"
|
|
);
|
|
cmClient.AddInParameter("@ID", DbType.Guid, crit.ClientID);
|
|
ClientTemplateID = DBUtil.ToGuid(DBUtil.DB.ExecuteScalar(cmClient));
|
|
|
|
if (crit.UserID != Guid.Empty)
|
|
{
|
|
DBCommandWrapper cmUser = DBUtil.DB.GetSqlStringCommandWrapper(
|
|
"SELECT ADEFAULTSERVICETEMPLATEID FROM aUser WHERE " +
|
|
"(AID = @ID)"
|
|
);
|
|
cmUser.AddInParameter("@ID", DbType.Guid, crit.UserID);
|
|
UserTemplateID = DBUtil.ToGuid(DBUtil.DB.ExecuteScalar(cmUser));
|
|
}
|
|
|
|
//Client - highest precedence
|
|
if (ClientTemplateID != Guid.Empty)
|
|
{
|
|
mTemplateID = ClientTemplateID;
|
|
return;
|
|
}
|
|
//User - next highest precedence
|
|
if (UserTemplateID != Guid.Empty)
|
|
{
|
|
mTemplateID = UserTemplateID;
|
|
return;
|
|
}
|
|
|
|
//Global - lowest precedence
|
|
if (AyaBizUtils.GlobalSettings.DefaultServiceTemplateID != Guid.Empty)
|
|
mTemplateID = AyaBizUtils.GlobalSettings.DefaultServiceTemplateID;
|
|
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#region criteria
|
|
/// <summary>
|
|
/// Criteria for identifying existing object
|
|
/// </summary>
|
|
[Serializable]
|
|
private class Criteria
|
|
{
|
|
|
|
public Guid ClientID;
|
|
public Guid UserID;
|
|
public Criteria(Guid _ClientID, Guid _UserID)
|
|
{
|
|
ClientID = _ClientID;
|
|
UserID = _UserID;
|
|
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
}//end class
|
|
|
|
}//end namespace GZTW.AyaNova.BLL |