public ActionResult Teams(TeamsearchViewModel search) { // ViewBag.DatesProjects = Teamservice.DatesProjects(); var Projects = Projectservice.Get(); Projects.Insert(0, new ProjectsViewModel() { Id = 0, Name = "All" }); ViewBag.Projects = Projects; ViewBag.Search = search; var Users = Userservice.Get(); var items = Teamservice.GetHoursUsers(search); ViewBag.AlertMore180Hours = Teamservice.GetHoursMore180Dashboard(items); ViewBag.Dates = Teamservice.DatesBySearch(search.FromDate, search.ToDate); ViewBag.Users = Users; return(View(items)); }
public static List <TeamsViewModel> GetHoursUsers(TeamsearchViewModel search) { using (var db = new ShlekenEntities3()) { var from = search.FromDate; var to = search.ToDate; var dates = DatesBySearch(from, to); var Teams = db.Teams .Where(i => i.Projects.AccountId == Userservice.AccountId) .ToList() .GroupBy(i => new { i.Users }) .ToList(); var listTeams = new List <TeamsViewModel>(); foreach (var team in Teams) { var item = new TeamsViewModel(); item.Name = team.Key.Users.Name; item.UsersHours = new List <HourDate>(); var TeamsDate = team.GroupBy(i => i.Date); foreach (var td in TeamsDate) { var sum = 0; foreach (var t in td) { sum += t.Hours; } var UsersHours = new HourDate { Date = td.Key.Date, Hour = sum, Usersname = item.Name }; item.UsersHours.Add(UsersHours); } item.AllHours = new List <HourDate>(); foreach (var date in dates) { var count = 1; foreach (var hour in item.UsersHours) { if (hour.Date.Month == date.Date.Month && hour.Date.Year == date.Date.Year) { item.AllHours.Add(new HourDate { Hour = hour.Hour, Date = hour.Date, Id = hour.Id, Usersname = hour.Usersname }); } else { if (count == item.UsersHours.Count) { item.AllHours.Add(new HourDate { Hour = 0, Date = date.Date, Id = 0, Usersname = hour.Usersname }); } count++; } } } listTeams.Add(item); } return(listTeams.Where(i => (string.IsNullOrEmpty(search.Name) == true || i.Name.ToLower().Contains(search.Name.ToLower()))).ToList()); } }