public IActionResult AllEmployees(int page = 1)
        {
            int zeroIndexedPage = page;
            int start           = (zeroIndexedPage - 1) * 6;

            //get all employees from AspNetUsers table and include their departments
            var allEmployees = _userManager.Users
                               .Include(e => e.Department)
                               .Skip(start)
                               .Take(6)
                               .Select(e => new ReturnedUserDTO
            {
                FirstName  = e.FirstName,
                LastName   = e.LastName,
                Email      = e.Email,
                Photo      = e.Photo,
                Department = e.Department.DepartmentName
            }).ToList();

            var result = new PaginatedReturnedUsersDTO
            {
                CurrentPage   = $"Page {page}",
                ReturnedUsers = allEmployees,
            };

            return(Ok(result));
        }
Exemplo n.º 2
0
        //method for making GET request
        async static Task <PaginatedReturnedUsersDTO> GetUserRequest(string url)
        {
            //create HttpClient instance
            HttpClient          client   = new HttpClient();
            HttpResponseMessage response = await client.GetAsync(url);

            var content = await response.Content.ReadAsStringAsync();

            //deserialize string to get page object
            PaginatedReturnedUsersDTO page = JsonConvert.DeserializeObject <PaginatedReturnedUsersDTO>(content);

            return(page);
        }
Exemplo n.º 3
0
        //method to make GET requests and save author objects to author repository list
        private static async Task <ICollection <ReturnedUserDTO> > CreateUsersList(ICollection <ReturnedUserDTO> returnedUsers, int numberOfUsers, int pages)
        {
            int numberOfPages = (numberOfUsers / 6) + 1;

            if (pages <= numberOfPages && pages > 0)
            {
                Task <PaginatedReturnedUsersDTO> page    = GetUserRequest("https://localhost:44361/employee/allemployees?page=" + pages);
                PaginatedReturnedUsersDTO        apiPage = await page;

                foreach (var user in apiPage.ReturnedUsers)
                {
                    returnedUsers.Add(user);
                }
            }
            return(returnedUsers);
        }
Exemplo n.º 4
0
        //method to make GET requests and save author objects to author repository list
        private static async Task <ICollection <ChartVIewModel> > CreateAllUsersList(ICollection <ChartVIewModel> allUsers, int numberOfUsers, UserManager <Employee> userManager)
        {
            int numberOfPages = (numberOfUsers / 6) + 1;
            int i             = 1;

            while (i <= numberOfPages)
            {
                Task <PaginatedReturnedUsersDTO> page    = GetUserRequest("https://localhost:44361/employee/allemployees?page=" + i);
                PaginatedReturnedUsersDTO        apiPage = await page;

                foreach (var returnedUser in apiPage.ReturnedUsers)
                {
                    string role  = "";
                    var    email = returnedUser.Email;
                    var    user  = await userManager.FindByEmailAsync(email);

                    var isAdmin = await userManager.IsInRoleAsync(user, "Admin");

                    if (isAdmin)
                    {
                        role = "Admin";
                    }
                    else
                    {
                        role = "User";
                    }
                    var model = new ChartVIewModel
                    {
                        FirstName  = returnedUser.FirstName,
                        LastName   = returnedUser.LastName,
                        Email      = returnedUser.Email,
                        Photo      = returnedUser.Photo,
                        Department = returnedUser.Department,
                        Role       = role
                    };
                    allUsers.Add(model);
                }
                i++;
            }
            return(allUsers);
        }