Пример #1
0
        public void UpdateFunctionalitiesPerRole(int roleID, string[] enabledfunctionalities, string[] disabledfunctionalities)
        {
            var role = Repository <Role>().GetSingle(c => c.RoleID == roleID);

            enabledfunctionalities.ForEach(
                (funct, idx) =>
            {
                if (!string.IsNullOrEmpty(funct))
                {
                    var ar = new FunctionalityRole {
                        FunctionalityName = funct, RoleID = roleID
                    };

                    if (role.FunctionalityRoles.Where(x => x.FunctionalityName == funct && x.RoleID == roleID).Count() < 1)
                    {
                        Repository <FunctionalityRole>().Add(ar);
                    }
                }
            });

            disabledfunctionalities.ForEach(
                (disabledFunc, idx) =>
            {
                if (!string.IsNullOrEmpty(disabledFunc))
                {
                    var ar = role.FunctionalityRoles.Where(x => x.FunctionalityName == disabledFunc && x.RoleID == roleID).FirstOrDefault();

                    if (ar != null)
                    {
                        Repository <FunctionalityRole>().Delete(ar);
                    }
                }
            });
        }
Пример #2
0
        void rootGridViewFuncRoles_CellValueChanged(object sender, CellValueChangedEventArgs e)
        {
            try
            {
                GridView view = sender as GridView;
                int      row  = view.FocusedRowHandle;

                if (CurrentState == ActionsStates.Edit)
                {
                    object functionalityId = view.GetRowCellValue(row, eFunctionalityRoleColumns.FunctionalityId.ToString());
                    object roleId          = view.GetRowCellValue(row, eFunctionalityRoleColumns.RoleId.ToString());
                    object read            = view.GetRowCellValue(row, eFunctionalityRoleColumns.Read.ToString());
                    object _new            = view.GetRowCellValue(row, eFunctionalityRoleColumns.New.ToString());
                    object modify          = view.GetRowCellValue(row, eFunctionalityRoleColumns.Modify.ToString());

                    FunctionalityRole tmpFunctionalityRole = new FunctionalityRole();
                    tmpFunctionalityRole.FunctionalityId = (int)functionalityId;
                    tmpFunctionalityRole.RoleId          = (roleId ?? string.Empty).ToString();
                    tmpFunctionalityRole.Read            = (bool)read;
                    tmpFunctionalityRole.New             = (bool)_new;
                    tmpFunctionalityRole.Modify          = (bool)modify;
                    AddModifiedFuncRoleToList(tmpFunctionalityRole);
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #3
0
        public void ModifyFunctionalityRole()
        {
            try
            {
                var func = GlobalSetting.FunctionalityRoleService.ModifyFunctionalityRole(null);
                Assert.Fail("Expected exception");
            }
            catch (ArgumentNullException)
            {
                Assert.IsTrue(true);
            }

            try
            {
                var fr = new FunctionalityRole
                {
                    RoleId          = "XXXXXX",
                    FunctionalityId = 1,
                    Read            = false,
                    New             = false,
                    Modify          = false,
                };

                var func = GlobalSetting.FunctionalityRoleService.ModifyFunctionalityRole(fr);
                Assert.Fail("Expected exception");
            }
            catch (NonexistentFunctionalityRoleException)
            {
                Assert.IsTrue(true);
            }

            try
            {
                using (var db = new HKSupplyContext())
                {
                    var funcMatManagement = GlobalSetting.FunctionalityService.GetFunctionalityByName("Materials Management");

                    var fr = GlobalSetting.FunctionalityRoleService.GetFunctionalityRole(funcMatManagement.FunctionalityId, "OPERATOR");
                    fr.Read   = true;
                    fr.New    = false;
                    fr.Modify = true;
                    var func = GlobalSetting.FunctionalityRoleService.ModifyFunctionalityRole(fr); //OK

                    Assert.AreEqual(true, func.Equals(fr));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #4
0
        public void NewFunctionalityRole()
        {
            try
            {
                var functionalityRole = GlobalSetting.FunctionalityRoleService.NewFunctionalityRole(null); //ArgumentNullException
                Assert.Fail("Expected exception");
            }
            catch (ArgumentNullException)
            {
                Assert.IsTrue(true);
            }

            try
            {
                var existing          = GlobalSetting.FunctionalityRoleService.GetFunctionalityRole(1, "ADMIN");
                var functionalityRole = GlobalSetting.FunctionalityRoleService.NewFunctionalityRole(existing); //NewExistingFunctionalityRoleException
                Assert.Fail("Expected exception");
            }
            catch (NewExistingFunctionalityRoleException)
            {
                Assert.IsTrue(true);
            }

            try
            {
                using (var db = new HKSupplyContext())
                {
                    var opRole             = db.Roles.FirstOrDefault(r => r.RoleId.Equals("OPERATOR"));
                    var funcUserManagement = db.Functionalities.FirstOrDefault(f => f.FunctionalityName.Equals("UserManagement"));

                    var fr = new FunctionalityRole
                    {
                        RoleId          = opRole.RoleId,
                        FunctionalityId = funcUserManagement.FunctionalityId,
                        Read            = false,
                        New             = false,
                        Modify          = false,
                    };

                    var functionalityRole = GlobalSetting.FunctionalityRoleService.NewFunctionalityRole(fr);

                    Assert.AreEqual(true, functionalityRole.Equals(fr));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        private void grdFuncRoles_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (actionsStackView.CurrentState == CustomControls.StackView.ToolbarStates.Edit)
                {
                    FunctionalityRole tmpFunctionalityRole = new FunctionalityRole();

                    tmpFunctionalityRole.FunctionalityId = (int)grdFuncRoles.Rows[e.RowIndex].Cells[(int)eFunctionalityRoleColumns.FunctionalityId].Value;
                    tmpFunctionalityRole.RoleId          = grdFuncRoles.Rows[e.RowIndex].Cells[(int)eFunctionalityRoleColumns.RoleId].Value.ToString();
                    tmpFunctionalityRole.Read            = (bool)grdFuncRoles.Rows[e.RowIndex].Cells[(int)eFunctionalityRoleColumns.Read].Value;
                    tmpFunctionalityRole.New             = (bool)grdFuncRoles.Rows[e.RowIndex].Cells[(int)eFunctionalityRoleColumns.New].Value;
                    tmpFunctionalityRole.Modify          = (bool)grdFuncRoles.Rows[e.RowIndex].Cells[(int)eFunctionalityRoleColumns.Modify].Value;
                    AddModifiedFuncRoleToList(tmpFunctionalityRole);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #6
0
        private void AddModifiedFuncRoleToList(FunctionalityRole modifiedFuncRole)
        {
            try
            {
                var funcRole = _modifiedFunctionalityRole.Where(fr => fr.FunctionalityId.Equals(modifiedFuncRole.FunctionalityId) &&
                                                                fr.RoleId.Equals(modifiedFuncRole.RoleId)).FirstOrDefault();

                if (funcRole == null)
                {
                    _modifiedFunctionalityRole.Add(modifiedFuncRole);
                }
                else
                {
                    funcRole.Read   = modifiedFuncRole.Read;
                    funcRole.New    = modifiedFuncRole.New;
                    funcRole.Modify = modifiedFuncRole.Modify;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 private void AddCreatedFunctionalityRoleToList(FunctionalityRole createdFunctionalityRole)
 {
     try
     {
         var funcRole = _createdFunctionalityRole.FirstOrDefault(fr => fr.FunctionalityId.Equals(createdFunctionalityRole.FunctionalityId) &&
                                                                 fr.RoleId.Equals(createdFunctionalityRole.RoleId));
         if (funcRole == null)
         {
             _createdFunctionalityRole.Add(createdFunctionalityRole);
         }
         else
         {
             funcRole.FunctionalityId = createdFunctionalityRole.FunctionalityId;
             funcRole.RoleId          = createdFunctionalityRole.RoleId;
             funcRole.Read            = createdFunctionalityRole.Read;
             funcRole.New             = createdFunctionalityRole.New;
             funcRole.Modify          = createdFunctionalityRole.Modify;
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #8
0
        /// <summary>
        /// Modificar un FunctionalityRole
        /// </summary>
        /// <param name="modFunctionalityRole"></param>
        /// <returns></returns>
        /// <remarks>
        /// Los campos que se actualizan son los siguientes:
        /// - Read
        /// - New
        /// - Modify
        /// </remarks>
        public FunctionalityRole ModifyFunctionalityRole(FunctionalityRole modFunctionalityRole)
        {
            try
            {
                if (modFunctionalityRole == null)
                {
                    throw new ArgumentNullException("modFunctionalityRole");
                }

                using (var db = new HKSupplyContext())
                {
                    var functionalityRole = db.FunctionalitiesRole
                                            .Where(fr => fr.FunctionalityId.Equals(modFunctionalityRole.FunctionalityId) && fr.RoleId.Equals(modFunctionalityRole.RoleId))
                                            .FirstOrDefault();

                    if (functionalityRole == null)
                    {
                        throw new NonexistentFunctionalityRoleException(GlobalSetting.ResManager.GetString("NoFunctionalityRoleExist"));
                    }


                    functionalityRole.Read   = modFunctionalityRole.Read;
                    functionalityRole.New    = modFunctionalityRole.New;
                    functionalityRole.Modify = modFunctionalityRole.Modify;
                    db.SaveChanges();

                    return(GetFunctionalityRole(modFunctionalityRole.FunctionalityId, modFunctionalityRole.RoleId));

                    //return db.FunctionalitiesRole
                    //    .Where(fr => fr.FunctionalityId.Equals(modFunctionalityRole.FunctionalityId) && fr.RoleId.Equals(modFunctionalityRole.RoleId))
                    //    .FirstOrDefault();
                }
            }
            catch (ArgumentNullException anex)
            {
                _log.Error(anex.Message, anex);
                throw anex;
            }
            catch (NonexistentFunctionalityRoleException nfre)
            {
                _log.Error(nfre.Message, nfre);
                throw nfre;
            }
            catch (SqlException sqlex)
            {
                for (int i = 0; i < sqlex.Errors.Count; i++)
                {
                    _log.Error("Index #" + i + "\n" +
                               "Message: " + sqlex.Errors[i].Message + "\n" +
                               "Error Number: " + sqlex.Errors[i].Number + "\n" +
                               "LineNumber: " + sqlex.Errors[i].LineNumber + "\n" +
                               "Source: " + sqlex.Errors[i].Source + "\n" +
                               "Procedure: " + sqlex.Errors[i].Procedure + "\n");

                    switch (sqlex.Errors[i].Number)
                    {
                    case -1:     //connection broken
                    case -2:     //timeout
                        throw new DBServerConnectionException(GlobalSetting.ResManager.GetString("DBServerConnectionError"));
                    }
                }
                throw sqlex;
            }
            catch (DbEntityValidationException e)
            {
                _log.Error(e.Message, e);
                throw e;
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);
                throw ex;
            }
        }
Пример #9
0
        /// <summary>
        /// Dar de alta un FunctionalityRole
        /// </summary>
        /// <param name="newFunctionalityRole"></param>
        /// <returns></returns>
        public FunctionalityRole NewFunctionalityRole(FunctionalityRole newFunctionalityRole)
        {
            try
            {
                if (newFunctionalityRole == null)
                {
                    throw new ArgumentNullException("newFunctionalityRole");
                }

                using (var db = new HKSupplyContext())
                {
                    var functionalityRole = db.FunctionalitiesRole
                                            .Where(fr => fr.FunctionalityId.Equals(newFunctionalityRole.FunctionalityId) && fr.RoleId.Equals(newFunctionalityRole.RoleId))
                                            .FirstOrDefault();

                    if (functionalityRole != null)
                    {
                        throw new NewExistingFunctionalityRoleException(GlobalSetting.ResManager.GetString("FunctionalityRoleAlreadyExist"));
                    }

                    db.FunctionalitiesRole.Add(newFunctionalityRole);
                    db.SaveChanges();

                    return(GetFunctionalityRole(newFunctionalityRole.FunctionalityId, newFunctionalityRole.RoleId));
                }
            }
            catch (ArgumentNullException anex)
            {
                _log.Error(anex.Message, anex);
                throw anex;
            }
            catch (NewExistingFunctionalityRoleException nefre)
            {
                _log.Error(nefre.Message, nefre);
                throw nefre;
            }
            catch (SqlException sqlex)
            {
                for (int i = 0; i < sqlex.Errors.Count; i++)
                {
                    _log.Error("Index #" + i + "\n" +
                               "Message: " + sqlex.Errors[i].Message + "\n" +
                               "Error Number: " + sqlex.Errors[i].Number + "\n" +
                               "LineNumber: " + sqlex.Errors[i].LineNumber + "\n" +
                               "Source: " + sqlex.Errors[i].Source + "\n" +
                               "Procedure: " + sqlex.Errors[i].Procedure + "\n");

                    switch (sqlex.Errors[i].Number)
                    {
                    case -1:     //connection broken
                    case -2:     //timeout
                        throw new DBServerConnectionException(GlobalSetting.ResManager.GetString("DBServerConnectionError"));
                    }
                }
                throw sqlex;
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);
                throw ex;
            }
        }
Пример #10
0
        private void InitDBData()
        {
            try
            {
                //Entity Framework

                //***** Role *****//
                using (var db = new HKSupplyContext())
                {
                    var roleAdmin = new Role
                    {
                        RoleId      = "ADMIN",
                        Description = "Application Administrator",
                        Enabled     = true,
                        Remarks     = null
                    };

                    var roleOperator = new Role
                    {
                        RoleId      = "OPERATOR",
                        Description = "Operator",
                        Enabled     = true,
                        Remarks     = null
                    };

                    db.Roles.Add(roleAdmin);
                    db.Roles.Add(roleOperator);
                    db.SaveChanges();

                    //var query = from b in db.Roles
                    //            orderby b.RoleId
                    //            select b;
                    //foreach (var item in query)
                    //{
                    //    MessageBox.Show(item.Description);
                    //}

                    //*****users *****//

                    var userAdmin = new User
                    {
                        UserLogin  = "******",
                        Name       = "Administrator",
                        Password   = PasswordHelper.GetHash("adminpwd"),
                        UserRole   = roleAdmin,
                        Enabled    = true,
                        LastLogin  = null,
                        LastLogout = null,
                        Remarks    = null
                    };

                    var userMario = new User
                    {
                        UserLogin  = "******",
                        Name       = "Mario Ruz Martínez",
                        Password   = PasswordHelper.GetHash("mariopwd"),
                        UserRole   = roleAdmin,
                        Enabled    = true,
                        LastLogin  = null,
                        LastLogout = null,
                        Remarks    = null
                    };

                    var userOp1 = new User
                    {
                        UserLogin  = "******",
                        Name       = "Operator 1",
                        Password   = PasswordHelper.GetHash("op1pwd"),
                        UserRole   = roleOperator,
                        Enabled    = true,
                        LastLogin  = null,
                        LastLogout = null,
                        Remarks    = null
                    };

                    db.Users.Add(userAdmin);
                    db.Users.Add(userMario);
                    db.Users.Add(userOp1);

                    db.SaveChanges();

                    //var queryUser = from u in db.Users
                    //                orderby u.UserLogin
                    //                select u;

                    //foreach (var item in queryUser)
                    //{
                    //    MessageBox.Show(item.UserLogin);
                    //}

                    //***** Functionalities *****//

                    var funcUM = new Functionality
                    {
                        FunctionalityName = "UserManagement",
                        Category          = "Masters",
                        FormName          = "frmUserManagement"
                    };

                    var funcRM = new Functionality
                    {
                        FunctionalityName = "RoleManagement",
                        Category          = "Masters",
                        FormName          = "frmRoleManagement"
                    };

                    var funcFM = new Functionality
                    {
                        FunctionalityName = "FunctionalityManagement",
                        Category          = "Masters",
                        FormName          = "frmFunctionalityManagement"
                    };

                    var funcMMA = new Functionality
                    {
                        FunctionalityName = "MaterialsManagement",
                        Category          = "Masters",
                        FormName          = "frmMaterialsManagement"
                    };


                    db.Functionalities.Add(funcUM);
                    db.Functionalities.Add(funcRM);
                    db.Functionalities.Add(funcFM);
                    db.Functionalities.Add(funcMMA);
                    db.SaveChanges();

                    //var queryFunc = from f in db.Functionalities
                    //                orderby f.FunctionalityName
                    //                select f;

                    //foreach (var item in queryFunc)
                    //{
                    //    MessageBox.Show(item.FunctionalityName);
                    //}

                    //***** Functionalities Role *****//
                    var adminRole = db.Roles.FirstOrDefault(r => r.RoleId.Equals("ADMIN"));
                    var opRole    = db.Roles.FirstOrDefault(r => r.RoleId.Equals("OPERATOR"));

                    var funcUserManagement          = db.Functionalities.FirstOrDefault(f => f.FunctionalityName.Equals("UserManagement"));
                    var funcRoleManagement          = db.Functionalities.FirstOrDefault(f => f.FunctionalityName.Equals("RoleManagement"));
                    var funcFunctionalityManagement = db.Functionalities.FirstOrDefault(f => f.FunctionalityName.Equals("FunctionalityManagement"));
                    var funcMaterialsManagement     = db.Functionalities.FirstOrDefault(f => f.FunctionalityName.Equals("MaterialsManagement"));

                    var fr1 = new FunctionalityRole
                    {
                        RoleId          = adminRole.RoleId,
                        FunctionalityId = funcUserManagement.FunctionalityId,
                        Read            = true,
                        New             = true,
                        Modify          = true,
                    };

                    var fr2 = new FunctionalityRole
                    {
                        RoleId          = adminRole.RoleId,
                        FunctionalityId = funcRoleManagement.FunctionalityId,
                        Read            = true,
                        New             = true,
                        Modify          = true,
                    };

                    var fr3 = new FunctionalityRole
                    {
                        RoleId          = adminRole.RoleId,
                        FunctionalityId = funcFunctionalityManagement.FunctionalityId,
                        Read            = true,
                        New             = true,
                        Modify          = true,
                    };

                    var fr4 = new FunctionalityRole
                    {
                        RoleId          = adminRole.RoleId,
                        FunctionalityId = funcMaterialsManagement.FunctionalityId,
                        Read            = true,
                        New             = true,
                        Modify          = true,
                    };

                    var fr5 = new FunctionalityRole
                    {
                        RoleId          = opRole.RoleId,
                        FunctionalityId = funcMaterialsManagement.FunctionalityId,
                        Read            = true,
                        New             = false,
                        Modify          = false,
                    };

                    db.FunctionalitiesRole.Add(fr1);
                    db.FunctionalitiesRole.Add(fr2);
                    db.FunctionalitiesRole.Add(fr3);
                    db.FunctionalitiesRole.Add(fr4);
                    db.FunctionalitiesRole.Add(fr5);
                    db.SaveChanges();
                }
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }