public ActionResult pickDate(ValidationDateControl str)
        {
            if (User.Identity.IsAuthenticated == false)
            {
                return(View("~/Views/Home/CheckLoginError.cshtml"));
            }
            if (str.DOB >= str.DOB2)
            {
                return(RedirectToAction("DrawCHart", "Home", new { id = str.PrepID }));
            }
            List <SortDate> sortList = new List <SortDate>();
            List <int>      counts   = new List <int>();
            List <string>   texts    = new List <string>();

            foreach (MEDICAMENT_EVENT s in context.MEDICAMENT_EVENT)
            {
                if (str.PrepID == s.MEDICAMENT_ID)
                {
                    SortDate sd1 = new SortDate();
                    sd1.DateTimeItem = s.EVENT_DATE;
                    sd1.Count        = s.QUANTITY;
                    foreach (EVENTS s2 in context.EVENTS)
                    {
                        if (s2.ID == s.EVENT_ID)
                        {
                            sd1.EventName = s2.EVENT_NAME;
                        }
                    }
                    sortList.Add(sd1);
                }
            }
            sortList.Sort(delegate(SortDate sortdate1, SortDate sortdate2) { return(sortdate1.DateTimeItem.CompareTo(sortdate2.DateTimeItem)); });
            ViewBag.WM = sortList.ToList();
            SortDate fe = sortList.First();
            SortDate le = sortList.Last();

            if ((str.DOB < fe.DateTimeItem) || (str.DOB2 > le.DateTimeItem))
            {
                return(RedirectToAction("DrawCHart", "Home", new { id = str.PrepID }));
            }
            foreach (SortDate item in sortList)
            {
                if ((item.DateTimeItem.Date >= str.DOB.Date) && (item.DateTimeItem.Date <= str.DOB2.Date))
                {
                    counts.Add(item.Count);
                    texts.Add(item.EventName + " " + item.DateTimeItem.ToShortDateString());
                }
            }
            string header = "График изменения остатков препарата в период с " + str.DOB.ToShortDateString() + " по " + str.DOB2.ToShortDateString();

            ViewBag.Counts = counts.ToList(); // Данные для построения графика за заданный период.
            ViewBag.Texts  = texts.ToList();  // Данные для построения графика за заданный период.
            ViewBag.Header = header;
            return(View());
        }
        public ActionResult DrawCHart(Guid id) // Метод, возвращающий представление по рисованию графиков остатков конкретного препарата.
        {
            if (User.Identity.IsAuthenticated == false)
            {
                return(View("~/Views/Home/CheckLoginError.cshtml"));
            }
            List <SortDate> sortList = new List <SortDate>(); // Список, содержащий события с конкретным препаратом.
            bool            flag     = false;                 // Флаг, отвечающий за обнаружение событий конкретного препарата.
            string          name_p   = null;

            foreach (MEDICAMENT p in context.MEDICAMENT)
            {
                if (id == p.ID)
                {
                    name_p = "График динамики остатков препарата '" + p.TRADE_NAME + "' за последний год использования";
                }
                ViewBag.Id = id;
            }
            List <int>    Quantities  = new List <int>();
            List <string> Incriptions = new List <string>();

            foreach (MEDICAMENT_EVENT s in context.MEDICAMENT_EVENT)
            {
                if (id == s.MEDICAMENT_ID)
                {
                    flag = true;
                    SortDate sd1 = new SortDate();
                    sd1.DateTimeItem = s.EVENT_DATE;
                    sd1.Count        = s.QUANTITY;
                    foreach (EVENTS s2 in context.EVENTS)
                    {
                        if (s2.ID == s.EVENT_ID)
                        {
                            sd1.EventName = s2.EVENT_NAME;
                        }
                    }
                    sortList.Add(sd1);
                }
            }
            sortList.Sort(delegate(SortDate sortdate1, SortDate sortdate2) { return(sortdate1.DateTimeItem.CompareTo(sortdate2.DateTimeItem)); }); // Сортировка списка событий
            SortDate l = sortList.Last();
            SortDate f = sortList.First();

            foreach (SortDate item in sortList)
            {
                if ((l.DateTimeItem - item.DateTimeItem).TotalDays <= 365)
                {
                    Incriptions.Add(item.EventName + " " + item.DateTimeItem.ToShortDateString());
                    Quantities.Add(item.Count);
                }
            }
            if (flag == false)
            {
                return(View("~/Views/Home/DrawChartNullError.cshtml"));
            }
            ViewBag.Counts = Quantities.ToList();  //Отправка отсортированных данных для графиков в представление.
            ViewBag.Texts  = Incriptions.ToList(); //Отправка отсортированных данных для графиков в представление.
            name_p        += " (Весь период с " + f.DateTimeItem.ToShortDateString() + " по " + l.DateTimeItem.ToShortDateString() + ")";
            ViewBag.Name   = name_p;
            return(View());
        }