Exemple #1
0
        public ActionResult _DepartmentUserDetail(int DepartmentUserId)
        {
            try
            {
                ViewBag.Error        = "";
                ViewBag.SessionError = "";
                var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData();
                if (userData.UserId < 1)
                {
                    ViewBag.SessionError = "Your session has expired! Please re-login";
                    return(View(new DepartmentUserObj()));
                }

                if (DepartmentUserId < 1)
                {
                    ViewBag.Error = "Invalid selection";
                    return(View(new DepartmentUserObj()));
                }

                if (!(Session["_DepartmentUserList_"] is List <DepartmentUserObj> DepartmentUsers) || DepartmentUsers.Count < 1)
                {
                    ViewBag.Error = "Error Occurred! Unable to process selected item";
                    return(View(new DepartmentUserObj()));
                }

                var thisDepartmentUser = DepartmentUsers.Find(m => m.DepartmentUserId == DepartmentUserId);
                if (thisDepartmentUser == null || thisDepartmentUser.DepartmentUserId < 1)
                {
                    ViewBag.Error = "Error Occurred! Unable to process selected item";
                    return(View(new DepartmentUserObj()));
                }

                return(View(thisDepartmentUser));
            }
            catch (Exception ex)
            {
                ViewBag.Error = "Error Occurred! Please try again later";
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(View(new DepartmentUserObj()));
            }
        }
        public async Task <List <User> > GetUsersAsync(string deptName)
        {
            List <User> data = await DepartmentUsers.GetUsersAsync(deptName);

            return(await Task.FromResult(data));
        }
        public async Task <int> AddUser(UserVM user)
        {
            if (_context != null)
            {
                if (user.User_ID == 0)
                {
                    /// this code for insert user, user role & departments.

                    User userObj = new User();
                    userObj.User_Name    = user.User_Name;
                    userObj.Email        = user.Email;
                    userObj.Phone_Number = user.Phone_Number;
                    userObj.First_Name   = user.First_Name;
                    userObj.Last_Name    = user.Last_Name;
                    userObj.Is_Active    = true;
                    _context.User.Add(userObj);
                    await _context.SaveChangesAsync();

                    user.User_ID = userObj.User_ID;

                    UserRole userRole = new UserRole();
                    userRole.User_ID   = userObj.User_ID;
                    userRole.Role_ID   = user.Role_ID;
                    userRole.Is_Active = true;

                    _context.UserRole.Add(userRole);
                    await _context.SaveChangesAsync();

                    List <DepartmentUsers> deptUserList = new List <DepartmentUsers>();

                    foreach (var deptIdStr in user.DepartmentIds.Split(","))
                    {
                        DepartmentUsers departmentUser = new DepartmentUsers();
                        departmentUser.User_ID       = userObj.User_ID;
                        departmentUser.Department_ID = Convert.ToInt32(deptIdStr);
                        departmentUser.Is_Active     = true;
                        deptUserList.Add(departmentUser);
                    }
                    _context.DepartmentUsers.AddRange(deptUserList);
                    await _context.SaveChangesAsync();
                }
                else
                {
                    var userObj = _context.User.Find(user.User_ID);
                    ///this code for delete user.

                    if (user.Is_Active == false)
                    {
                        userObj.Is_Active = false;
                        await _context.SaveChangesAsync();
                    }
                    /// this code for update user details
                    else
                    {
                        userObj.User_Name    = user.User_Name;
                        userObj.Email        = user.Email;
                        userObj.Phone_Number = user.Phone_Number;
                        userObj.First_Name   = user.First_Name;
                        userObj.Last_Name    = user.Last_Name;
                        userObj.Is_Active    = true;
                        await _context.SaveChangesAsync();

                        UserRole userRole = _context.UserRole.Find(user.User_Role_ID);
                        userRole.User_ID   = userObj.User_ID;
                        userRole.Role_ID   = user.Role_ID;
                        userRole.Is_Active = true;
                        await _context.SaveChangesAsync();

                        var existingList = _context.DepartmentUsers.Where(x => x.User_ID == user.User_ID).ToList();
                        foreach (var eItem in existingList)
                        {
                            if (user.DepartmentIds.IndexOf(eItem.Department_ID.ToString()) == -1)
                            {
                                eItem.Is_Active = false;
                            }
                        }
                        await _context.SaveChangesAsync();

                        foreach (var deptIdStr in user.DepartmentIds.Split(','))
                        {
                            int deptId   = Convert.ToInt32(deptIdStr);
                            var deptItem = _context.DepartmentUsers.Where(x => x.Department_ID == deptId && x.User_ID == user.User_ID).FirstOrDefault();

                            if (deptItem == null)
                            {
                                DepartmentUsers department = new DepartmentUsers();
                                department.Department_ID = deptId;
                                department.User_ID       = user.User_ID;
                                department.Is_Active     = true;
                                _context.DepartmentUsers.Add(department);
                                await _context.SaveChangesAsync();
                            }
                            else
                            {
                                deptItem.Is_Active = true;
                                await _context.SaveChangesAsync();
                            }
                        }
                    }
                    return(user.User_ID);
                }
            }
            return(user.User_ID);
        }
        public ResponseDto <Users> Save([FromBody] Users request)
        {
            ResponseDto <Users> response = new ResponseDto <Users>();

            var _entity = _appSystemServices.GetEntitys <Users>();

            request.CompanyId = CurrentUser.CompanyId;
            if (string.IsNullOrEmpty(request.Id.ToStringExtension()) || request.Id.ToInt32() == 0)
            {
                var userId = _appSystemServices.Create <Users>(request);

                if (string.IsNullOrEmpty(request.Password))
                {
                    request.Id       = userId;
                    request.Password = ("123456".ToMD5() + userId.ToStringExtension()).ToMD5();
                    request.SetModifyDefault(this.CurrentUser);
                    _appSystemServices.Modify <Users>(request);
                }


                // 加入单位用户
                // 加入单位用户
                CompanyUsers companyUsers = new CompanyUsers()
                {
                    UserId    = userId,
                    JobStatus = JobStatus.Audit,
                    CompanyId = CurrentUser.CompanyId
                };
                companyUsers.SetCreateDefault(this.CurrentUser);
                _appSystemServices.Create <CompanyUsers>(companyUsers);

                if (!request.DepartmentId.IsNull() && request.DepartmentId.Count > 0)
                {
                    List <DepartmentUsers> departmentUsers = new List <DepartmentUsers>();
                    request.DepartmentId.ForEach(p => {
                        var departuser = new DepartmentUsers()
                        {
                            CompanyId = CurrentUser.CompanyId, DepartmentId = p, UserId = userId
                        };
                        departuser.SetCreateDefault(this.CurrentUser);
                        departmentUsers.Add(departuser);
                    });
                    _appSystemServices.Create <DepartmentUsers>(departmentUsers.ToArray());
                }
                if (!request.RoleId.IsNull() && request.RoleId.Count > 0)
                {
                    List <RoleUsers> roleUsers = new List <RoleUsers>();
                    request.RoleId.ForEach(p =>
                    {
                        var roleuser = new RoleUsers()
                        {
                            CompanyId = CurrentUser.CompanyId, RoleId = p, UserId = userId
                        };
                        roleuser.SetCreateDefault(this.CurrentUser);
                        roleUsers.Add(roleuser);
                        _appSystemServices.Create <RoleUsers>(roleUsers.ToArray());
                    });
                }
            }
            else
            {
                _appSystemServices.Modify <Users>(request);

                if (!request.DepartmentId.IsNull())
                {
                    _appSystemServices.GetEntitys <DepartmentUsers>().Where(x => x.UserId == request.Id && x.CompanyId == CurrentUser.CompanyId).ToDelete().ExecuteAffrows();
                    _appSystemServices.GetEntitys <RoleUsers>().Where(x => x.UserId == request.Id && x.CompanyId == CurrentUser.CompanyId).ToDelete().ExecuteAffrows();

                    if (!request.DepartmentId.IsNull() && request.DepartmentId.Count > 0)
                    {
                        List <DepartmentUsers> departmentUsers = new List <DepartmentUsers>();
                        request.DepartmentId.ForEach(p => {
                            var departuser = new DepartmentUsers()
                            {
                                CompanyId = CurrentUser.CompanyId, DepartmentId = p, UserId = request.Id
                            };
                            departuser.SetCreateDefault(this.CurrentUser);
                            departmentUsers.Add(departuser);
                        });
                        _appSystemServices.Create <DepartmentUsers>(departmentUsers.ToArray());
                    }

                    if (!request.RoleId.IsNull() && request.RoleId.Count > 0)
                    {
                        List <RoleUsers> roleUsers = new List <RoleUsers>();
                        request.RoleId.ForEach(p =>
                        {
                            var roleuser = new RoleUsers()
                            {
                                CompanyId = CurrentUser.CompanyId, RoleId = p, UserId = request.Id
                            };
                            roleuser.SetCreateDefault(this.CurrentUser);
                            roleUsers.Add(roleuser);
                            _appSystemServices.Create <RoleUsers>(roleUsers.ToArray());
                        });
                    }
                }
            }
            return(response);
        }