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())); } }
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)); } }
public async Task <int> GetUnassignedCountAsync(GetUnessignedProjectsFilter filter) { using (var db = new DeadlineContext()) { return(await GetUnassignedAsyncQuery(db, filter).CountAsync()); } }
public async Task <int> GetMyCountAsync(GetMyProjectsFilter filter) { using (var db = new DeadlineContext()) { return(await GetMyProjectsQuery(db, filter).CountAsync()); } }
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))); }
public async Task <int> GetUnemployedCountAsync(GetUnemployedFilter filter) { using (var db = new DeadlineContext()) { return(await GetUnemployedQuery(db, filter).CountAsync()); } }
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)); }
public static void AddData() { using (var db = new DeadlineContext()) { //AddEmployees(db); //AddProjects(db); } }
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()); } }
public async Task <List <ProjectsRequirements> > GetAsync(int projectId) { using (var db = new DeadlineContext()) { return(await db.ProjectsRequirements .Where(projectRequrement => projectRequrement.ProjectId == projectId) .ToListAsync()); } }
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); } }
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()); } }
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)); } }
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()); } }
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()); } }
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()); } }
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(); } }
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); } }
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); } }
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(); }
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(); }
private static IQueryable <Projects> GetMyProjectsQuery(DeadlineContext db, GetMyProjectsFilter filter) { return(db.Projects .Where(project => project.CompanyId.HasValue && project.CompanyId.Value == filter.CompanyId)); }