public IActionResult TaskCalendarByDate(string taskDate) { UserProfile u = UserProfile.GetUsers(_context).Find(x => x.Mail.ToLower() == User.Identity.Name.ToLower()); if (u != null) { UserTaskListViewModel tlvm = new UserTaskListViewModel(); tlvm.Tasks = new List <UserTaskViewModel>(); int date_start_hour = 0; DateTime dateValue = DateTime.Parse(taskDate);//DateTime.ParseExact(taskDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); tlvm.Date = dateValue; foreach (UserTask tas in UserTask.GetTasksByDate(true, dateValue, _context)) { var task_done = UserTask.GetTasksDoneByDate(true, dateValue, _context).Find(x => x.TaskId == tas.TaskId); if (task_done == null) { // формирование списка дел с датой var date_Start = Helper.ConvertDateStartToString(tas.DateStart.ToString()); if (tas.DateStart != null) { date_start_hour = Int32.Parse(Helper.ConvertDateStartHourToInt(tas.DateStart.ToString())); } if (tas.UserId == u.UserId && date_Start == taskDate) { UserTaskViewModel tvmt = new UserTaskViewModel(_context, tas); if (date_start_hour != 0) { tvmt.TimeHour = date_start_hour; } tlvm.CalendarTasks.Add(tvmt); } if (tas.UserId == u.UserId && date_Start == "" || date_Start == null) { UserTaskViewModel tvmt = new UserTaskViewModel(_context, tas); tvmt.TimeHour = Int32.Parse(Helper.ConvertPeriodToTime(tas.Period)); tlvm.Date = DateTime.Parse(taskDate); tlvm.CalendarTasks.Add(tvmt); } } } foreach (UserTask tas in UserTask.GetTasksWithoutDoneByDate(false, dateValue, _context)) { bool useDate = true; if (tas.DateStart == null) { useDate = false; } else if (tas.DateStart.Value.TimeOfDay == TimeSpan.Zero) { useDate = false; } //формирование списка дел без даты if (tas.UserId == u.UserId && !useDate) { UserTaskViewModel tvmt = new UserTaskViewModel(_context, tas); tlvm.Tasks.Add(tvmt); } } foreach (UserTask tas in UserTask.GetTasksDoneByDate(false, dateValue, _context)) { //формирование списка дел без даты if (tas.UserId == u.UserId) { UserTaskViewModel tvmt = new UserTaskViewModel(_context, tas); tlvm.DoneTasks.Add(tvmt); } } tlvm.Tasks = tlvm.Tasks.OrderByDescending(obj => obj.Priority).ToList(); tlvm.Tasks = tlvm.Tasks.OrderBy(obj => obj.DateStart).ToList(); return(View("TaskCalendar", tlvm)); } return(HttpNotFound()); }