示例#1
0
        public DboProject CreateProject(Project project)
        {
            project.ProjectLeader = employeeServices.FindEmployeeById(project.ProjectLeader.Id);
            project.NumberOfWeeks = HelperServices.GetWeekOfYear(project.DueDate) - HelperServices.GetWeekOfYear(project.StartDate);
            context.Projects.Add(project);
            context.SaveChanges();

            List <DboSkill> skills = new List <DboSkill>();

            foreach (var item in project.ProjectSkills)
            {
                Skill    skill    = context.Skills.Where(s => s.Id == item.SkillId).FirstOrDefault();
                DboSkill dboSkill = new DboSkill()
                {
                    Id   = skill.Id,
                    Name = skill.Name
                };

                skills.Add(dboSkill);
            }

            DboProject dboProject = (DboProject)project;

            dboProject.Skills = skills;

            return(dboProject);
        }
示例#2
0
        public IEnumerable <HourPerWeek> GetEmployeesHoursPerWeek(int employeeId, int projectId)
        {
            List <EmployeeProjectHourPerWeeks> employeeProjectHourPerWeeks = context.EmployeeProjectHourPerWeeks.Include(e => e.Employee).Include(e => e.Project).Include(e => e.HoursPerWeeks).Where(e => e.Employee.Id == employeeId && e.Project.Id == projectId).ToList();

            Employee employee = employeeServices.FindEmployeeById(employeeId);
            Project  project  = FindProjectById(projectId);

            List <HourPerWeek> hoursPerWeeks = new List <HourPerWeek>();

            int startOfProjectInCalendarWeek = HelperServices.GetWeekOfYear(project.StartDate);
            int endOfProjectInCalendarWeek   = (startOfProjectInCalendarWeek + Convert.ToInt32(project.NumberOfWeeks));

            int endOfTheInvestigation = endOfProjectInCalendarWeek;

            for (int i = startOfProjectInCalendarWeek; i < endOfTheInvestigation; i++)
            {
                HourPerWeek hourPerWeek = new HourPerWeek();
                hourPerWeek.Hour = employee.HoursPerWeek - employee.OtherThingsToDoForWeeks;

                foreach (var projectForWeeks in employeeProjectHourPerWeeks)
                {
                    int startOfThisProject = HelperServices.GetWeekOfYear(projectForWeeks.Project.StartDate);
                    int endOfThisProject   = HelperServices.GetWeekOfYear(projectForWeeks.Project.DueDate);

                    if (endOfThisProject < endOfProjectInCalendarWeek)
                    {
                        endOfTheInvestigation = endOfThisProject;
                    }

                    if (startOfThisProject <= i)
                    {
                        int incrementWeek = i - startOfThisProject;
                        hourPerWeek.Hour -= projectForWeeks.HoursPerWeeks[incrementWeek].Hour;
                    }
                }

                hoursPerWeeks.Add(hourPerWeek);
            }

            return(hoursPerWeeks);
        }