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); }
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); }