예제 #1
0
        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());
        }