>>@
namespace WebDevelopment.Controllers
{
[Authorize(Roles = "admin, manager")]
public class ReportsController : Controller
{
private _Context db = new _Context();
// Отчет по занятости исполнителей
public ActionResult ReportStaff()
{
ReportStaffFilter filter = Session["ReportStaffFilter"] as
ReportStaffFilter;
DateTime dateTo = DateTime.Now.Date;
DateTime dateAt = new DateTime(dateTo.Year, 1, 1);
if (filter == null)
{
filter = new ReportStaffFilter()
{
DateAt = dateAt,
DateTo = dateTo,
UserId = db.Users.First(p => p.RoleId == 3).Id
};
}
List<Task> items = db.Tasks.OrderBy(p => p.Date).Where(p =>
p.UserId == filter.UserId).ToList();
dateAt = filter.DateAt.Date;
dateTo = filter.DateTo.Date;
dateAt = new DateTime(dateAt.Year, dateAt.Month, dateAt.Day, 0,
0, 0);
dateTo = new DateTime(dateTo.Year, dateTo.Month, dateTo.Day,
23, 59, 59);
if (dateTo <= dateAt)
{
dateTo = new DateTime(dateAt.Year, dateAt.Month,
dateAt.Day, 23, 59, 59);
}
items = items.Where(p => p.Date >= dateAt && p.Date <=
dateTo).ToList();
ReportStaff report = new ReportStaff()
{
Filter = filter,
Items = items
};
ViewBag.UserId = new SelectList(db.Users, "Id", "Name",
filter.UserId);
return View(report);
}
// Обработка формы фильтра отчета по занятости исполнителей
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ReportStaff(ReportStaffFilter filter)
{
Session["ReportStaffFilter"] = filter;
return RedirectToAction("ReportStaff");
}
// Данные по реализации задач
public ActionResult ReportTasks()
{
ReportTasksFilter filter = Session["ReportTasksFilter"] as
ReportTasksFilter;
if (filter == null)
{