using CacheMgr;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Web;
using System.Web.Script.Serialization;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Xml;
public partial class Tstruct : System.Web.UI.Page
{
#region Variable Declaration
Util.Util util;
public string proj = string.Empty;
public string sid = string.Empty;
public string language = string.Empty;
public string trace = string.Empty;
public string user = string.Empty;
public string transId = string.Empty;
public string AxRole = string.Empty;
public string rid = string.Empty;
public string searchVal = string.Empty;
public string direction = "ltr";
public string classdir = "left";
public string appsessionKey = string.Empty;
public int actbtncount = 0;
int docHgt = 0;
public string optStr = string.Empty;
//Variables to store toolbar buttons and their left values
ArrayList leftBtns = new ArrayList(); //left index of the btns, to arrange the order
ArrayList tmpLeftBtns = new ArrayList();
ArrayList toolBarBtns = new ArrayList();
ArrayList actionBarBtns = new ArrayList();
ArrayList sortedBtns = new ArrayList();
ArrayList paramNames = new ArrayList();
ArrayList paramValues = new ArrayList();
ArrayList clientParamValues = new ArrayList();
ArrayList headNames = new ArrayList();
ArrayList customBtnHtml = new ArrayList();
string AxOnApproveDisable = "false";
string AxOnRejectDisable = "false";
string AxOnReturnSave = "false";
string AxOnRejectSave = "false";
string AxLogTimeTaken = "false";
//variables to store the Html in the page
StringBuilder tstHTML = new StringBuilder();
public StringBuilder submitCancelBtns = new StringBuilder();
StringBuilder taskBtnHtml = new StringBuilder();
StringBuilder attHtml = new StringBuilder();
public StringBuilder toolbarBtnHtml = new StringBuilder();
public StringBuilder modernToolbarBtnHtml = new StringBuilder();
public StringBuilder modernFooterActBtnHtml = new StringBuilder();
public StringBuilder dcHtml = new StringBuilder();
public StringBuilder tstHeader = new StringBuilder();
public String tstCss = string.Empty;
StringBuilder tstSavedHtml = new StringBuilder();
//Public varaibles declaration
public Custom customObj = null;
string actstr = string.Empty;
string actstrType = "open";
string loadResult = string.Empty;
string strGlobalVar = string.Empty;
string fileName = string.Empty;
public string errorLog = string.Empty;
string queryStr = string.Empty;
public string tstCaption = string.Empty;
public string menuBreadCrumb = string.Empty;
public string tstName = string.Empty;
public StringBuilder tstVars = new StringBuilder();
public StringBuilder tstJsArrays = new StringBuilder();
public StringBuilder tstScript = new StringBuilder();
public StringBuilder tstTabScript = new StringBuilder();
public string tstDraftsScript = string.Empty;
public string traceLog = string.Empty;
// public string tstTimeVars = string.Empty;
public string btnFunction = string.Empty;
string btnStyle = "handCur";
string btnHTML = string.Empty;
string customFolder = string.Empty;
string customPage = string.Empty;
LogFile.Log logobj = new LogFile.Log();
ASBExt.WebServiceExt objWebServiceExt = new ASBExt.WebServiceExt();
public string structXml = string.Empty;
public string jsFromCache = string.Empty;
public string htmlFromCache = string.Empty;
Boolean isTstInCache = false;
Boolean isTstructCached = false;
string draftsPath = string.Empty;
public static string enableBackForwButton = string.Empty;
public bool isTstPop = false;
public string axpRefreshParent = "false";
public string axRefreshSelect = "false";
public string axRefreshSelectID = "";
public string axSrcSelectID = "";
public string axRefreshSelectType = "";
public string langauge = "ENGLISH";
// public string ptransid = string.Empty;
public string exportTallyTid = string.Empty;
TStructDef strObj = null;
public string dcGridOnSave = "true";
public string designModeBtnHtml = String.Empty;
public string isAxpImagePath = "false";
#endregion
public StringBuilder getLang = new StringBuilder();
public StringBuilder strLogTime = new StringBuilder();
public float formLogTime;
public float pageLogTime;
DateTime stTime;
DateTime edTime;
public int FetchPickListRows = 1000;
public bool isRapidLoad = false;
public bool loadFromMem = true;
public string defaultDepFlds = String.Empty;
public string langType = "en";
//public bool newDesigner = false;
public bool theModeDesign = false;
public string axWizardType = "";
public string wizardClass = "";
public string wizardLoadRecord = "false";
public string schemaName = string.Empty;
string isTstFromHyperLink = "false";
string designJson = string.Empty;
DataTable axpConfigStr = new DataTable();
string AxpIsAutoSplit = string.Empty;
string AxpIviewDisableSplit = string.Empty;
string AxpFileUploadlmt = string.Empty;
string AxpCameraOption = string.Empty;
string AxpNotFillDepFields = string.Empty;
string AxpFillDepFields = string.Empty;
string AxpSaveImageDb = "false";
string AxpGridFormCols = string.Empty;
string AxpCustomJs = string.Empty;
string AxpCustomCss = string.Empty;
public string AxpTstButtonStyle = "classic";
public string AxShowControlBorders = "true";
string axpShowKeyboard = string.Empty;
public string dvFooterHtml = string.Empty;
string AutosaveDraftt = string.Empty;
string AutosaveDraftTime = string.Empty;
string savedraftKeyCreatedtime = string.Empty;
public bool isTstCustomHtml = false;
public bool isMobileView = false;
string gridScrollBar = string.Empty;
string gridFixedHeader = string.Empty;
bool AxSplit = false;
public string btnfooterlist = string.Empty;
public string btnfooteropenlist = string.Empty;
ExecTrace ObjExecTr = ExecTrace.Instance;
public string requestProcess_logtime = string.Empty;
public string serverprocesstime = string.Empty;
string mobileCardLayout = "none";
bool openFastReportInNewWindow = false;
public string formLayoutClass = "";
bool fillGridDataQueryOrder = false;
bool fillGridDataShowAll = false;
protected override void InitializeCulture()
{
if (Session["language"] != null)
{
util = new Util.Util();
string dirLang = string.Empty;
dirLang = util.SetCulture(Session["language"].ToString().ToUpper());
if (!string.IsNullOrEmpty(dirLang))
{
direction = dirLang.Split('-')[0];
langType = dirLang.Split('-')[1];
}
}
}
#region PageLoad
///
/// Page Load event of the tstruct page where the tstruct construction is initialized.
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack && Request.QueryString["hdnbElapsTime"] != null)
{
string browserElapsTime = Request.QueryString["hdnbElapsTime"] != null ? Request.QueryString["hdnbElapsTime"] : "0";
requestProcess_logtime += ObjExecTr.WireElapsTime(browserElapsTime);
}
else if (IsPostBack && hdnbElapsTimeGo.Value != "")
{
string browserElapsTime = hdnbElapsTimeGo.Value == "" ? "0" : hdnbElapsTimeGo.Value;
requestProcess_logtime += ObjExecTr.WireElapsTime(browserElapsTime);
}
if (Request.QueryString["reqProc_logtime"] != null)
requestProcess_logtime += Request.QueryString["reqProc_logtime"];
if (!IsPostBack)
ScriptManager.RegisterStartupScript(this, this.GetType(), "controlDimmer", "eval(callParent(\"loadFrame\", \"function\"));", true);
util = new Util.Util();
stTime = DateTime.Now;
DateTime startTime = DateTime.Now;
//logobj.CreateLog("Page load " , sid, "LogTimeTaken", "new");
util.IsValidSession();
ResetSessionTime();
DateTime webStart = DateTime.Now;
Response.ExpiresAbsolute = DateTime.Now;
Response.Expires = -1441;
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "no-cache");
Response.AddHeader("Pragma", "no-store");
Response.AddHeader("cache-control", "no-cache");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoServerCaching();
if (Session["project"] == null)
{
SessionExpired();
return;
}
else
{
if (util.IsValidQueryString(Request.RawUrl, true) == false)
{
requestProcess_logtime += "Server - " + Constants.INVALIDURL + " ♦ ";
HttpContext.Current.Response.Redirect(util.ERRPATH + Constants.INVALIDURL + "*♠*" + requestProcess_logtime);
}
SetSessionVariables();
//if (!util.licencedValidSessionCheck())
//{
// try
// {
// HttpContext.Current.Response.Redirect(util.ERRPATH + Constants.SESSIONEXPMSG, true);
// }
// catch (ThreadAbortException ex)
// {
// Thread.ResetAbort();
// }
// return;
//}
//TODO: ask malakonda and remove the below code if not used
if (HttpContext.Current.Session["fd-HugeFlds"] != null)
util.ClearFDFldSession();
DateTime sdate = DateTime.Now;
ConstructTstruct();
DateTime enddate = DateTime.Now;
strLogTime.Append("TotConstructTstruct-" + sdate.Subtract(enddate).TotalMilliseconds.ToString());
CustomDiv.InnerHtml = customObj.GetCustomDivHtml();
//IncludeJsFiles();
IncludeJsFilesNew();
SetLangStyles();
}
util.TempAttaServerFiles();
util.DeleteKeyOnRefreshSave();
UpdateNavigation();
CheckDraftPopup();
if (!isTstPop && rid == "0")
util.RemovelvListPageLoad();
//Code to store the timetaken details
TStructData tstData = (TStructData)Session[hdnDataObjId.Value];
if (tstData != null && AxLogTimeTaken == "true")
{
tstData.strServerTime = stTime.Subtract(webStart).TotalMilliseconds + "," + edTime.Subtract(stTime).TotalMilliseconds + "," + DateTime.Now.Subtract(edTime).TotalMilliseconds;
Session[hdnDataObjId.Value] = tstData;
}
ScriptManager.RegisterStartupScript(this, this.GetType(), "controlDimmer", "closeParentFrame();", true);
edTime = DateTime.Now;
strLogTime.Append("PageLoad FUll-" + startTime.Subtract(edTime).TotalMilliseconds.ToString());
pageLogTime = float.Parse(edTime.Subtract(startTime).TotalMilliseconds.ToString());
pageLogTime = pageLogTime - formLogTime;
if (Session["AxDcGridOnSave"] != null)
dcGridOnSave = HttpContext.Current.Session["AxDcGridOnSave"].ToString();
AxpFileUploadlmt = AxpFileUploadlmt == string.Empty ? "0" : AxpFileUploadlmt.ToString();
Page.ClientScript.RegisterStartupScript(GetType(), "set Grid DC Pop Up Visible On Save", "");
requestProcess_logtime += ObjExecTr.RequestProcessTime("Response");
serverprocesstime = ObjExecTr.TotalServerElapsTime();
}
private void UpdateNavigation()
{
if (Session["AxFromHypLink"] != null)
isTstFromHyperLink = Session["AxFromHypLink"].ToString();
if (!string.IsNullOrEmpty(Request.QueryString["axp_IsSaveUrl"]))
{
if (Request.QueryString["axp_IsSaveUrl"].ToString() == "true")
Session["axp_IsSaveUrl"] = "true";
}
string frameName = string.Empty;
if (Request.QueryString["axpfrm"] != null)
frameName = Convert.ToString(Request.QueryString["axpfrm"]);
if (Session["backForwBtnPressed"] == null || (Session["backForwBtnPressed"] != null && !Convert.ToBoolean(Session["backForwBtnPressed"])) && (Request.QueryString.Count < 2 || Request.UrlReferrer != null && (Request.UrlReferrer.AbsolutePath.Contains("listIview.aspx") || Request.UrlReferrer.AbsolutePath.Contains("iview.aspx") || Request.UrlReferrer.AbsolutePath.Contains("tstruct.aspx") || Request.UrlReferrer.AbsolutePath.Contains("tstructdesign.aspx") || Request.UrlReferrer.AbsolutePath.Contains("mainnew.aspx"))) && frameName != "t")
{
if (isTstPop)
Session["enableBackButton"] = "false";
else if (Session["AxHypTstRefresh"] != null && Session["AxHypTstRefresh"].ToString() == "true")
{
Session["AxHypTstRefresh"] = "false";
}
else if (Request.QueryString["AxHypTstRefresh"] != null && Request.QueryString["AxHypTstRefresh"].ToString() == "true")
{
}
else
util.UpdateNavigateUrl(HttpContext.Current.Request.Url.AbsoluteUri);
}
if (Session["axp_IsSaveUrl"] != null)
Session["axp_IsSaveUrl"] = null;
Session["backForwBtnPressed"] = false;
if (Session["RapidTsTruct"] != null && Session["RapidTsTruct"].ToString() == "true")
enableBackForwButton = "";
else
enableBackForwButton = "";
}
private void ResetSessionTime()
{
if (Session["AxSessionExtend"] != null && Session["AxSessionExtend"].ToString() == "true")
{
HttpContext.Current.Session["LastUpdatedSess"] = DateTime.Now.ToString();
ClientScript.RegisterStartupScript(this.GetType(), "SessionAlert", "eval(callParent('ResetSession()', 'function'));", true);
}
}
#endregion
#region formload functions
private void GetBreadCrumb()
{
try
{
Session["menubreadcrumb"] = string.Empty;
//string strv = Session["MenuData"].ToString();
string strv = string.Empty;
try
{
string fdKeyMenuData = Constants.REDISMENUDATA;
string schemaName = string.Empty;
if (HttpContext.Current.Session["dbuser"] != null)
schemaName = HttpContext.Current.Session["dbuser"].ToString();
FDR fObj = (FDR)HttpContext.Current.Session["FDR"];
if (fObj != null)
strv = fObj.StringFromRedis(util.GetRedisServerkey(fdKeyMenuData, "Menu"), schemaName);
}
catch (Exception) { }
if (strv == string.Empty && Session["MenuData"] != null)
strv = Session["MenuData"].ToString();
XmlDocument xmlDoc1 = new XmlDocument();
xmlDoc1.LoadXml(strv);
string code = "tstruct.aspx?transid=" + transId;
XmlNode node = null;
XmlElement basicDataRoot = xmlDoc1.DocumentElement;
if (basicDataRoot.SelectSingleNode("descendant::child[@target='" + code + "']") != null)
{
node = basicDataRoot.SelectSingleNode("descendant::child[@target='" + code + "']");
}
else if (basicDataRoot.SelectSingleNode("descendant::parent[@target='" + code + "']") != null)
{
node = basicDataRoot.SelectSingleNode("descendant::parent[@target='" + code + "']");
}
if (node != null)
{
string s = node.Attributes["name"].Value;
string s1 = string.Empty;
XmlNode parnode = default(XmlNode);
if (node.ParentNode != null)
{
parnode = node.ParentNode;
while (parnode.Name != "root")
{
s1 = parnode.Attributes["name"].Value + " > " + s1;
parnode = parnode.ParentNode;
}
}
Session["menubreadcrumb"] = s1;
menuBreadCrumb = HttpContext.Current.Session["menubreadcrumb"].ToString();
}
else
{
Session["menubreadcrumb"] = string.Empty;
menuBreadCrumb = HttpContext.Current.Session["menubreadcrumb"].ToString();
}
}
catch (Exception)
{
SessionExpired();
return;
}
}
#region ConstructTstruct
///
/// Function to call all formload related functions
///
private void ConstructTstruct()
{
// To set the values for the global variables like transid,sessionid, user etc..
SetGlobalVariables();
if (!isTstPop && goval.Value == "" && !AxSplit)
util.DeleteTstIvObject(transId);
//Check desing access
CheckDesignAccess();
stTime = DateTime.Now;
//Design json and Config string will be retrieved from direct db instead of node js
Boolean designMode = false;
if (HttpContext.Current.Session[transId + "IsDesignMode"] != null && HttpContext.Current.Session[transId + "IsDesignMode"].ToString() != string.Empty)
designMode = Convert.ToBoolean(HttpContext.Current.Session[transId + "IsDesignMode"]);
GetDesignModeData();
//GetStructDesignAndConfig(); //Design & Config data merged into structure XML(service call), so this direct db call not required for run mode.
CacheManager cacheMgr = GetCacheObject();
strObj = GetStrObject(cacheMgr);
GetStructConfig(strObj);
if (Session["MobileView"] != null && Session["MobileView"].ToString() == "True")
isMobileView = true;
else
isMobileView = false;
customObj = Custom.Instance;
if (goval.Value == "go")
{
if (lvPage.SelectedValue != "")
callWebservice(lvPage.SelectedValue);
}
else
{
if (Session["StructureHtml"] != null)
Session.Remove("StructureHtml");
if (Session["ToolbarBtnIcons"] != null)
Session.Remove("ToolbarBtnIcons");
if (Session["ModernToolbarBtnOpen"] != null)
Session.Remove("ModernToolbarBtnOpen");
// To write the tstruct details to the client.
WriteGlobalVariables();
// to get the language from login page
GetLanguage();
if (strObj == null)
return;
structXml = strObj.structRes;
edTime = DateTime.Now;
strLogTime.Append("GetStructure-" + stTime.Subtract(edTime).TotalMilliseconds.ToString());
formLogTime = float.Parse(edTime.Subtract(stTime).TotalMilliseconds.ToString());
//logobj.CreateLog("Get Structure- timetaken-" + stTime.Subtract(edTime).TotalMilliseconds.ToString(), sid, "LogTimeTaken", "");
try
{
SaveID.Value = strObj.save_id;
PublishID.Value = strObj.Publish_id;
IsPublish.Value = strObj.Is_Publish;
}
catch (Exception ex) { }
parseXMLDoc(strObj.pdfList);
WriteTstJsArrayDef(strObj);
stTime = DateTime.Now;
//if (strObj.IsObjFromCache )
//{
// getDesignedData(strObj);
//}
try
{
// To get structure details from the object
GetStructureDetails(strObj, cacheMgr);
}
catch (Exception ex)
{
Response.Redirect(util.ERRPATH + "Clear in-memory keys and try again!");
return;
}
if (strObj.axdesignJObject != null)
{
if (Session["Axp_DesignJson"] != null && Session["Axp_DesignJson"].ToString() != "" && designMode)
{
designHidden.Value = Session["Axp_DesignJson"].ToString();
}
else
{
Session.Remove("Axp_DesignJson");
designHidden.Value = "[" + JsonConvert.SerializeObject(cacheMgr.axdesignJObcmg) + "]";
}
if ((strObj.axdesignJObject.wizardDC == true && strObj.dcs.Count > 1) || (Session["MobileView"] != null && Session["MobileView"].ToString() == "True" && strObj.dcs.Count > 1 && mobileCardLayout == "none"))
strObj.isWizardTstruct = true;
getFormLayoutClass();
}
// To fill search dropdown list
FillSearchList(strObj);
edTime = DateTime.Now;
strLogTime.Append("Constructing Tstrct/FromCache-" + stTime.Subtract(edTime).TotalMilliseconds.ToString());
// To write the jsondata to the client
stTime = DateTime.Now;
LoadStructure(strObj);
if (strObj.isWizardTstruct)
wizardClass = "wizardTstruct";
if (rid != "0" && Request.QueryString["recPos"] != null && Request.QueryString["recPos"] != "" && Request.QueryString["recPos"] != "null" && Request.QueryString["recordid"] != null)
wizardLoadRecord = "true";
edTime = DateTime.Now;
strLogTime.Append("LoadStructure-" + stTime.Subtract(edTime).TotalMilliseconds.ToString());
}
}
private void getFormLayoutClass()
{
var formWidth = "";
var formPosition = "";
try
{
if (strObj.axdesignJObject != null)
{
string dcLayout = strObj.axdesignJObject.dcLayout != "default" ? strObj.axdesignJObject.dcLayout : "";
switch (strObj.axdesignJObject.formWidth)
{
case "50":
formWidth = "col-md-6 formLayoutWidth";
break;
case "60":
formWidth = "col-md-8 formLayoutWidth";
break;
case "70":
formWidth = "col-md-9 formLayoutWidth";
break;
case "80":
formWidth = "col-md-10 formLayoutWidth";
break;
case "90":
formWidth = "col-md-11 formLayoutWidth";
break;
default:
formWidth = "";
break;
}
switch (strObj.axdesignJObject.formAlignment)
{
case "center":
formPosition = "formPositionCenter";
break;
case "left":
formPosition = "formPositionLeft";
break;
case "right":
formPosition = "formPositionRight";
break;
default:
formPosition = "";
break;
}
formLayoutClass = formWidth + " " + dcLayout + " " + formPosition;
}
}
catch (Exception)
{ }
}
public void CheckDraftPopup()
{
if (AutosaveDraftt == "true")
{
var redisDraftkey = transId + "-" + HttpContext.Current.Session["user"].ToString() + Constants.UNIQUE_DRAFT_KEY_PHRASE + tstCaption;
FDR fdrObj = (FDR)HttpContext.Current.Session["FDR"];
var redisDraftkeys = fdrObj.GetAllKeys(schemaName + "-" + redisDraftkey);
if (redisDraftkeys.Count > 0)
{
savedraftKeyCreatedtime = redisDraftkeys[0].ToString().Split('-').Last();
var Createdyear = savedraftKeyCreatedtime.Substring(0, 8);
var day = Createdyear.Substring(0, 2);
var month = Createdyear.Substring(2, 2);
var year = Createdyear.Substring(4, 4);
var rkeycompareYear = day + "-" + month + "-" + year;
var rKeyCompareTime = savedraftKeyCreatedtime.Substring(8, 4);
var hours = rKeyCompareTime.Substring(0, 2);
var mins = rKeyCompareTime.Substring(2, 2);
rKeyCompareTime = hours + ":" + mins;
savedraftKeyCreatedtime = rkeycompareYear + " " + rKeyCompareTime;
}
}
}
private void GetDesignModeData()
{
try
{
Boolean designMode = false;
if (HttpContext.Current.Session[transId + "IsDesignMode"] != null && HttpContext.Current.Session[transId + "IsDesignMode"].ToString() != string.Empty)
designMode = Convert.ToBoolean(HttpContext.Current.Session[transId + "IsDesignMode"]);
if (designMode)
{
DataSet dsDesign = new DataSet();
DataTable dtDesignData = new DataTable();
DBContext objdb = new DBContext();
dsDesign = objdb.GetAxConfigurations(transId, Constants.STRUCTTYPE_TSTRUCT, designMode, Constants.CONFIGTYPE_DESIGN);
dtDesignData = dsDesign.Tables["Table0"];
if (dtDesignData.Rows.Count > 0)
{
var newDesign = dtDesignData.AsEnumerable().Select(x => new { newdesignJson = x.Field("CONTENT") }).ToList();
designJson = newDesign[0].newdesignJson;
}
Session["Axp_DesignJson"] = designJson;
}
}
catch (Exception ex)
{
LogFile.Log logObj = new LogFile.Log();
string sessID = Constants.GeneralLog;
if (HttpContext.Current.Session != null)
sessID = HttpContext.Current.Session.SessionID;
logObj.CreateLog("GetDesignModeData -" + ex.Message, sessID, "GetDesignModeData", "new");
}
}
private void GetStructConfig(TStructDef strObj)
{
try
{
string axpStructKey = Constants.AXCONFIGTSTRUCT;
if (HttpContext.Current.Session["AxDtConfigs"] != null)
{
axpConfigStr = (DataTable)HttpContext.Current.Session["AxDtConfigs"];
HttpContext.Current.Session.Remove("AxDtConfigs");
}
if (axpConfigStr != null && axpConfigStr.Rows.Count > 0)
SetAxpStructConfigProps(strObj);
else
{
FDR fObj = (FDR)HttpContext.Current.Session["FDR"];
axpConfigStr = fObj.DataTableFromRedis(util.GetConfigCacheKey(axpStructKey, transId, "", AxRole, "ALL"));
SetAxpStructConfigProps(strObj);
}
}
catch (Exception ex)
{
LogFile.Log logObj = new LogFile.Log();
string sessID = Constants.GeneralLog;
if (HttpContext.Current.Session != null)
sessID = HttpContext.Current.Session.SessionID;
logObj.CreateLog("GetStructConfig -" + ex.Message, sessID, "GetStructConfig", "new");
}
}
private void SetAxpStructConfigProps(TStructDef strObj)
{
try
{
if (axpConfigStr != null && axpConfigStr.Rows.Count > 0)
{
var lstMultiFlds = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "multi select" && x.Field("PROPSVAL").ToLower() == "true")
.Select(x => x.Field("SFIELD")).ToList();
if (lstMultiFlds.Count > 0)
Session["AxpFldMultiSelect"] = lstMultiFlds;
var lstMultiFldsp = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "multi select" && x.Field("PROPSVAL").ToLower() == "true")
.Select(x => x.Field("SFIELD") + "♦" + x.Field("PROPVALUE2")).ToList();
if (lstMultiFldsp.Count > 0)
Session["AxpFldMultiSelSp"] = lstMultiFldsp;
var strAutoSPlit = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "autosplit")
.Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList();
if (strAutoSPlit.Count > 0)
AxpIsAutoSplit = strAutoSPlit[0].splitVal;
var strDisSPlit = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "disablesplit")
.Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList();
if (strDisSPlit.Count > 0)
AxpIviewDisableSplit = strDisSPlit[0].splitVal;
var fldAlign = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "text")
.Select(x => new { fldName = x.Field("SFIELD"), alignProp = x.Field("PROPSVAL") }).ToList();
var autoCompPatt = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "autocomplete search pattern")
.Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList();
if (autoCompPatt.Count > 0)
Session["AxpautoCompPatt"] = autoCompPatt[0].splitVal;
try
{
strObj.WebServiceTimeout = Convert.ToInt32(axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "webservice timeout").Select(x => x.Field("PROPSVAL")).FirstOrDefault());
}
catch (Exception ex) { };
var AutosaveDraft = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "auto save draft")
.Select(x => new { autosavedraft = x.Field("PROPSVAL"), AutosaveDraftTime = x.Field("PROPVALUE2") }).ToList();
if (AutosaveDraft.Count > 0)
{
AutosaveDraftt = AutosaveDraft[0].autosavedraft;
AutosaveDraftTime = AutosaveDraft[0].AutosaveDraftTime == "" ? "120000" : AutosaveDraft[0].AutosaveDraftTime;
}
var GridscrollBar = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "grid scrollbar")
.Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList();
if (GridscrollBar.Count > 0)
gridScrollBar = GridscrollBar[0].splitVal;
var GridFixedHeader = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "fixed header for grid")//Fixed Header for Grid
.Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList();
if (GridFixedHeader.Count > 0)
gridFixedHeader = GridFixedHeader[0].splitVal;
var strFileUpload = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "file upload limit")
.Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList();
if (strFileUpload.Count > 0)
AxpFileUploadlmt = strFileUpload[0].splitVal;
var strcameraopt = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "camera option")
.Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList();
if (strcameraopt.Count > 0)
AxpCameraOption = strcameraopt[0].splitVal;
var notfilldependentfields = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "not fill dependent fields" && x.Field("PROPSVAL").ToLower() == "true").Select(x => x.Field("SFIELD")).ToList();
if (notfilldependentfields.Count > 0)
AxpNotFillDepFields = string.Join(",", notfilldependentfields);
var filldependentfields = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "fill dependent fields" && x.Field("PROPSVAL").ToLower() == "true").Select(x => x.Field("SFIELD")).ToList();
if (filldependentfields.Count > 0)
AxpFillDepFields = string.Join(",", filldependentfields);
var strSaveImagedb = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "saveimage")
.Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList();
if (strSaveImagedb.Count > 0)
AxpSaveImageDb = strSaveImagedb[0].splitVal;
if (AxpSaveImageDb.ToLower() == "true")
{
isAxpImagePath = "false";
isAxpImagePathHidden.Value = isAxpImagePath;
}
Session["AxpSaveImageDb"] = AxpSaveImageDb;
var ExcelExport = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "excel export")
.Select(x => new { excel = x.Field("PROPSVAL") }).ToList();
if (ExcelExport.Count > 0)
Session["AxpExcelExport"] = ExcelExport[0].excel;
else
Session["AxpExcelExport"] = null;
// Enable mobile-ui for tsruct grid options - all/mobile/none
var applyMobileUI = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "apply mobile ui").Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList();
if (applyMobileUI.Count > 0)
mobileCardLayout = applyMobileUI[0].splitVal;
else if ((Session["MobileView"] != null && Session["MobileView"].ToString() == "True"))
{
mobileCardLayout = "mobile";
}
JavaScriptSerializer ser = new JavaScriptSerializer();
hdnFldAlgnProp.Value = ser.Serialize(fldAlign);
//Tstruct grid edit option - popup/inline
var gridEditOption = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "gridedit")
.Select(x => new { gridtype = x.Field("PROPSVAL"), formCols = x.Field("PROPVALUE2") }).ToList();
if (gridEditOption.Count > 0)
{
Session["AxInlineGridEdit"] = gridEditOption[0].gridtype != "inline" ? "false" : "true";
AxpGridFormCols = gridEditOption[0].gridtype + "♠" + gridEditOption[0].formCols;
}
else if (Session["MobileView"] != null && Session["MobileView"].ToString() == "True")
Session["AxInlineGridEdit"] = "false";
else
Session["AxInlineGridEdit"] = "true";
var loadCustomJs = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "custom javascript" && x.Field("PROPSVAL").ToLower() == "true")
.Select(x => new { applyon = x.Field("APPLYON") }).ToList();
if (loadCustomJs.Count > 0)
AxpCustomJs = loadCustomJs[0].applyon;
var loadCustomCss = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "custom css" && x.Field("PROPSVAL").ToLower() == "true")
.Select(x => new { applyon = x.Field("APPLYON") }).ToList();
if (loadCustomCss.Count > 0)
AxpCustomCss = loadCustomCss[0].applyon;
var buttonstyle = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "tstruct button style").Select(x => new { val = x.Field("PROPSVAL") }).ToList();
if (buttonstyle.Count > 0)
AxpTstButtonStyle = buttonstyle[0].val.ToLower();
var controlBorder = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "show control borders").Select(x => new { val = x.Field("PROPSVAL") }).ToList();
if (controlBorder.Count > 0)
AxShowControlBorders = controlBorder[0].val.ToLower();
var PickListFetchSize = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "dorp down fetch size").Select(x => new { val = x.Field("PROPSVAL") }).ToList();
if (PickListFetchSize.Count > 0)
{
FetchPickListRows = PickListFetchSize[0].val == "" ? 1000 : int.Parse(PickListFetchSize[0].val);
Session["PickListFetchSize"] = FetchPickListRows;
}
else if (Session["PickListFetchSize"] != null)
Session.Remove("PickListFetchSize");
var strFastReportInTab = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "open fast report in new window")
.Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList();
if (strFastReportInTab.Count > 0)
{
openFastReportInNewWindow = strFastReportInTab[0].splitVal.ToString().ToLower() == "true" ? true : false;
}
var fillgridOrder = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "popup fillgrid data based on query order")
.Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList();
if (fillgridOrder.Count > 0)
fillGridDataQueryOrder = fillgridOrder[0].splitVal.ToString().ToLower() == "true" ? true : false;
var fillgridShowAll = axpConfigStr.AsEnumerable().Where(x => x.Field("PROPS").ToLower() == "popup fillgrid data show all")
.Select(x => new { splitVal = x.Field("PROPSVAL") }).ToList();
if (fillgridShowAll.Count > 0)
fillGridDataShowAll = fillgridShowAll[0].splitVal.ToString().ToLower() == "true" ? true : false;
}
else
{
if (Session["MobileView"] != null && Session["MobileView"].ToString() == "True")
Session["AxInlineGridEdit"] = "false";
else
Session["AxInlineGridEdit"] = "true";
Session["AxpSaveImageDb"] = null;
Session["AxpautoCompPatt"] = null;
Session["AxpExcelExport"] = null;
Session["AxpFldMultiSelect"] = null;
Session["AxpFldMultiSelSp"] = null;
}
if ((Session["MobileView"] != null && Session["MobileView"].ToString() == "True"))
{
if (mobileCardLayout != "none")
{
Session["AxInlineGridEdit"] = "false";
AxpGridFormCols = "form♠";
}
AxpIsAutoSplit = "false";
}
}
catch (Exception ex)
{
LogFile.Log logObj = new LogFile.Log();
string sessID = Constants.GeneralLog;
if (HttpContext.Current.Session != null)
sessID = HttpContext.Current.Session.SessionID;
logObj.CreateLog("SetAxpStructConfigProps -" + ex.Message, sessID, "SetAxpStructConfigProps", "new");
}
}
#endregion
#region SetGlobalVariables
///
/// Function to Set the Global variables like transid, user, role etc...
///
private void SetGlobalVariables()
{
if (!IsPostBack)
{
GetWorkflowGlobalVars();
hdnAxIsPerfCode.Value = Session["AxIsPerfCode"].ToString();
proj = Session["project"].ToString();
//ViewState["proj"] = proj;
user = Session["user"].ToString();
//ViewState["user"] = user;
sid = Session["nsessionid"].ToString();
//ViewState["sid"] = sid;
AxRole = Session["AxRole"].ToString();
//ViewState["AxRole"] = AxRole;
language = Session["language"].ToString();
//ViewState["language"] = language;
transId = Request.QueryString["transid"].ToString();
if (!util.IsTransIdValid(transId))
Response.Redirect(Constants.PARAMERR);
Session.Add("transid", transId);
//ViewState["tid"] = transId;
fileName = "opentstruct-" + transId;
errorLog = logobj.CreateLog("Loading Structure.", sid, fileName, "new");
if ((!string.IsNullOrEmpty(Request.QueryString["recordid"])))
{
rid = Request.QueryString["recordid"];
rid = CheckSpecialChars(rid);
//ViewState["rid"] = rid;
}
else
{
rid = "0";
}
if (Request.QueryString.Count < 2 && (Session["lstRecordIds"] != null || Session["recordTransId"] != null || Session["navigationInfoTable"] != null) || Request.QueryString.ToString().Contains("axpdraftid"))
util.ClearSession();
//remove key from querystring
if (Request.QueryString["AxIsPop"] != null)
{
System.Reflection.PropertyInfo isreadonly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty("IsReadOnly", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
isreadonly.SetValue(this.Request.QueryString, false, null);
this.Request.QueryString.Remove("AxIsPop");
}
//The AxPop is used to identify if the tstruct is opened as pop up and hide navigate buttons
if (Request.QueryString["AxPop"] != null)
isTstPop = Convert.ToBoolean(Request.QueryString["AxPop"].ToString());
if (Request.QueryString["AxHypTstRefresh"] != null)
Session["AxHypTstRefresh"] = Request.QueryString["AxHypTstRefresh"].ToString();
if (Session["AxLogging"] != null)
AxLogTimeTaken = Session["AxLogging"].ToString().ToLower();
}
else
{
proj = Session["project"].ToString();
sid = Session["nsessionid"].ToString();
user = Session["user"].ToString();
transId = Session["transid"].ToString();
AxRole = Session["AxRole"].ToString();
language = Session["language"].ToString();
}
if ((Request.QueryString["act"] != null))
{
actstr = " act='" + Request.QueryString["act"].ToString() + "'";
actstrType = Request.QueryString["act"].ToString();
}
if (actstr == string.Empty && (Request.QueryString["hltype"] != null))
{
actstr = " act='" + Request.QueryString["hltype"].ToString() + "'";
actstrType = Request.QueryString["hltype"].ToString();
}
if (Request.QueryString["AxSplit"] != null)
{
AxSplit = Request.QueryString["AxSplit"].ToString() == "true" ? true : false;
}
if (HttpContext.Current.Session["dbuser"] != null)
schemaName = HttpContext.Current.Session["dbuser"].ToString();
}
private void GetWorkflowGlobalVars()
{
if (Application["AxOnApproveDisable"].ToString().ToLower() == "true")
AxOnApproveDisable = "true";
if (Application["AxOnRejectDisable"].ToString().ToLower() == "true")
AxOnRejectDisable = "true";
if (Application["AxOnReturnSave"].ToString().ToLower() == "true")
AxOnReturnSave = "true";
if (Application["AxOnRejectSave"].ToString().ToLower() == "true")
AxOnRejectSave = "true";
}
private void SetSessionVariables()
{
if (Session["AxDisplayAutoGenVal"] != null)
hdnShowAutoGenFldValue.Value = Session["AxDisplayAutoGenVal"].ToString();
if (Session["MobileView"] != null && Session["MobileView"].ToString() == "True")
axWizardType = "modern";
else if (Session["AxWizardType"] != null)
axWizardType = Session["AxWizardType"].ToString();
if (Session["AxDrafts"] != null)
tstDraftsScript = Session["AxDrafts"].ToString();
if (!String.IsNullOrEmpty(Session["AxExportTallyTid"].ToString()))
exportTallyTid = Session["AxExportTallyTid"].ToString().ToLower();
if (Session["AxIsPerfCode"] != null && Session["AxIsPerfCode"].ToString().ToLower() == "true")
isRapidLoad = true;
traceLog = logobj.CreateLog("AsbDefineRest-savetstruct", Session.SessionID.ToString(), "tstruct-add-field", "new");
traceLog = traceLog.Replace("\\", "\\\\");
//If a Tstruct is opened from HypLink, then, it should not be loaded from In Mem during Rapid Load.
if (HttpContext.Current.Session["AxFromHypLink"] != null && HttpContext.Current.Session["AxFromHypLink"].ToString().ToUpper() == "TRUE")
loadFromMem = false;
//If a Tstruct is opened from Actions, then, it should not be loaded from In Mem during Rapid Load.
if (Request.QueryString["IsFrmAct"] != null && Request.QueryString["IsFrmAct"].ToString().ToUpper() == "TRUE")
loadFromMem = false;
if (Request.QueryString["theMode"] != null && Request.QueryString["theMode"].ToString().ToLower() == "design")
theModeDesign = true;
if (theModeDesign)
HttpContext.Current.Session[Request.QueryString["transid"] + "IsDesignMode"] = theModeDesign;
else
HttpContext.Current.Session.Remove(Request.QueryString["transid"] + "IsDesignMode");
//AutoSave and publish
if (theModeDesign == true && Session["AutoSavePublish"] != null)
{
if (Session["AutoSavePublish"].ToString().ToLower() == "true")
{
saveDesign.Visible = false;
PublishDesign.Visible = false;
PublishSaveDesign.Visible = true;
}
}
string scriptsUrlPath = Application["ScriptsurlPath"].ToString();
if (HttpContext.Current.Session["AxDraftSavePath"] != null)
draftsPath = HttpContext.Current.Session["AxDraftSavePath"].ToString() + "axpert\\drafts\\";
hdnScriptsUrlpath.Value = scriptsUrlPath;
hdnScriptspath.Value = scriptsUrlPath;
if (Session["AppSessionKey"] != null)
appsessionKey = Session["AppSessionKey"].ToString();
//if (ConfigurationManager.AppSettings["FetchPickListRows"] != null && ConfigurationManager.AppSettings["FetchPickListRows"].ToString() != "")
// FetchPickListRows = int.Parse(ConfigurationManager.AppSettings["FetchPickListRows"].ToString());
langauge = Session["language"].ToString();
if (HttpContext.Current.Session["AxImagePath"] != null && HttpContext.Current.Session["AxImagePath"].ToString() != "")
isAxpImagePath = "true";
if (HttpContext.Current.Session["AxpImagePathGbl"] != null && HttpContext.Current.Session["AxpImagePathGbl"].ToString() != "")
isAxpImagePath = "true";
if (AxpSaveImageDb.ToLower() == "true")
isAxpImagePath = "false";
isAxpImagePathHidden.Value = isAxpImagePath;
}
#endregion
#region WriteGlobalVariables
///
/// Function to write the Global variables info to the javascript.
///
private void WriteGlobalVariables()
{
tstVars.Append("");
}
private void GetLanguage()
{
getLang.Append("");
}
private void WriteTstJsArrayDef(TStructDef strObj)
{
tstJsArrays.Append("");
}
#endregion
#region GetCacheObject
private CacheManager GetCacheObject()
{
CacheManager cacheMgr = null;
try
{
cacheMgr = new CacheManager(errorLog);
}
catch (Exception ex)
{
requestProcess_logtime += "Server - " + ex.Message + " ♦ ";
Response.Redirect(util.ERRPATH + ex.Message + "*♠*" + requestProcess_logtime);
}
if (cacheMgr == null)
{
requestProcess_logtime += "Server - Server error. Please try again later ♦ ";
Response.Redirect(util.ERRPATH + "Server error. Please try again later" + "*♠*" + requestProcess_logtime);
}
return cacheMgr;
}
#endregion
#region GetStrObject
private TStructDef GetStrObject(CacheManager cacheMgr)
{
TStructDef strObj = null;
// cachemanager and TStructDef objects throw exceptions
try
{
string language = HttpContext.Current.Session["language"].ToString();
strObj = cacheMgr.GetStructDef(proj, sid, user, transId, AxRole);
isTstCustomHtml = strObj.IsObjCustomHtml;
requestProcess_logtime += cacheMgr.requestProcess_log;
ClearDcHasDataRows(strObj);
}
catch (Exception ex)
{
if (ex.Message.IndexOf("♠") > -1)
{
requestProcess_logtime += ex.Message.Split('♠')[0];
requestProcess_logtime += ObjExecTr.ResponseErrorMsg("Server - " + ex.Message.Split('♠')[1]);
if (ex.Message.Split('♠')[1] == Constants.SESSIONEXPMSG)
{
Response.Redirect(util.ERRPATH + Constants.SESSIONEXPMSG + "*♠*" + requestProcess_logtime);
return null;
}
else
{
Response.Redirect(util.ERRPATH + ex.Message.Replace(Environment.NewLine, "").Split('♠')[1] + "*♠*" + requestProcess_logtime);
}
}
else
{
if (ex.Message == Constants.SESSIONEXPMSG)
{
Response.Redirect(util.ERRPATH + Constants.SESSIONEXPMSG);
return null;
}
else
{
Response.Redirect(util.ERRPATH + ex.Message.Replace(Environment.NewLine, ""));
}
}
}
if (strObj == null)
{
requestProcess_logtime += "Server - Server error. Please try again later ♦ ";
Response.Redirect(util.ERRPATH + "Server error. Please try again later" + "*♠*" + requestProcess_logtime);
}
return strObj;
}
#endregion
#region GetStructureDetails
///
/// Gets the structure of the tstruct either from the customized folder, or the Cache or Database
///
///
private void GetStructureDetails(TStructDef strObj, CacheManager cacheMgr)
{
Boolean objFromCache = strObj.IsObjFromCache;
tstScript = ClearStringBuilders(tstScript);
tstTabScript = ClearStringBuilders(tstTabScript);
if (objFromCache)
{
tstTabScript.Append(strObj.GenerateTabScript(strObj));
cacheMgr.GetStructureHTML(transId, AxRole, sid, language);
tstHTML.Append(cacheMgr.StructureHtml);
tstHeader.Append(cacheMgr.TstHeaderHtml);
toolbarBtnHtml.Append(cacheMgr.ToolbarBtnIcons);
if (cacheMgr.ModernToolbarBtnOpen != "")
{
modernToolbarBtnHtml.Append(cacheMgr.ModernToolbarBtnOpen.Split('♦')[0]);
btnfooteropenlist = cacheMgr.ModernToolbarBtnOpen.Split('♦')[1];
modernFooterActBtnHtml.Append(cacheMgr.ModernToolbarBtnOpen.Split('♦')[2]);
}
tstScript.Append(cacheMgr.StructureScript);
tstCaption = cacheMgr.StructureCaption;
tstName = cacheMgr.StructureName;
if (AxpTstButtonStyle == "old")
{
if (ShowSubCanBtns() && !theModeDesign)
{
if ((strObj.dcs.Count >= 0) && Session["MobileView"] != null)
{
submitCancelBtns.Append("");
// dvFooter.Visible = true;
heightframe.Attributes.Add("data-submitcancel", "true");
}
}
else
{
//dvFooter.Visible = false;
submitCancelBtns = ClearStringBuilders(submitCancelBtns);
heightframe.Attributes.Add("data-submitcancel", "false");
}
dvFooterHtml = submitCancelBtns.ToString();
}
if (string.IsNullOrEmpty(tstHTML.ToString()) || string.IsNullOrEmpty(tstHeader.ToString()) || string.IsNullOrEmpty(tstScript.ToString()))
{
objFromCache = false;
attHtml = ClearStringBuilders(attHtml);
taskBtnHtml = ClearStringBuilders(taskBtnHtml);
dcHtml = ClearStringBuilders(dcHtml);
tstHeader = ClearStringBuilders(tstHeader);
submitCancelBtns = ClearStringBuilders(submitCancelBtns);
tstScript = ClearStringBuilders(tstScript);
tstCaption = string.Empty;
tstName = string.Empty;
}
else
{
if (isTstructCached && isTstInCache)
{
//tstScript.Append(cacheMgr.TabScript);
tstHTML = ClearStringBuilders(tstHTML);
WriteHtml(strObj, cacheMgr);
}
else
wBdr.InnerHtml = "" + tstHTML.ToString();
//wBdr.InnerHtml = "" + Constants.WIZARD_TEMPLATE + tstHTML.ToString();
}
}
if (util.BreadCrumb)
{
GetBreadCrumb();
}
if (!objFromCache)
{
tstCaption = strObj.tstCaption;
//tstCaption = Session["menubreadcrumb"].ToString() + strObj.tstCaption;
ParseStructure(strObj, cacheMgr);
tstName = strObj.transId;
cacheMgr.StructureHtml = tstHTML.ToString();
cacheMgr.axdesignJObcmg = strObj.axdesignJObject;
cacheMgr.StructureScript = tstScript.ToString();
cacheMgr.StructureCaption = tstCaption;
cacheMgr.StructureName = tstName;
cacheMgr.StructureSubmitCancel = submitCancelBtns.ToString();
cacheMgr.TstHeaderHtml = tstHeader.ToString();
cacheMgr.ToolbarBtnIcons = toolbarBtnHtml.ToString();
cacheMgr.ModernToolbarBtnOpen = modernToolbarBtnHtml.ToString() + "♦" + btnfooteropenlist + "♦" + modernFooterActBtnHtml;
string language = HttpContext.Current.Session["language"].ToString();
string fdKey = Constants.REDISTSTRUCT;
if (HttpContext.Current.Session["MobileView"] != null && HttpContext.Current.Session["MobileView"].ToString() == "True")
fdKey = Constants.REDISTSTRUCTMOB;
string pgKey = Constants.AXPAGETITLE;
ArrayList redisvalues = new ArrayList();
Boolean designMode = false;
if (HttpContext.Current.Session[transId + "IsDesignMode"] != null && HttpContext.Current.Session[transId + "IsDesignMode"].ToString() != string.Empty)
designMode = Convert.ToBoolean(HttpContext.Current.Session[transId + "IsDesignMode"]);
if (!designMode)
{
cacheMgr.fdwObj.SaveInRedisServer(util.GetRedisServerkey(fdKey, transId), strObj, Constants.REDISTSTRUCT, schemaName);
FDR fObj = (FDR)HttpContext.Current.Session["FDR"];
var redisvalues1 = fObj.ObjectJsonFromRedis(util.GetRedisServerkey(pgKey, ""));
if (redisvalues1 == null)
redisvalues.Add(Title + "♠" + tstCaption + "♠" + transId);
else
{
redisvalues = (ArrayList)redisvalues1;
string newValue = Title + "♠" + tstCaption + "♠" + transId;
if (!redisvalues.Contains(newValue))
redisvalues.Add(newValue);
}
cacheMgr.fdwObj.SaveInRedisServer(util.GetRedisServerkey(pgKey, transId), redisvalues, Constants.AXPAGETITLE, schemaName);
}
cacheMgr.SetStructureHTML(transId, AxRole, language);
}
strGlobalVar = util.GetGlobalVarString();
if (strGlobalVar != string.Empty)
{
string global_Scripts = "";
tstScript.Append(global_Scripts);
}
}
private StringBuilder ClearStringBuilders(StringBuilder strName)
{
strName.Remove(0, strName.ToString().Length);
return strName;
}
#endregion
#region Structure Related Methods
#region ParseStructure
///
/// Function to create Html for the Structure.
///
///
private void ParseStructure(TStructDef strObj, CacheManager cacheMgr)
{
if (!strObj.IsObjCustomHtml || theModeDesign)
{
if (!strObj.hideToolBar)
if (strObj.dwbToolbar)
{
toolbarBtnHtml.Length = 0;
if (AxpTstButtonStyle != "old") //if (AxpTstButtonStyle != "" && AxpTstButtonStyle != "old")
toolbarBtnHtml = createModernToolbarButtons(strObj, new ArrayList());
else
{
toolbarBtnHtml = createDwbToolbarButtons(strObj, new ArrayList());
PrintHTMLtoPDFNew(strObj);
if (Session["axDesign"].ToString() == "true")
designModeBtnHtml = Constants.DESIGN_MODE_BTN_HTML_NEW;
}
}
else
{
if (AxpTstButtonStyle != "old")
toolbarBtnHtml = createModernToolbarButtons(strObj, new ArrayList());
else
CreateToolbarButtons(strObj);
}
}
else
{
tstToolBarBtn.InnerHtml = string.Empty;
if (cacheMgr.tstCustomHTML.Split('@').Length > 1)
toolbarBtnHtml.Append(cacheMgr.tstCustomHTML.Split('@')[1] != "" ? cacheMgr.tstCustomHTML.Split('@')[1] : designModeBtnHtml.ToString());
else if (designModeBtnHtml != string.Empty)
toolbarBtnHtml.Append(designModeBtnHtml.ToString());
// footer buttons custom html
if (cacheMgr.tstCustomHTML.Split('@').Length > 3)
modernToolbarBtnHtml.Append(cacheMgr.tstCustomHTML.Split('@')[3]);
}
CreateHeaderHtml(strObj, cacheMgr);
if (!strObj.IsObjCustomHtml || theModeDesign)
CreateDcHtml(strObj);
strObj.CreateTabArrays();
tstScript.Append(strObj.GetJScriptArrays(strObj));
if (!strObj.IsObjCustomHtml || theModeDesign)
WriteHtml(strObj, cacheMgr);
else
{
string gridElementsHeightScript = "";
if (cacheMgr.tstCustomHTML.Split('@').Length > 2)
tstHTML.Append(cacheMgr.tstCustomHTML.Split('@')[2] + gridElementsHeightScript);
else
tstHTML.Append(cacheMgr.tstCustomHTML + gridElementsHeightScript);
//wBdr.InnerHtml = "" + Constants.WIZARD_TEMPLATE + tstHTML.ToString();
wBdr.InnerHtml = "" + tstHTML.ToString();
tstTabScript.Append(strObj.GenerateTabScript(strObj));//Temp added for Custom HTML Issue
}
tstScript.Append(tstTabScript.ToString());
}
#endregion
#region Toolbar Creation Methods
///
/// Function to create the toolbar buttons from the button array in the structdef object.
/// For action button, the image of the button needs tobe available at AxpImages folder.
/// Note on png files are supported.
///
/// StructDef object returned for the structure
//TODO: Steps needed to add new task
private void CreateToolbarButtons(TStructDef strObj)
{
//The loop is reversed to sort the toolbar button left values which come in the descending order.
toolbarBtnHtml.Length = 0;
for (int i = strObj.btns.Count - 1; i >= 0; i--)
{
TStructDef.ButtonStruct btn = (TStructDef.ButtonStruct)strObj.btns[i];
string[] arrLeft = null;
string tlhw = string.Empty;
tlhw = btn.dimension;
if (!string.IsNullOrEmpty(tlhw))
{
arrLeft = tlhw.Split(',');
if ((arrLeft.Length > 0 & arrLeft[1] != string.Empty))
{
if (leftBtns.IndexOf(arrLeft[1].ToString()) != -1)
arrLeft[1] = Convert.ToString(Convert.ToInt32(arrLeft[1], 10) + 1);
leftBtns.Add(arrLeft[1]);
//if (!(btn.task.ToLower() == "" && btn.action.ToLower() != ""))
tmpLeftBtns.Add(arrLeft[1]);
}
else
{
logobj.CreateLog(" Button left value is missing: " + btn.caption, sid, fileName, "");
}
}
string hint = btn.hint;
string caption = btn.caption;
string task = btn.task.ToLower();
string action = btn.action.ToLower();
string btnName = "";
if (!string.IsNullOrEmpty(caption)) btnName = caption;
else if (!string.IsNullOrEmpty(hint)) btnName = hint;
btnFunction = string.Empty;
btnHTML = string.Empty;
btnStyle = string.Empty;
btnStyle = "";
switch (task)
{
case "new":
if (string.IsNullOrEmpty(btnName)) btnName = "New";
if (hint == "New")
{
btnFunction = " onclick='javascript:NewTstruct();' ";
toolBarBtns.Add("" + btnName + "");
btnStyle = "newTask";
}
else
{
btnFunction = " onclick='javascript:NewTstruct();' ";
toolBarBtns.Add("" + btnName + "");
//toolBarBtns.Add("");
}
break;
case "save":
if (string.IsNullOrEmpty(btnName)) btnName = "Save";
btnFunction = " onclick='javascript:FormSubmit();' ";
toolBarBtns.Add("" + btnName + "");
break;
case "search":
if (string.IsNullOrEmpty(btnName)) btnName = "Search";
btnFunction = " onclick=\"javascript:OpenSearch('" + transId + "');\" ";
btnStyle = "handCur";
toolBarBtns.Add("" + btnName + "");
break;
case "remove":
if (string.IsNullOrEmpty(btnName)) btnName = "Remove";
btnFunction = " onclick='javascript:DeleteTstruct();' ";
btnStyle = "handCur";
toolBarBtns.Add("" + btnName + "");
break;
case "print":
if (string.IsNullOrEmpty(btnName)) btnName = "Print";
btnFunction = " onclick=\"javascript:OpenPrint('" + transId + "');\" ";
btnStyle = "handCur";
if (strObj.tstPform == "yes")
{
toolBarBtns.Add("" + btnName + "");
}
else
{
toolBarBtns.Add("");
}
break;
case "pdf":
if (string.IsNullOrEmpty(btnName)) btnName = "PDF";
string hideClass = string.Empty;
if (strObj.pdfList == "")
{
hideClass = " class=\"hide\" ";
}
btnFunction = " onclick='javascript:OpenPdfDocList();'";
//btnFunction = " onclick='javascript:ProcessRow();' ";
btnStyle = "handCur";
toolBarBtns.Add("" + btnName + "");
break;
case "view history":
if (string.IsNullOrEmpty(btnName)) btnName = "View History";
btnFunction = " onclick=\"javascript:OpenHistory('" + transId + "');\" ";
btnStyle = "handCur";
toolBarBtns.Add("" + btnName + "");
break;
case "listview":
if (string.IsNullOrEmpty(btnName)) btnName = "List View";
//btnFunction = " onclick='javascript:CallListView('" + transId + "');' ";
btnFunction = " onclick=\"javascript:CallListView('" + transId + "');\" ";
btnStyle = "handCur";
toolBarBtns.Add("" + btnName + "");
break;
case "attach":
if (string.IsNullOrEmpty(btnName)) btnName = "Attach";
btnFunction = " onclick='javascript:AttachFiles();' ";
btnStyle = "handCur";
toolBarBtns.Add("" + btnName + "");
break;
case "tasks":
btnFunction = " onclick='javascript:FindPos();ShowTaskList();' ";
btnStyle = "handCur";
if (strObj.taskBtns.Count > 0)
{
StringBuilder TaskBtnHTML = new StringBuilder();
TaskBtnHTML.Append("" + lblTaskBtn.Text + "