private void Login(PasswordBox passwordObj) { LoginDetail loginData = loginDataService.GetDefaultLoginCredentials(); if (loginData.UserName.Equals(UserName) && loginData.UserPassword.Equals(passwordObj.Password)) { TaskOverview overView = new TaskOverview(); ApplicationHelper.NavigationService.Navigate(new Uri("View/TaskOverview.xaml", UriKind.RelativeOrAbsolute)); } else { LoginError = "Entered credentials are invalid."; } }
public TaskOverview GetOverview(int taskId) { if (!db.ProjectTasks.Any(k => k.ID == taskId)) { throw new ClientException("Team dont exist"); } //// supervising teams //List<TeamKeyValue> teams = db.TeamsProjects // .Where(k => k.ProjectId == taskId) // .Select(k => new TeamKeyValue(k.Team.ID, k.Team.Name)) // .ToList(); //List<int> teamsId = teams.Select(k => k.Id).ToList(); var q_tsActivities = db.TimeSheetActivities .Where(k => !k.DeletedAt.HasValue && k.TimeSheetTask.ProjectTask.ID == taskId); TaskOverview overview = new TaskOverview(); //IQueryable<DataSets.ProjectTask> q_tasks = db.ProjectTasks // .Where(t => t.ProjectId == taskId); // timesheet activities //overview.Members.Count > 0 //if (true) //{ //List<string> membersIds = overview.Members.Select(k => k.Id).ToList(); // ActivitiesFrequency overview.ActivitiesFrequency = q_tsActivities .OrderByDescending(k => k.FromDate) .GroupBy(k => k.FromDate.Date) .Take(30) .AsEnumerable() .Select((key) => new KeyValuePair <DateTime, int>(key.Key, key.Count())) .ToList(); // ActivitiesMinuts overview.ActivitiesMinutes = q_tsActivities .Where(k => k.ToDate.HasValue) .OrderByDescending(k => k.FromDate) .GroupBy(k => k.FromDate.Date) .Take(30) .AsEnumerable() .Select((key) => new KeyValuePair <DateTime, int>(key.Key, (int)Math.Floor(key.Sum(a => (a.ToDate.Value - a.FromDate).TotalMinutes)))) .ToList(); // UserActivitiesFrequency overview.UserActivitiesFrequency = q_tsActivities .Select(k => new { k.FromDate, k.TimeSheetTask.TimeSheet.UserId, Name = k.TimeSheetTask.TimeSheet.User.FirstName + " " + k.TimeSheetTask.TimeSheet.User.LastName }) .OrderByDescending(k => k.FromDate) .GroupBy(k => k.UserId) .AsEnumerable() .Select((key) => new KeyValuePair <UserKeyValue, int>(new UserKeyValue(key.Key, key.First().Name), key.Count())) .ToList(); // UserActivitiesMinuts overview.UserActivitiesMinutes = q_tsActivities //.Where(k => k.ToDate.HasValue) .Select(k => new { k.FromDate, k.ToDate, k.TimeSheetTask.TimeSheet.UserId, Name = k.TimeSheetTask.TimeSheet.User.FirstName + " " + k.TimeSheetTask.TimeSheet.User.LastName }) .OrderByDescending(k => k.FromDate) .GroupBy(k => k.UserId) .AsEnumerable() .Select((key) => new KeyValuePair <UserKeyValue, int>(new UserKeyValue(key.Key, key.First().Name), (int)Math.Floor(key.Sum(a => ((a.ToDate ?? DateTime.Now) - a.FromDate).TotalMinutes)))) .ToList(); //ActiveActivities overview.ActiveActivities = q_tsActivities .OrderByDescending(k => k.FromDate) .Where(k => !k.ToDate.HasValue) .Select(k => new TimeSheetActivity() { ID = k.ID, FromDate = k.FromDate, User = new User() { Id = k.TimeSheetTask.TimeSheet.User.Id, FirstName = k.TimeSheetTask.TimeSheet.User.FirstName, LastName = k.TimeSheetTask.TimeSheet.User.LastName, }, ProjectTask = new ProjectTask() { ID = k.TimeSheetTask.ProjectTask.ID, Title = k.TimeSheetTask.ProjectTask.Title, } }) .ToList(); //// add the users that are not in workloads that have no timesheets //var memebresWithNoTimeSheets = overview.Members.Where(k => !overview.Workload.Any(w => w.Key.Id == k.Id)).ToList(); //if (memebresWithNoTimeSheets.Count > 0) //{ // overview.Workload.AddRange(memebresWithNoTimeSheets.Select(k => // new KeyValuePair<Models.Users.UserKeyValue, TasksWorkload>(k, new TasksWorkload() { }))); //} //} return(overview); }