public async Task <IActionResult> ManageReports() { var user = await _userManager.FindByNameAsync(User.Identity.Name); var reports = _reportData.GetByAuthorId(user.Id); var reportViewModels = new List <ReportViewModel>(); foreach (var report in reports) { reportViewModels.Add(new ReportViewModel { Id = report.Id, ProjectName = report.Project.Title, Date = report.Date.ToHijri(), Title = report.Title, IsViewed = report.ProjectManagers.Any(pm => pm.IsViewd == true) }); } var userReportViewModel = new UserReportViewModel { Reports = reportViewModels, Messages = SystemOperations.GetMessageViewModels(_messageService, user.Id) }; return(View(userReportViewModel)); }
public async Task <IActionResult> ManageReports(String nav) { var manager = await _userManager.FindByNameAsync(User.Identity.Name); var userReports = _reportData.GetAllReports(manager.Id); var userReportViewModels = new List <ReportViewModel>(); foreach (var report in userReports) { userReportViewModels.Add(new ReportViewModel { Id = report.Report.Id, Title = report.Report.Title, Author = report.Report.Author, Text = report.Report.Text, ProjectName = report.Report.Project.Title, TaskStartTime = report.Report.TaskStartTime, TaskEndTime = report.Report.TaskEndTime, Date = report.Report.Date.ToHijri(), IsViewed = report.IsViewd }); } var reportsViewModel = new ReportsManagementViewModel { ManagerId = manager.Id, UserReports = userReportViewModels, Messages = SystemOperations.GetMessageViewModels(_messageService, manager.Id) }; return(View(reportsViewModel)); }
public IActionResult AdminPanel() { //prepare datas for chart short ADMIN_ID = 1; var projects = _projectData.GetAll(); var today = DateTime.Now; var userReports = _reportData.GetReportsOfLastSevenDays(); var managerReports = _managerReportData.GetReportsOfLastSevenDays(); var userReportCount = new List <int>(); var managerReportCount = new List <int>(); var projectViewModels = new List <ProjectViewModel>(); var warnings = _messageService.GetWarnings(); var warningViewModels = new List <WarningViewModel>(); var activities = _activityData.GetAllActivities().ToList(); //A list for the last 7 days var days = new List <String>(); //counting number of reports in the last 7 days for (int i = -6; i <= 0; i++) { var day = today.AddDays(i); //finding the day that we want to count reports days.Add(day.ToHijri().GetDayAndMonth()); //Adding to days List userReportCount.Add(userReports.Count(r => r.Date.Date == day.Date)); managerReportCount.Add(managerReports.Count(r => r.Date.Date == day.Date)); } foreach (var project in projects) { projectViewModels.Add(new ProjectViewModel { Id = project.Id, Title = project.Title, CreateDate = project.CreateDate.ToHijri().GetDate(), EndDate = project.EndDate.HasValue ? project.EndDate.Value.ToHijri().GetDate() : null }); } foreach (var warning in warnings) { warningViewModels.Add(new WarningViewModel { ReceiverName = String.Concat(warning.Receiver.FirstName, " ", warning.Receiver.LastName), Title = warning.Message.Title, IsViewed = warning.IsViewd, ElapsedTime = Math.Round(DateTime.Now.Subtract(warning.Message.Time).TotalHours) }); } var adminPanelModel = new AdminPanelViewModel { Days = days, Projects = projectViewModels, UsersReportCount = userReportCount, ManagersReportCount = managerReportCount, Warnings = warningViewModels, Messages = SystemOperations.GetMessageViewModels(_messageService, ADMIN_ID), Activities = activities }; return(View(adminPanelModel)); }