string ApplySalesmanPermissions(DataTable dtObj) { // Check if salesman in criteria fields string SQL; int FldIndex = DataTools.GetStrSerial(DataTools.ReadField(dtObj.Rows[0]["CriteriaFields"]), "Salesman"); if ((FldIndex == -1)) { FldIndex = DataTools.GetStrSerial(DataTools.ReadField(dtObj.Rows[0]["CriteriaFieldsCaptions"]), "Salesman"); } if ((FldIndex == -1)) { return(""); } DataTable dtr = DataTools.DLookUp(DataTools.GetConnectionStr(), "Persons", "PersonCode", ("PersonType=3 AND UserName='******' AND Rank=1"))); if ((dtr.Rows.Count == 0)) { return(""); } string Salesman = dtr.Rows[0][0].ToString(); string TabName = DataTools.GetStrPart(DataTools.ReadField(dtObj.Rows[0]["CriteriaFieldsTables"]), FldIndex); string FldName = DataTools.GetStrPart(DataTools.ReadField(dtObj.Rows[0]["CriteriaFields"]), FldIndex); if ((TabName.Substring(0, 1) == "@")) { if ((TabName == "@")) { TabName = ("@" + DataTools.ReadField(dtObj.Rows[0]["Source"])); } SQL = ("({" + (TabName.Substring(1) + ("." + (FldName + ("} = '" + (Salesman + "'")))))); } else { SQL = ("((" + (((TabName == "") ? FldName : (TabName + ("." + FldName))) + (" = ('" + (Salesman + "')))")))); } return(SQL); }
public ActionResult LoginPage(Users _login) { if (ModelState.IsValid) //validating the user inputs { FillMainFormsMenu(); FillMainReportsMenu(); bool isExist = false; DataSet report_ds = new DataSet(); DataSet form_ds = new DataSet(); List <MainMenuModel> RPT = new List <MainMenuModel>(); List <MainMenuModel> FRM = new List <MainMenuModel>(); Dictionary <int, string> Frm_dic = new Dictionary <int, string>(); Dictionary <int, string> Rpt_dic = new Dictionary <int, string>(); List <string> _menus2 = new List <string>(); List <string> list = new List <string>(); using (JEDMISDBEntities _entity = new JEDMISDBEntities()) // out Entity name is "JEDMISDBEntities" { //validating the user name in tbl users table whether the user name is exist or not isExist = _entity.Users.Where(x => x.UserName.Trim().ToLower() == _login.UserName.Trim().ToLower()).Any(); // Get the login user details and bind it to User class if (isExist) { UserModel _loginCredentials = _entity.UserRights.Where(x => x.UserName.Trim().ToLower() == _login.UserName.Trim().ToLower()) .Select(x => new UserModel { UserName = x.UserName, CanRun = x.CanRun, ObjectID = x.ObjectID, BranchCode = x.BranchCode, //UserRights = x.UserRights }).FirstOrDefault(); Session["UserName"] = _loginCredentials.UserName; Session["BranchCode"] = _loginCredentials.BranchCode; //var mnu = db.Objects.Where(x => x.ObjectType == "R").GroupBy(x=>x.MainMnuName).ToList(); //Get the Menu details from entity and bind it in MenuModels list. //List<MenuModels> _menus = _entity.Objects.Where(x => x.ObjectType == "R").Select(x => new MenuModels //{ // ObjectID = x.ObjectID, // ObjectName = x.ObjectName, // MainMnuName = x.MainMnuName, // ObjectTitle = x.ObjectTitle, // MenuIndex = x.MenuIndex, // MenuTitle = x.MenuTitle, // MnuName = x.MnuName, // CriteriaFields = x.CriteriaFields //}).ToList(); //code goning to be enhance more //here we load all report menus to datatable and save in in mainmenumodel foreach (DataRow r in MainMenuNamesDT.Rows) { //DT.Clear(); DT = DataTools.DLookUp(DataTools.GetConnectionStr(), "SELECT Objects.ObjectName, Objects.ObjectTitle, Objects.ObjectID, Objects.ObjectType, Objects.HlpHtmlFile,ISNULL(Dic.LatinCap, Objects.ObjectTitle) AS LatinCap, ISNULL(Dic.LatinCap, Objects.ObjectTitle) AS ArabicCap FROM Objects INNER JOIN (SELECT DISTINCT TOP 100 PERCENT ObjectID, UserName FROM UserRights WHERE (CanRun = 1) ORDER BY ObjectID, UserName) UR ON UR.ObjectID=Objects.ObjectID LEFT OUTER JOIN dic ON dic.FieldName = Objects.ObjectTitle ", "", "MainMnuName= '" + r["MainMnuName"].ToString() + "' AND UR.UserName='******' AND Objects.Visible=1 AND Objects.MenuHidden=0", "", "", "MenuIndex", 0); DT.TableName = r["MainMnuName"].ToString(); //int x =Int32.Parse( r["ObjectID"].ToString()); //string y = r["LatinCap"].ToString(); foreach (DataRow item in MenuDic.Rows) { if (r["MainMnuName"].ToString() == item["FieldName"].ToString()) { DT.TableName = item["LatinCap"].ToString(); } } report_ds.Tables.Add(DT);//this dataset save all submenu and name the table with name of menu name List <string> list2 = DT.AsEnumerable().Select(t => t.Field <string>("LatinCap")).ToList(); foreach (DataRow item in DT.Rows) { Rpt_dic.Add(Int32.Parse(item["ObjectID"].ToString()), item["LatinCap"].ToString()); } //DT.AsEnumerable().Select(row => DT.Columns.Cast<DataColumn>().ToDictionary(column => column.ColumnName, column => row["LatinCap"] as string)); RPT.Add(new MainMenuModel { MnuName = DT.TableName.ToString(), SubMainName = list2, Rep_submnu = Rpt_dic }); } foreach (DataRow r in MainMenuFormsDT.Rows) { //DT.Clear(); DT = DataTools.DLookUp(DataTools.GetConnectionStr(), "SELECT Objects.ObjectName, Objects.ObjectTitle, Objects.ObjectID, Objects.ObjectType, Objects.HlpHtmlFile,ISNULL(Dic.LatinCap, Objects.ObjectTitle) AS LatinCap, ISNULL(Dic.LatinCap, Objects.ObjectTitle) AS ArabicCap FROM Objects INNER JOIN (SELECT DISTINCT TOP 100 PERCENT ObjectID, UserName FROM UserRights WHERE (CanRun = 1) ORDER BY ObjectID, UserName) UR ON UR.ObjectID=Objects.ObjectID LEFT OUTER JOIN dic ON dic.FieldName = Objects.ObjectTitle ", "", "MainMnuName= '" + r["MainMnuName"].ToString() + "' AND UR.UserName='******' AND Objects.Visible=1 AND Objects.MenuHidden=0", "", "", "MenuIndex", 0); DT.TableName = r["MainMnuName"].ToString(); foreach (DataRow item in MainMenuDic.Rows) { if (r["MainMnuName"].ToString() == item["FieldName"].ToString()) { DT.TableName = item["LatinCap"].ToString(); } } form_ds.Tables.Add(DT); List <string> list2 = DT.AsEnumerable().Select(t => t.Field <string>("LatinCap")).ToList(); foreach (DataRow item in DT.Rows) { Frm_dic.Add(Int32.Parse(item["ObjectID"].ToString()), item["LatinCap"].ToString()); } FRM.Add(new MainMenuModel { MnuName = DT.TableName.ToString(), SubMainName = list2, Frm_submnu = Frm_dic }); } FormsAuthentication.SetAuthCookie(_loginCredentials.UserName, false); // set the formauthentication cookie Session["LoginCredentials"] = _loginCredentials; // Bind the _logincredentials details to "LoginCredentials" session Session["ReportMenu"] = RPT; //Bind the _menus list to MenuMaster session Session["FormMenu"] = FRM; return(RedirectToAction("ViewReport", "Report")); } else { ViewBag.ErrorMsg = "Please enter the valid credentials!..."; return(View()); } } } return(View()); }
protected void mainrptMenu_ItemDataBound(DataTable dataitem) { List <string> spanMainRepMenu = new List <string>(); if (dataitem.Rows.Count < 1) { return; } try { //HtmlGenericControl divRepSubMenu = (HtmlGenericControl)(e.Item.FindControl("divRepSubMenu")); foreach (DataRow row in dataitem.Rows) { if ((row == null)) { return; } if (MainMenuDic != null) { DataRow[] r = MainMenuDic.Select(("FieldName='" + (row["MainMnuName"].ToString() + "'"))); if ((r.Length > 0)) { if ((Language == "Arabic")) { if ((r[0]["ArabicCap"] == DBNull.Value)) { spanMainRepMenu.Add(r[0]["LatinCap"].ToString()); } else { spanMainRepMenu.Add(r[0]["ArabicCap"].ToString()); // btn.Text = r(0)("LatinCap").ToString() } } else { spanMainRepMenu.Add(r[0]["LatinCap"].ToString()); // btnFrmMenu.Text = r(0)("LatinCap").ToString() } } else { // btn.Text = row("MnuName").ToString() spanMainRepMenu.Add(row["MainMnuName"].ToString()); } } else { // btn.Text = row("MnuName").ToString() spanMainRepMenu.Add(row["MainMnuName"].ToString()); } DT = DataTools.DLookUp(DataTools.GetConnectionStr(), "Objects", "MnuName", ("MainMnuName='" + (row["MainMnuName"].ToString() + "' AND ObjectType='R' ")), "", "", "", 0, true); } } catch (Exception ex) { ex.Message.ToString(); } }
private void Load_Parameter(long RepID) { string strTmp; string[] arrTmp; List <string> ddlLink = new List <string>(); List <string> lstCriteria = new List <string>(); DataSet dsDic = new DataSet(); Paramters rep_par = new Paramters(); SqlDataAdapter daObject = new SqlDataAdapter(("SELECT ObjectTitle, UseAndOnly,ByBranch,CriteriaFields,CriteriaFieldsCaptions,SortFieldsList,Criteria" + "FieldsUnique,CriteriaFieldsTypes,CriteriaFieldsOperators,CriteriaFieldsSources FROM Objects WHERE ObjectID=" + RepID), DataTools.GetConnectionStr()); Session["ReportID"] = RepID; daObject.Fill(dtObject); Session["dtObject"] = dtObject; rep_par.RepTitle = dtObject.Rows[0]["ObjectTitle"].ToString(); strTmp = ((dtObject.Rows[0]["CriteriaFields"].ToString()) == null ? "" : dtObject.Rows[0]["CriteriaFields"].ToString()).Replace("\r\n", ""); arrTmp = strTmp.Split(';'); string[] arrtmp2 = (string[])arrTmp.Clone(); for (int i = 0; (i <= (arrtmp2.Length - 1)); i++) { if ((DataTools.GetStrPart(DataTools.ReadField(dtObject.Rows[0]["CriteriaFieldsCaptions"]), i) != "")) { arrtmp2[i] = DataTools.GetStrPart(DataTools.ReadField(dtObject.Rows[0]["CriteriaFieldsCaptions"]), i); } } strTmp = string.Join(";", arrtmp2); dsDic = DataTools.GetDic(strTmp); strTmp = ""; for (int i = 0; (i <= (arrTmp.Length - 1)); i++) { strTmp = ""; foreach (DataRow dr in dsDic.Tables[0].Rows) { if ((dr[0].ToString() == arrtmp2[i])) { strTmp = dr["LatinCap"].ToString(); break; } } ddlFields.Add(((strTmp == "") ? arrTmp[i] : strTmp)); } ddlLink.Add("AND"); if (!(bool)dtObject.Rows[0]["UseAndOnly"]) { ddlLink.Add("OR"); } DataTable dtCrit = new DataTable(); Session["Criteria"] = ""; Session["CriteriaCap"] = ""; dtCrit = DataTools.DLookUp(DataTools.GetConnectionStr(), "UsersRecent", "Criteria", ("UserName='******' AND ObjectID=" + RepID))), "", "", "AccessDate DESC", 1); if ((dtCrit.Rows.Count > 0)) { string CritFromTbl = dtCrit.Rows[0][0].ToString(); if (CritFromTbl != null && (CritFromTbl.Trim() != "")) { arrTmp = CritFromTbl.ToString().Split(';'); for (int i = 0; (i <= (arrTmp.Length - 1)); i++) { ValidateLine(DataTools.GetStrSerial(dtObject.Rows[0]["CriteriaFields"].ToString(), DataTools.GetStrPart(arrTmp[i], 0, "^^^")), DataTools.GetStrPart(arrTmp[i], 1, "^^^"), DataTools.GetStrPart(arrTmp[i], 2, "^^^"), DataTools.GetStrPart(arrTmp[i], 3, "^^^"), DataTools.GetStrPart(arrTmp[i], 4, "^^^"), ref strTmp); lstCriteria.Add(DataTools.GetStrPart(Session["CriteriaCap"].ToString(), i)); //Session["lstCriteria"] = (DataTools.GetStrPart(Session["Criteria"].ToString(), i)); //Session["criteria_val"] = (DataTools.GetStrPart(Session["CriteriaCap"].ToString(), i)); } } } }