public static List <TeamsViewModel> GetAllMore180(int ProjectId) { using (var db = new ShlekenEntities3()) { var datesProjects = DatesProjects(ProjectId); 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.UserId = team.Key.Users.Id; 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 datesProjects) { 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); } }
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()); } }
public static int GetHoursForMonth(DateTime date1, int project = -1) { using (var db = new ShlekenEntities3()) { var from = new DateTime(DateTime.Today.Year, date1.Month, 1); var to = new DateTime(DateTime.Today.Year, date1.Month, DateTime.DaysInMonth(DateTime.Today.Year, date1.Month)); var dates = DatesBySearch(from, to); var Teams = db.Teams .ToList() .GroupBy(i => new { i.Users }) .ToList(); if (project != -1) { Teams = db.Teams.Where(p => p.ProjectId == project) .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.Sum(p => p.UsersHours.Where(u => u.Date.Month == date1.Month && u.Date.Year == date1.Year).Sum(u => u.Hour))); } }