Ejemplo n.º 1
0
        public async Task <EmployeeDto> GetEmplyeeByIdAsync(Guid Id)
        {
            EmployeeDto res = new EmployeeDto();
            var         e   = await this.employeeRepository.GetById(Id);

            res.Id    = e.Id;
            res.Name  = e.Name;
            res.Email = e.Email;
            foreach (EmployeeSkill es in e.Skills)
            {
                res.Skills.Add(new EmployeeSkillDto()
                {
                    Id = es.Id, Name = es.Name, Maturity = (int)es.Maturity
                });
            }

            // foreach(AvailabilityEntry a in e.Availability)
            // {
            //     res.Availability.Add(new AvailabilityEntryDto() { Year = a.Year, Month = a.Month, Precentage = a.Precentage} );
            // }

            res.Availability = Make6entiries(DateTime.Now);
            // update the entries which exist in db
            foreach (AvailabilityEntry a in e.Availability)
            {
                AvailabilityEntryDto entry = res.Availability.ToList().Find(i => i.Year == a.Year && i.Month == a.Month);
                if (entry != null)
                {
                    entry.Precentage = a.Precentage;
                }
            }

            foreach (EmployeeRole r in e.Roles)
            {
                var cg = new ContributionGroupDto();
                cg.Id   = r.ContributionGroup.Id;
                cg.Name = r.ContributionGroup.Name;

                res.Roles.Add(new EmployeeRoleDto()
                {
                    RoleId = r.Id, Name = r.Name, ContributionGroup = cg
                });
            }

            if (e.WorkPlace != null)
            {
                res.WorkPlace         = new WorkPlaceDto();
                res.WorkPlace.Id      = e.WorkPlace.Id;
                res.WorkPlace.Country = e.WorkPlace.Country;
                res.WorkPlace.City    = e.WorkPlace.City;
                res.WorkPlace.Name    = e.WorkPlace.Name;
            }

            if (e.Manager != null)
            {
                res.Manager = new ManagerDto()
                {
                    Id = e.Manager.Id, Name = e.Manager.Name
                };
            }

            return(res);
        }
Ejemplo n.º 2
0
        public async Task <IList <EmployeeDto> > ListAllEmployeesAsync()
        {
            //var el = await this.employeeRepository.GetAllAsync();
            var el = await this.employeeRepository.GetByFilterAsync();

            IList <EmployeeDto> dtos = new List <EmployeeDto>();

            foreach (Employee e in el)
            {
                var d = new EmployeeDto();
                d.Id    = e.Id;
                d.Name  = e.Name;
                d.Email = e.Email;

                if (e.Manager != null)
                {
                    d.Manager = new ManagerDto {
                        Id = e.Manager.Id, Name = e.Manager.Name
                    };
                }

                // make 6 entiries
                // so we have for sure something to show.
                // DateTime dt = DateTime.Now;
                // for(int i = 0; i<6; i++) {
                //     int year = dt.AddMonths(i).Year;
                //     int month = dt.AddMonths(i).Month;
                //     d.Availability.Add(new AvailabilityEntryDto() {Year = year, Month = month, Precentage = 0});
                // }
                d.Availability = Make6entiries(DateTime.Now);

                // update the entries which exist in db
                foreach (AvailabilityEntry a in e.Availability)
                {
                    AvailabilityEntryDto entry = d.Availability.ToList().Find(i => i.Year == a.Year && i.Month == a.Month);
                    if (entry != null)
                    {
                        entry.Precentage = a.Precentage;
                    }
                }

                foreach (EmployeeRole r in e.Roles)
                {
                    d.Roles.Add(new EmployeeRoleDto()
                    {
                        Name = r.Name, ContributionGroup = null
                    });
                }

                if (e.WorkPlace != null)
                {
                    d.WorkPlace         = new WorkPlaceDto();
                    d.WorkPlace.Id      = e.WorkPlace.Id;
                    d.WorkPlace.Country = e.WorkPlace.Country;
                    d.WorkPlace.City    = e.WorkPlace.City;
                    d.WorkPlace.Name    = e.WorkPlace.Name;
                }

                dtos.Add(d);
            }
            return(dtos);
        }