示例#1
0
 private static IQueryable <Employees> GetMyEmployeesQuery(DeadlineContext db, int companyId,
                                                           GetMyEmployeesFilter filter)
 {
     return(db.Employees.Where(employee =>
                               employee.CompanyId.HasValue && employee.CompanyId.Value == companyId &&
                               employee.ProjectId.HasValue == filter.Assigned));
 }
 public async Task <Companies> GetAsync(Guid userId)
 {
     using (var db = new DeadlineContext())
     {
         return(await db.Companies.SingleOrDefaultAsync(company => company.AspNetUsers.Id == userId.ToString()));
     }
 }
示例#3
0
 public async Task <int> GetMyCountAsync(int companyId, GetMyEmployeesFilter filter)
 {
     using (var db = new DeadlineContext())
     {
         return(await GetMyEmployeesQuery(db, companyId, filter).CountAsync());
     }
 }
 public async Task <Companies> GetAsync(string email)
 {
     using (var db = new DeadlineContext())
     {
         return(await db.Companies.SingleOrDefaultAsync(company => company.AspNetUsers.Email == email));
     }
 }
示例#5
0
 public async Task <int> GetUnassignedCountAsync(GetUnessignedProjectsFilter filter)
 {
     using (var db = new DeadlineContext())
     {
         return(await GetUnassignedAsyncQuery(db, filter).CountAsync());
     }
 }
示例#6
0
 public async Task <int> GetMyCountAsync(GetMyProjectsFilter filter)
 {
     using (var db = new DeadlineContext())
     {
         return(await GetMyProjectsQuery(db, filter).CountAsync());
     }
 }
示例#7
0
 private static IQueryable <Employees> GetUnemployedQuery(DeadlineContext db, GetUnemployedFilter filter)
 {
     return(db.Employees.Where(employee =>
                               employee.CompanyId == null &&
                               filter.ExperienceIds.Contains(employee.ExperienceId) &&
                               filter.TypesIds.Contains(employee.TypeId)));
 }
示例#8
0
 public async Task <int> GetUnemployedCountAsync(GetUnemployedFilter filter)
 {
     using (var db = new DeadlineContext())
     {
         return(await GetUnemployedQuery(db, filter).CountAsync());
     }
 }
示例#9
0
 private static IQueryable <Projects> GetUnassignedAsyncQuery(DeadlineContext db,
                                                              GetUnessignedProjectsFilter filter)
 {
     return(db.Projects.Where(project =>
                              project.CompanyId == null &&
                              filter.RoundsToFinish.From <= project.RoundsToFinish &&
                              project.RoundsToFinish <= filter.RoundsToFinish.To));
 }
示例#10
0
 public static void AddData()
 {
     using (var db = new DeadlineContext())
     {
         //AddEmployees(db);
         //AddProjects(db);
     }
 }
示例#11
0
 public async Task <IEnumerable <Projects> > GetMyAsync(int companyId)
 {
     using (var db = new DeadlineContext())
     {
         return(await db.Projects
                .Where(project => project.CompanyId.HasValue && project.CompanyId.Value == companyId)
                .ToListAsync());
     }
 }
示例#12
0
 public async Task <List <ProjectsRequirements> > GetAsync(int projectId)
 {
     using (var db = new DeadlineContext())
     {
         return(await db.ProjectsRequirements
                .Where(projectRequrement => projectRequrement.ProjectId == projectId)
                .ToListAsync());
     }
 }
示例#13
0
        public async Task <string> GetIdAsync(string email)
        {
            using (var db = new DeadlineContext())
            {
                var aspNetUser = await db.AspNetUsers.SingleOrDefaultAsync(dbUser => dbUser.Email == email);

                return(aspNetUser.Id);
            }
        }
示例#14
0
 public async Task <IEnumerable <Employees> > GetMyAsync(int companyId, GetMyEmployeesFilter filter)
 {
     using (var db = new DeadlineContext())
     {
         return(await GetMyEmployeesQuery(db, companyId, filter)
                .Include(employee => employee.Projects)
                .ToListAsync());
     }
 }
示例#15
0
 public async Task <int> GetMyAmountAsync(int companyId)
 {
     using (var db = new DeadlineContext())
     {
         return(await db.Employees
                .CountAsync(employee =>
                            employee.CompanyId.HasValue &&
                            employee.CompanyId.Value == companyId));
     }
 }
