public IEnumerable <EmployeesProject> Generate(int count, IList <Employee> availableEmployees, ICollection <Project> availableProjects) { this.generateCount = count; this.generated = new List <EmployeesProject>(this.generateCount); for (int i = 0; i < this.generateCount; i++) { var projEndDate = this.GetRandomDate(min: new DateTime(2010, 1, 1), max: new DateTime()); var daysToSubtract = this.GetInt(30, 1000); var earliestProjStartDate = projEndDate.AddDays(-daysToSubtract); var projStartDate = this.GetRandomDate(earliestProjStartDate, projEndDate); var newEmpProj = new EmployeesProject() { Employee = this.GetAssignedEmployee(availableEmployees), StartDate = projStartDate, EndDate = projEndDate, Project = this.GetAssignedProject(availableProjects), }; this.generated.Add(newEmpProj); } return(this.generated); }
public override void Generate() { var employeeIds = this.Database.Employees.Select(e => e.EmployeeId).ToList(); var projectIds = this.Database.Projects.Select(p => p.ProjectId).ToList(); Console.WriteLine("EmployeeProject adding started"); for (int i = 0; i < projectIds.Count; i++) { var startingDate = this.RandomGenerator.GetRandomDateTime(new DateTime(1995, 1, 1, 10, 0, 0), new DateTime(2000, 1, 1, 10, 0, 0)); var endingDate = this.RandomGenerator.GetRandomDateTime(new DateTime(2001, 1, 1, 10, 0, 0), new DateTime(2020, 1, 1, 10, 0, 0)); for (int j = 0; j < ((i % 20 > 2) ? i % 20 : i % 20 + 2); j++) { var employeeProject = new EmployeesProject { EmployeeId = employeeIds[this.RandomGenerator.GetRandomNumber(0, employeeIds.Count)], ProjectId = projectIds[i], StartingDate = startingDate, EndingDate = endingDate }; this.Database.EmployeesProjects.Add(employeeProject); } if (i % 100 == 0) { Console.Write("-"); this.Database.SaveChanges(); } } Console.WriteLine("\nEmloyeeProject adding finished"); }
private static void AddProjectsToEmployees() { var employeeIds = db.Employees.Select(e => e.EmployeeID).ToList(); var projectsIds = db.Projects.Select(e => e.ProjectID).ToList(); int numberOfEmployeesForProject = 0; var selectdIds = new HashSet <int>(); EmployeesProject empProject = null; int count = 0; Console.WriteLine("Add Employees projects"); for (int i = 0; i < projectsIds.Count; i++) { numberOfEmployeesForProject = randomDataGenerator.GetRandomNumber(2, 20); selectdIds.Clear(); for (int j = 0; j < numberOfEmployeesForProject; j++) { var employeeID = employeeIds[randomDataGenerator.GetRandomNumber(0, employeeIds.Count - 1)]; if (!selectdIds.Contains(employeeID)) { selectdIds.Add(employeeID); } else { j--; continue; } empProject = new EmployeesProject() { EmployeeID = employeeID, ProjectID = projectsIds[i], StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(randomDataGenerator.GetRandomNumber(1, 300)) }; count++; db.EmployeesProjects.Add(empProject); if (count % 100 == 0) { db.SaveChanges(); Console.Write("."); } } } db.SaveChanges(); }
private void UpdateEmployee(int?employeeID, int?projectID) { var empProjects = new EmployeesProject(); empProjects.EmployeeID = employeeID; empProjects.ProjectID = projectID; var nesto = db.EmployeesProjects.DistinctBy(m => new { m.EmployeeID, m.ProjectID }).ToList(); if (!nesto.Any(x => x.ProjectID == projectID && x.EmployeeID == employeeID)) { db.EmployeesProjects.Add(empProjects); } }
public override void Generate() { var employeeIds = this.Database.Employees.Select(e => e.Id).ToList(); var projectIds = this.Database.Projects.Select(p => p.Id).ToList(); Console.WriteLine("Adding projects to employees..."); int index = 0; while (index <= this.Count) { foreach (var projectid in projectIds) { var randomNumberofemployees = this.Random.GetRandomNumber(2, 20); for (int i = 0; i < randomNumberofemployees; i++) { var employeeid = employeeIds[this.Random.GetRandomNumber(0, employeeIds.Count - 1)]; var isExist = this.Database.EmployeesProjects.Any(ep => ep.ProjectId == projectid && ep.EmployeeId == employeeid); if (isExist) { continue; } var startDate = DateTime.Now.AddDays(this.Random.GetRandomNumber(-10000, 0)); var endDate = startDate.AddDays(this.Random.GetRandomNumber(0, 1000)); var employeesProjects = new EmployeesProject { EmployeeId = employeeid, ProjectId = projectid, StartDate = startDate, EndDate = endDate, }; this.Database.EmployeesProjects.Add(employeesProjects); index++; if (index % 100 == 0) { Console.Write("."); this.Database.SaveChanges(); } } } } Console.WriteLine("\nProjects to employees added..."); }
public override void Generate() { var projectsIds = this.Database.Projects.Select(p => p.Id).ToList(); int index = 0; Console.WriteLine("Adding EmployeesProjects"); foreach (var project in projectsIds) { var employeesIds = this.Database.Employees.Select(e => e.Id).ToList(); var startDate = this.Random.GetRandomDate(); var endDate = startDate.AddDays(this.Random.GetRandomNumber(MinimumEndDayDifference, MaximumEndDayDifference)); var currentCount = this.Random.GetRandomNumber(MinimumEmployeeInProject, MaximumEmployeeInProject); var exists = new int[employeesIds.Count + 1]; for (int i = 0; i < currentCount; i++) { var currentEmployeeId = this.Random.GetRandomNumber(0, employeesIds.Count - 1); while (exists[currentEmployeeId] == 1) { currentEmployeeId = this.Random.GetRandomNumber(0, employeesIds.Count - 1); } exists[currentEmployeeId] = 1; var employeeProject = new EmployeesProject { ProjectId = project, StartDate = startDate, EndDate = endDate, EmployeeId = employeesIds[currentEmployeeId] }; this.Database.EmployeesProjects.Add(employeeProject); index++; if (index % 100 == 0) { Console.Write("."); this.Database.SaveChanges(); } } } Console.WriteLine("\nEmployeesProjects added"); }
public override void Generate() { Console.WriteLine("Adding Projects ..."); for (int i = 0; i < this.Count; i++) { var progect = new Project { ProjectName = this.Random.GetRandomStringWithrandomLength(5, 50) }; this.Database.Projects.Add(progect); var employeesIds = new HashSet <int>(); var numberOfEmployeesInThisProject = this.Random.GetRandomNumber(2, 20); while (employeesIds.Count != numberOfEmployeesInThisProject) { employeesIds.Add(this.Random.GetRandomNumber(1, 5000)); } foreach (var emplID in employeesIds) { Console.WriteLine("Adding Employees Projects too.."); var empProj = new EmployeesProject { EmployeeId = emplID, ProjectId = progect.Id, StartingDate = DateTime.Now.AddDays(this.Random.GetRandomNumber(-100, 0)), EndingDate = DateTime.Now.AddDays(this.Random.GetRandomNumber(1, 100)) }; this.Database.EmployeesProjects.Add(empProj); } if (i % 10 == 0) { this.Database.SaveChanges(); Console.WriteLine("..."); } } Console.WriteLine("Projects added"); }
public void Generate(CompanyEntities db, IRandomGenerator random, int count) { var employeeIds = db.Employees.Select(d => d.Id).ToList(); var projectIds = db.Projects.Select(p => p.Id).ToList(); var employeeProjects = new List <EmployeesProject>(); foreach (var employeeId in employeeIds) { var employeeProjectCount = random.GetRandomNumber((int)(0.5 * count), (int)(1.5 * count)); var currentProjects = new HashSet <int>(); while (currentProjects.Count < employeeProjectCount) { var projectId = projectIds[random.GetRandomNumber(0, projectIds.Count - 1)]; currentProjects.Add(projectId); } foreach (var projectId in currentProjects) { var endDate = random.GetRandomNumber(-500, 1000); var startDate = endDate + random.GetRandomNumber(1, 500); var report = new EmployeesProject() { EmployeeId = employeeId, ProjectId = projectId, StartDate = DateTime.Now.AddDays(-startDate), EndDate = DateTime.Now.AddDays(-endDate) }; employeeProjects.Add(report); } } db.EmployeesProjects.AddRange(employeeProjects); }