using Csla.WORMapper;
using Stimulsoft.Report;
using Stimulsoft.Report.Dictionary;
using System;
using System.Web;
using System.Linq;
public static class Utils
{
const string
CurrentThemeCookieKey = "theme",
DefaultTheme = "Office2010Black";
static HttpContext Context
{
get { return HttpContext.Current; }
}
static HttpRequest Request
{
get { return Context.Request; }
}
public static string CurrentTheme
{
get
{
if (Request.Cookies[CurrentThemeCookieKey] != null)
return HttpUtility.UrlDecode(Request.Cookies[CurrentThemeCookieKey].Value);
return DefaultTheme;
}
}
internal static StiReport LoadReport(string reportName, int? consignment)
{
// Create the report object and load data from xml file
StiReport report = new StiReport();
//MFM0815 [Parms for Stock Usage]
report.Load(HttpContext.Current.Server.MapPath(reportName));
Utils.SetConsignmentVariable(consignment, report);
//Clear the list of databases
report.Dictionary.Databases.Clear();
//Add the database and specify its name and the connection string
report.Dictionary.Databases.Add(new StiSqlDatabase("CribMaster", Cfg.GetConnectionDescriptor("Base").ConnectionString));
return report;
}
#region Where Clause Helper methods
///
/// Returns where IN clause from CSV string of TransType(s)
///
///
///
internal static SQLFilterBuilder GetTransTypeInClause(string transTypeCSV)
{
if (string.IsNullOrEmpty(transTypeCSV)) return null;
string[] transType = transTypeCSV.Split(',');
SQLFilterBuilder strFilter = new SQLFilterBuilder();
strFilter.Append("(TypeDescription in (");
string last = transType.Last();
foreach (string item in transType)
{
strFilter.AppendFormat("{0}", item);
if (!item.Equals(last))
strFilter.Append(",");
}
strFilter.Append("))");
return strFilter;
}
///
/// Returns where IN clause from CSV string of itemType(s)
///
///
/// SQLFilterBuilder
internal static SQLFilterBuilder GetItemTypeDescInClause(string ItemTypeCSV)
{
if (ItemTypeCSV == null) return null;
SQLFilterBuilder strFilter = new SQLFilterBuilder();
// convert string to int array
string[] itemTypeDescs = ItemTypeCSV.Split(',').Select(n => Convert.ToString(n)).ToArray();
if (itemTypeDescs.Count() > 0)
{
strFilter.Append("(ItemTypeDesc in (");
string last = itemTypeDescs.Last();
foreach (string item in itemTypeDescs)
{
strFilter.AppendFormat("{0}", item);
if (!item.Equals(last))
strFilter.Append(",");
}
}
strFilter.Append("))");
return strFilter;
}
///
/// Returns where IN clause from CSV string of itemClass(s)
///
///
/// SQLFilterBuilder
internal static SQLFilterBuilder GetItemClassInClause(string itemClassesCSV)
{
if (string.IsNullOrEmpty(itemClassesCSV)) return null;
string[] itemClasses = itemClassesCSV.Split(',');
SQLFilterBuilder strFilter = new SQLFilterBuilder();
strFilter.Append("(ItemClass in (");
string last = itemClasses.Last();
foreach (string item in itemClasses)
{
strFilter.AppendFormat("{0}", item);
if (!item.Equals(last))
strFilter.Append(",");
}
strFilter.Append("))");
return strFilter;
}
///
/// Returns where clause from CSV string SiteID(s)
///
///
/// SQLFilterBuilder
internal static SQLFilterBuilder GetSiteInClause(string SiteIDCSV)
{
if (string.IsNullOrEmpty(SiteIDCSV)) return null;
string[] siteID = SiteIDCSV.Split(',');
SQLFilterBuilder strFilter = new SQLFilterBuilder();
strFilter.Append("(SiteID IN (");
string last = siteID.Last();
foreach (string item in siteID)
{
//strFilter.Append("
strFilter.AppendFormat("{0}", item);
if (!item.Equals(last))
strFilter.Append(",");
}
strFilter.Append("))");
return strFilter;
}
///
/// Builds where clasue for consignment (0:all, 1:consignment only, 2:non consignment only)
///
///
///
internal static SQLFilterBuilder GetConsignmentWhereClause(int? idx)
{
SQLFilterBuilder strFilter = new SQLFilterBuilder();
switch (idx.GetValueOrDefault(0))
{
case 0: // all
strFilter.AppendFormat("(1=1 or Consignment = {0})", 1);
break;
case 1: // consignment only
strFilter.AppendFormat("(Consignment = {0})", 1);
break;
case 2: // non consignment
strFilter.AppendFormat("(Consignment is null or consignment = {0})", 0);
break;
default:
throw new IndexOutOfRangeException("Invalid consignment index. Valid values are 0,1,2.");
}
return strFilter;
}
#endregion
///
///
///
///
///
private static void SetConsignmentVariable(int? consignment, StiReport report)
{
switch (consignment)
{
case 0:
report.Dictionary.Variables.Add("vConsignment", " (1=1 or Consignment = 1)");
break;
case 1:
report.Dictionary.Variables.Add("vConsignment", " (Consignment = 1)");
break;
case 2:
report.Dictionary.Variables.Add("vConsignment", " (Consignment is null or consignment = 0)");
break;
default:
break;
}
}
}