public async Task <IEnumerable <UserViewModelDTO> > GetAllUsersAsync()
        {
            var result1 = from Aspnetusers in _appDbContext.Aspnetusers
                          join Aspnetuserroles in _appDbContext.Aspnetuserroles
                          on Aspnetusers.Id equals Aspnetuserroles.UserId
                          join Aspnetroles in _appDbContext.Aspnetroles
                          on Aspnetuserroles.RoleId equals Aspnetroles.Id
                          where Aspnetuserroles.Role.Name != "Admin"
                          select new
            {
                Aspnetusers.Id,
                Aspnetusers.UserName,
                Aspnetroles.Name,
                Aspnetusers.SupervisedBy
            };

            var result2 = await result1.ToListAsync();

            List <UserViewModelDTO> userViewModelDTOs = new List <UserViewModelDTO>();

            for (int i = 0; i < result2.Count(); i++)
            {
                UserViewModelDTO uvmDto = new UserViewModelDTO()
                {
                    Id           = result2.ElementAt(i).Id,
                    Username     = result2.ElementAt(i).UserName,
                    RoleName     = result2.ElementAt(i).Name,
                    SupervisedBy = result2.ElementAt(i).SupervisedBy
                };
                userViewModelDTOs.Add(uvmDto);
            }
            return(userViewModelDTOs);
        }
        public async Task <IEnumerable <UserViewModelDTO> > GetAllSupervisedUsersWithWorkingHours(string supervisorId)
        {
            var query = from u in _appDbContext.Aspnetusers
                        join pi in _appDbContext.Projectinfo
                        on u.Id equals pi.UserId into q1
                        from pi in q1
                        where u.SupervisedBy == supervisorId
                        group new { u } by new { u.Id, u.UserName, u.SupervisedBy } into q
                select new
            {
                Id           = q.Key.Id,
                Username     = q.Key.UserName,
                SupervisedBy = q.Key.SupervisedBy
            };
            var queryResult = await query.ToListAsync();

            List <UserViewModelDTO> modelList = new List <UserViewModelDTO>();

            for (int i = 0; i < queryResult.Count(); i++)
            {
                UserViewModelDTO model = new UserViewModelDTO()
                {
                    Id           = queryResult.ElementAt(i).Id,
                    Username     = queryResult.ElementAt(i).Username,
                    SupervisedBy = queryResult.ElementAt(i).SupervisedBy
                };
                modelList.Add(model);
            }
            return(modelList);
        }