Example #1
0
        /// <summary>
        /// Save Or Update Role Privileges
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public BaseResponse SaveRolePrivilege(SaveRolePrivilegeRequest request)
        {
            var response = new BaseResponse();

            try
            {
                var privilege = request.MapTo <RolePrivilege>();
                var user      = DataContext.Users.Find(request.UserId);
                if (request.Id > 0)
                {
                    //Update Mode
                    privilege.UpdatedBy   = user;
                    privilege.UpdatedDate = DateTime.Now;
                    DataContext.Entry(privilege).State = EntityState.Modified;
                }
                else
                {
                    //Insert mode
                    privilege.CreatedBy   = user;
                    privilege.CreatedDate = DateTime.Now;
                    DataContext.RolePrivileges.Add(privilege);
                }
                DataContext.SaveChanges();
                response.IsSuccess = true;
                response.Message   = "Privilege Successfully Saved";
            }
            catch (DbUpdateException upd)
            {
                response.IsSuccess = false;
                response.Message   = upd.Message;
            }
            catch (InvalidOperationException inv)
            {
                response.IsSuccess = false;
                response.Message   = inv.Message;
            }

            return(response);
        }
        /// <summary>
        /// Save Or Update Role Privileges
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SaveRolePrivilegeResponse SaveRolePrivilege(SaveRolePrivilegeRequest request)
        {
            var response    = new SaveRolePrivilegeResponse();
            var baseRequest = request.MapTo <BaseAction>();

            try
            {
                var privilege = request.MapTo <RolePrivilege>();
                var user      = DataContext.Users.Find(request.UserId);
                if (request.Id > 0)
                {
                    //Update Mode
                    privilege.UpdatedBy   = user;
                    privilege.UpdatedDate = DateTime.Now;
                    DataContext.Entry(privilege).State = EntityState.Modified;
                }
                else
                {
                    //Insert mode
                    privilege.CreatedBy   = user;
                    privilege.CreatedDate = DateTime.Now;
                    DataContext.RolePrivileges.Add(privilege);
                }
                DataContext.SaveChanges();
                //DataContext.SaveChanges(baseRequest);
                //try to batch update
                if (request.MenuRolePrivileges.Count > 0)
                {
                    foreach (var menuRole in request.MenuRolePrivileges)
                    {
                        menuRole.RolePrivilege_Id = privilege.Id;

                        var existing = DataContext.MenuRolePrivileges.FirstOrDefault(x => x.Menu_Id == menuRole.Menu_Id && x.RolePrivilege_Id == privilege.Id);
                        if (existing != null)
                        {
                            existing.AllowApprove             = menuRole.AllowApprove;
                            existing.AllowCreate              = menuRole.AllowCreate;
                            existing.AllowDelete              = menuRole.AllowDelete;
                            existing.AllowDownload            = menuRole.AllowDownload;
                            existing.AllowPublish             = menuRole.AllowPublish;
                            existing.AllowUpdate              = menuRole.AllowUpdate;
                            existing.AllowUpload              = menuRole.AllowUpload;
                            existing.AllowView                = menuRole.AllowView;
                            existing.AllowInput               = menuRole.AllowInput;
                            DataContext.Entry(existing).State = EntityState.Modified;
                        }
                        else
                        {
                            var menuPrivilege = menuRole.MapTo <MenuRolePrivilege>();
                            DataContext.MenuRolePrivileges.Add(menuPrivilege);
                        }
                    }
                    //DataContext.SaveChanges(baseRequest);
                    DataContext.SaveChanges();
                }
                response.IsSuccess = true;
                response.Id        = privilege.Id;
                response.Message   = "Privilege Successfully Saved";
            }
            catch (DbUpdateException upd)
            {
                response.IsSuccess = false;
                response.Message   = upd.Message;
            }
            catch (InvalidOperationException inv)
            {
                response.IsSuccess = false;
                response.Message   = inv.Message;
            }

            return(response);
        }