コード例 #1
0
      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);
      }
コード例 #2
0
        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());
        }
コード例 #3
0
        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();
            }
        }
コード例 #4
0
      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));
                  }
              }
          }
      }