示例#16
0
 public async Task <IEnumerable <Projects> > GetMyAsync(GetMyProjectsFilter filter)
 {
     using (var db = new DeadlineContext())
     {
         return(await GetMyProjectsQuery(db, filter)
                .OrderBy(project => project.Id)
                .Skip(filter.PageSize * (filter.PageNumber - 1))
                .Take(filter.PageSize)
                .ToListAsync());
     }
 }
示例#17
0
 public async Task <IEnumerable <Employees> > GetAssignedToProjectAsync(int projectId)
 {
     using (var db = new DeadlineContext())
     {
         return(await db.Employees
                .Where(employee =>
                       employee.ProjectId.HasValue &&
                       employee.ProjectId.Value == projectId)
                .ToListAsync());
     }
 }
示例#18
0
 public async Task <IEnumerable <Employees> > GetUnemployedAsync(GetUnemployedFilter filter)
 {
     using (var db = new DeadlineContext())
     {
         return(await GetUnemployedQuery(db, filter)
                .OrderBy(employee => employee.Id)
                .Skip(filter.PageSize * (filter.PageNumber - 1))
                .Take(filter.PageSize)
                .ToListAsync());
     }
 }
示例#19
0
 public async Task AddAsync(Companies model)
 {
     using (var db = new DeadlineContext())
     {
         db.Companies.Add(new Companies
         {
             AspNetUserId = model.AspNetUserId,
             LogoUrl      = model.LogoUrl,
             Name         = model.Name
         });
         await db.SaveChangesAsync();
     }
 }
示例#20
0
        public async Task <bool> AssignAsync(int companyId, int employeeId, int projectId)
        {
            using (var db = new DeadlineContext())
            {
                Employees dbEmployee = await db.Employees.SingleOrDefaultAsync(employee => employee.Id == employeeId);

                if (dbEmployee?.CompanyId != companyId)
                {
                    return(false);
                }
                dbEmployee.ProjectId = projectId;
                await db.SaveChangesAsync();

                return(true);
            }
        }
示例#21
0
        public async Task <bool> TurnDownAsync(int companyId, int projectId)
        {
            using (var db = new DeadlineContext())
            {
                Projects dbProject = await db.Projects.SingleOrDefaultAsync(project => project.Id == projectId);

                if (dbProject?.CompanyId == null || dbProject.CompanyId.Value != companyId)
                {
                    return(false);
                }

                dbProject.CompanyId = null;
                await db.SaveChangesAsync();

                return(true);
            }
        }
示例#22
0
        private static void AddEmployees(DeadlineContext db)
        {
            var employees = new List <Employees>();
            var rand      = new Random();

            foreach (string name in Names)
            {
                int experienceId = rand.Next(1, 5);
                employees.Add(new Employees
                {
                    Name         = name,
                    ExperienceId = experienceId,
                    TypeId       = rand.Next(1, 4),
                    Salary       = experienceId * rand.Next(100, 201)
                });
            }
            db.Employees.AddRange(employees);
            db.SaveChanges();
        }
示例#23
0
        private static void AddProjects(DeadlineContext db)
        {
            var projects = new List <Projects>();
            var rand     = new Random();

            for (int i = 0; i < 100; i++)
            {
                var employeeTypeIds = new List <int> {
                    1, 2, 3
                };

                int rounds = rand.Next(10, 100);
                projects.Add(new Projects
                {
                    Name                 = $"Test Name{i}",
                    Description          = ProjectDesciption,
                    Rounds               = rounds,
                    RoundsToFinish       = rounds,
                    ProjectsRequirements = new List <ProjectsRequirements>
                    {
                        new ProjectsRequirements
                        {
                            EmployeeTypeId  = employeeTypeIds.Pop(rand.Next(0, 3)),
                            EmployeesNumber = rand.Next(1, 10)
                        },
                        new ProjectsRequirements
                        {
                            EmployeeTypeId  = employeeTypeIds.Pop(rand.Next(0, 2)),
                            EmployeesNumber = rand.Next(1, 10)
                        }
                    }
                });
            }
            db.Projects.AddRange(projects);
            db.SaveChanges();
        }
示例#24
0
 private static IQueryable <Projects> GetMyProjectsQuery(DeadlineContext db, GetMyProjectsFilter filter)
 {
     return(db.Projects
            .Where(project => project.CompanyId.HasValue && project.CompanyId.Value == filter.CompanyId));
 }