示例#1
0
        protected async System.Threading.Tasks.Task GetUsers(string name, string deptname)
        {
            List <UserDepartmentRole> reservationList = new List <UserDepartmentRole>();
            HttpClient client = new HttpClient();
            string     url    = "https://localhost:44334/api/Users/GetUsers";

            var udr = new UserDepartmentRole();

            //dept.Department_ID = 3;
            udr.User_Name       = txtname.Text.Trim();
            udr.Department_Name = ddlDept.SelectedItem.ToString();

            var json = JsonConvert.SerializeObject(udr);
            var data = new StringContent(json, Encoding.UTF8, "application/json");

            var response = client.PostAsync(url, data).Result;

            string result = response.Content.ReadAsStringAsync().Result;

            reservationList = JsonConvert.DeserializeObject <List <UserDepartmentRole> >(result);

            //Console.WriteLine(reservationList);
            GridView1.DataSource = reservationList;
            GridView1.DataBind();
        }
示例#2
0
        protected async System.Threading.Tasks.Task GetUserInfoByName()
        {
            List <UserDepartmentRole> reservationList = new List <UserDepartmentRole>();
            HttpClient client = new HttpClient();
            string     url    = "https://localhost:44334/api/Users/GetUserInfoByName";

            var udr = new UserDepartmentRole();

            udr.User_Name = txtusername.Text.Trim();

            var json     = JsonConvert.SerializeObject(udr);
            var data     = new StringContent(json, Encoding.UTF8, "application/json");
            var response = client.PostAsync(url, data).Result;

            string result = response.Content.ReadAsStringAsync().Result;

            reservationList = JsonConvert.DeserializeObject <List <UserDepartmentRole> >(result);

            DataCommon.LoginUserID   = Convert.ToInt64(reservationList[0].User_ID);
            DataCommon.LoginDeptID   = Convert.ToInt64(reservationList[0].Department_ID);
            DataCommon.LoginRoleID   = Convert.ToInt64(reservationList[0].Role_ID);
            DataCommon.LoginDeptName = reservationList[0].Department_Name.ToString();
            DataCommon.LoginRoleType = reservationList[0].Role_Type.ToString();

            Session["User_ID"] = DataCommon.LoginUserID;
        }
示例#3
0
        public async Task <bool> UserIsCheckerOnDepartment(Guid departmentId)
        {
            if (Guid.TryParse(_userManager.GetUserId(_signInManager.Context.User), out Guid userId))
            {
                UserDepartmentRole currentUserWithCheckerRole = await db.UserRoleDepartment
                                                                .FirstOrDefaultAsync(urd => urd.UserId == userId && urd.DepartmentId == departmentId && urd.Role.Name == "Checker");

                return(currentUserWithCheckerRole != null);
            }
            else
            {
                return(false);
            }
        }
示例#4
0
        public async Task <bool> UserIsAdminOnDepartment(Guid departmentId)
        {
            if (Guid.TryParse(_userManager.GetUserId(_signInManager.Context.User), out Guid userId))
            {
                UserDepartmentRole currentUserWithAdminRoleOnDepartment = await db.UserRoleDepartment
                                                                          .FirstOrDefaultAsync(urd => urd.UserId.Equals(userId) &&
                                                                                               urd.Role.Name == "Admin" &&
                                                                                               urd.DepartmentId == departmentId);

                return(currentUserWithAdminRoleOnDepartment != null);
            }
            else
            {
                return(false);
            }
        }
        public async Task <IActionResult> GetUser(UserDepartmentRole udr)
        {
            try
            {
                var user = await postRepository.GetUsers(udr.User_Name, udr.Department_Name);

                if (user == null)
                {
                    return(NotFound());
                }
                return(Ok(user));
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }
示例#6
0
        public async Task <IActionResult> OnPostUpdateRolesAsync(string userId, string departmentId, List <string> roles)
        {
            try
            {
                if (await _getAccountDataService.UserIsAdminOnAnyDepartment() || _getAccountDataService.IsSystemAdmin())
                {
                    if (ModelState.IsValid)
                    {
                        // получаем пользователя
                        User user = await _userManager.FindByIdAsync(userId);

                        if (user != null)
                        {
                            // получем список ролей пользователя
                            var UserDepartmentRoles = await db.UserRoleDepartment
                                                      .Where(urd => urd.UserId.Equals(Guid.Parse(userId)) && urd.DepartmentId.ToString() == departmentId)
                                                      .Select(urd => urd.Role.Id.ToString().ToLower())
                                                      .ToListAsync();

                            // получаем список ролей, которые были добавлены
                            var addedRoles = roles.Except(UserDepartmentRoles);

                            var allRoles = db.Role
                                           .Select(r => r.Id.ToString().ToLower())
                                           .ToList();

                            // получаем роли, которые были удалены
                            var removedRoles = UserDepartmentRoles.Except(roles);

                            foreach (var role in addedRoles)
                            {
                                if (role != null)
                                {
                                    db.UserRoleDepartment.Add(new UserDepartmentRole()
                                    {
                                        UserId       = Guid.Parse(userId),
                                        DepartmentId = Guid.Parse(departmentId),
                                        RoleId       = Guid.Parse(role)
                                    });
                                }
                            }

                            foreach (var role in removedRoles)
                            {
                                if (role != null)
                                {
                                    UserDepartmentRole removingRecord = await db.UserRoleDepartment
                                                                        .FirstOrDefaultAsync(urd => urd.RoleId.Equals(Guid.Parse(role)) &&
                                                                                             urd.UserId.Equals(Guid.Parse(userId)) &&
                                                                                             urd.DepartmentId.Equals(Guid.Parse(departmentId)));

                                    db.UserRoleDepartment.Remove(removingRecord);
                                }
                            }

                            await db.SaveChangesAsync();

                            return(RedirectToPage("UserDepartmentList"));
                        }
                        else
                        {
                            return(NotFound());
                        }
                    }
                    else
                    {
                        return(Page());
                    }
                }
                else
                {
                    return(NotFound());
                }
            }
            catch (Exception e)
            {
                _logger.LogError(e, "Error while saving Department Data for this User");
                return(NotFound());
            }
        }