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");
        }
Пример #3
0
        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();
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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");
        }
Пример #7
0
        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");
        }
Пример #8
0
        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);
        }