Beispiel #1
0
 public IHttpActionResult CopyRights(UserRights_VM Record)
 {
     try
     {
         using (UserRightService obj = new UserRightService())
             return(Ok(obj.CopyRights(Record)));
     }
     catch (Exception Ex)
     {
         return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, Ex.Message.ToString())));
     }
 }
        public IDictionary <string, object> CopyRights(UserRights_VM VM)
        {
            string USERID       = "";
            string BRANCHID     = "";
            string MENUID       = "";
            string ErrorMessage = "";
            string sMode        = "ADD";

            Dictionary <string, object> RetData = new Dictionary <string, object>();
            DataTable Dt_Menu = new DataTable();

            DataTable Dt_Rec = new DataTable();

            DBRecord mRec;

            Con_Oracle = new DBConnection();

            GlobalVariables mGbl            = VM.globalVariables;
            string          COPYTO_USERID   = VM.copyto_user_id;
            string          COPYTO_BRANCHID = VM.copyto_branch_id;

            try
            {
                if (COPYTO_USERID.Length <= 0)
                {
                    ErrorMessage += "| Copy User ID Not Found";
                }

                DataTable Dt_Usrbranch = new DataTable();
                sql = "select user_branch_id from userd where user_id = '" + COPYTO_USERID + "'";
                if (COPYTO_BRANCHID.Trim() != "")
                {
                    sql += " and user_branch_id = '" + COPYTO_BRANCHID + "'";
                }

                Dt_Usrbranch = Con_Oracle.ExecuteQuery(sql);
                if (Dt_Usrbranch.Rows.Count <= 0)
                {
                    ErrorMessage += " | Branch Rights Not Found";
                }

                if (ErrorMessage != "")
                {
                    if (Con_Oracle != null)
                    {
                        Con_Oracle.CloseConnection();
                    }
                    throw new Exception(ErrorMessage);
                }

                foreach (DataRow dr in Dt_Usrbranch.Rows)
                {
                    COPYTO_BRANCHID = dr["user_branch_id"].ToString();

                    Con_Oracle.BeginTransaction();
                    foreach (var Rec in VM.userRights)
                    {
                        Rec.rights_id = Guid.NewGuid().ToString().ToUpper();
                        sMode         = "ADD";

                        USERID   = COPYTO_USERID;
                        BRANCHID = COPYTO_BRANCHID;
                        MENUID   = Rec.menu_id;

                        sql  = "";
                        sql += " select rights_pkid from userrights where ";
                        sql += " rights_user_id = '{USERID}'  and ";
                        sql += " rights_branch_id = '{BRANCHID}' and ";
                        sql += " rights_menu_id = '{MENUID}' ";

                        sql = sql.Replace("{USERID}", USERID);
                        sql = sql.Replace("{BRANCHID}", BRANCHID);
                        sql = sql.Replace("{MENUID}", MENUID);

                        Dt_Menu = new DataTable();
                        Dt_Menu = Con_Oracle.ExecuteQuery(sql);
                        if (Dt_Menu.Rows.Count > 0)
                        {
                            Rec.rights_id = Dt_Menu.Rows[0].ToString();
                            sMode         = "EDIT";
                        }

                        if (Rec.rights_company || Rec.rights_admin || Rec.rights_add || Rec.rights_edit ||
                            Rec.rights_delete || Rec.rights_print || Rec.rights_email || Rec.rights_docs ||
                            Rec.rights_view)
                        {
                            if (Rec.rights_add || Rec.rights_edit)
                            {
                                Rec.rights_view = true;
                            }

                            Rec.rights_branch_id = BRANCHID;
                            Rec.rights_user_id   = USERID;

                            mRec = new DBRecord();
                            mRec.CreateRow("userrights", sMode, "rights_pkid", Rec.rights_id.ToString());
                            mRec.InsertString("rights_branch_id", Rec.rights_branch_id.ToString());
                            mRec.InsertString("rights_user_id", Rec.rights_user_id.ToString());
                            mRec.InsertString("rights_menu_id", Rec.menu_id.ToString());
                            mRec.InsertString("rights_company", (Rec.rights_company) ? "Y" : "N");
                            mRec.InsertString("rights_admin", (Rec.rights_admin) ? "Y" : "N");
                            mRec.InsertString("rights_add", (Rec.rights_add) ? "Y" : "N");
                            mRec.InsertString("rights_edit", (Rec.rights_edit) ? "Y" : "N");
                            mRec.InsertString("rights_delete", (Rec.rights_delete) ? "Y" : "N");
                            mRec.InsertString("rights_print", (Rec.rights_print) ? "Y" : "N");
                            mRec.InsertString("rights_email", (Rec.rights_email) ? "Y" : "N");
                            mRec.InsertString("rights_docs", (Rec.rights_docs) ? "Y" : "N");
                            mRec.InsertString("rights_docs_upload", (Rec.rights_docs_upload) ? "Y" : "N");
                            mRec.InsertString("rights_view", (Rec.rights_view) ? "Y" : "N");
                            // mRec.InsertString("rights_approval", Rec.rights_approval);

                            Con_Oracle.ExecuteNonQuery(mRec.UpdateRow());
                        }
                    }

                    sql  = "";
                    sql  = " update userd set user_rights_total = (select count(*) from userrights where rights_user_id = '{USERID}' and rights_branch_id = '{BRANCHID}')";
                    sql += " where user_id = '{USERID}' and user_branch_id = '{BRANCHID}'";
                    sql  = sql.Replace("{USERID}", USERID);
                    sql  = sql.Replace("{BRANCHID}", BRANCHID);
                    Con_Oracle.ExecuteNonQuery(sql);

                    Con_Oracle.CommitTransaction();
                }
            }
            catch (Exception Ex)
            {
                if (Con_Oracle != null)
                {
                    Con_Oracle.RollbackTransaction();
                    Con_Oracle.CloseConnection();
                }
                throw Ex;
            }
            Con_Oracle.CloseConnection();
            return(RetData);
        }
        public IDictionary <string, object> Save(UserRights_VM VM)
        {
            string USERID   = "";
            string COMPID   = "";
            string BRANCHID = "";
            string MENUID   = "";

            Dictionary <string, object> RetData = new Dictionary <string, object>();

            DataTable Dt_Rec = new DataTable();
            DBRecord  mRec;

            Con_Oracle = new DBConnection();

            GlobalVariables mGbl = VM.globalVariables;

            try
            {
                Con_Oracle.BeginTransaction();
                foreach (var Rec in VM.userRights)
                {
                    USERID   = Rec.rights_user_id;
                    COMPID   = Rec.rights_company_id;
                    BRANCHID = Rec.rights_branch_id;
                    MENUID   = Rec.menu_id;

                    sql  = "";
                    sql += " delete from userrights where ";
                    sql += " rights_user_id = '{USERID}'  and ";
                    sql += " rights_company_id = '{COMPID}' and ";
                    sql += " rights_menu_id = '{MENUID}' ";

                    sql = sql.Replace("{USERID}", USERID);
                    sql = sql.Replace("{COMPID}", COMPID);
                    sql = sql.Replace("{MENUID}", MENUID);
                    Con_Oracle.ExecuteNonQuery(sql);


                    if (Rec.rights_company || Rec.rights_admin || Rec.rights_add || Rec.rights_edit ||
                        Rec.rights_delete || Rec.rights_print || Rec.rights_email || Rec.rights_docs ||
                        Rec.rights_view || Rec.rights_approval.Length > 0)
                    {
                        if (Rec.rights_add || Rec.rights_edit)
                        {
                            Rec.rights_view = true;
                        }

                        mRec = new DBRecord();
                        mRec.CreateRow("userrights", "ADD", "rights_pkid", Rec.rights_id.ToString());
                        mRec.InsertString("rights_company_id", Rec.rights_company_id.ToString());
                        //mRec.InsertString("rights_branch_id", Rec.rights_branch_id.ToString());
                        mRec.InsertString("rights_user_id", Rec.rights_user_id.ToString());
                        mRec.InsertString("rights_menu_id", Rec.menu_id.ToString());
                        mRec.InsertString("rights_company", (Rec.rights_company) ? "Y" : "N");
                        mRec.InsertString("rights_admin", (Rec.rights_admin) ? "Y" : "N");
                        mRec.InsertString("rights_add", (Rec.rights_add) ? "Y" : "N");
                        mRec.InsertString("rights_edit", (Rec.rights_edit) ? "Y" : "N");
                        mRec.InsertString("rights_delete", (Rec.rights_delete) ? "Y" : "N");
                        mRec.InsertString("rights_print", (Rec.rights_print) ? "Y" : "N");
                        mRec.InsertString("rights_email", (Rec.rights_email) ? "Y" : "N");
                        mRec.InsertString("rights_docs", (Rec.rights_docs) ? "Y" : "N");
                        mRec.InsertString("rights_docs_upload", (Rec.rights_docs_upload) ? "Y" : "N");
                        mRec.InsertString("rights_view", (Rec.rights_view) ? "Y" : "N");
                        mRec.InsertString("rights_restricted", (Rec.rights_restricted) ? "Y" : "N");
                        mRec.InsertString("rights_approval", Rec.rights_approval);

                        Con_Oracle.ExecuteNonQuery(mRec.UpdateRow());
                    }
                }


                /*
                 * sql = "";
                 * sql = " update userd set user_rights_total = (select count(*) from userrights where rights_user_id = '{USERID}' and rights_branch_id = '{BRANCHID}')";
                 * sql += " where user_id = '{USERID}' and user_branch_id = '{BRANCHID}'";
                 * sql = sql.Replace("{USERID}", USERID);
                 * sql = sql.Replace("{BRANCHID}", BRANCHID);
                 * Con_Oracle.ExecuteNonQuery(sql);
                 */

                Con_Oracle.CommitTransaction();
            }
            catch (Exception Ex)
            {
                if (Con_Oracle != null)
                {
                    Con_Oracle.RollbackTransaction();
                    Con_Oracle.CloseConnection();
                }
                throw Ex;
            }
            Con_Oracle.CloseConnection();
            return(RetData);
        }