public async Task <IActionResult> Employment()
        {
            MyViewModelEmployees model = new MyViewModelEmployees {
                AEmployes = await db.Employments.ToListAsync(),
                Locations = await db.Audiences.ToListAsync()
            };

            ViewBag.ErrorMassage = TempData["ErrorMassage"];
            return(View(model));
        }
        [HttpPost]//Добавление рассписания
        public async Task <IActionResult> Createemp(MyViewModelEmployees room)
        {
            var rooms = from m in db.Audiences select m;

            rooms = rooms.Where(s => (s.Building.Contains(room.AEmploye.Building)) && (s.Number == room.AEmploye.Number));
            if (rooms.Count() != 0)
            {
                db.Employments.Add(room.AEmploye);
                await db.SaveChangesAsync();

                TempData["ErrorMassage"] = false;
            }
            else
            {
                TempData["ErrorMassage"] = true;
            }

            return(RedirectToAction("Employment"));
        }
        public async Task <IActionResult> Occupy(MyViewModelSearch model)
        {
            List <Audience> freeAudits = new List <Audience>();

            MyViewModelEmployees modelforsearch = new MyViewModelEmployees {
                AEmployes = await db.Employments.ToListAsync(),
                Locations = await db.Audiences.ToListAsync(),
                Events    = await db.Eventsees.ToListAsync()
            };

            bool chetnost, free;
            int  Weekday          = (int)model.SearchAuditMod.Data.DayOfWeek;
            GregorianCalendar cal = new GregorianCalendar();
            int weekNumber        = cal.GetWeekOfYear(model.SearchAuditMod.Data, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);

            if (weekNumber % 2 == 1)
            {
                chetnost = true;
            }
            else
            {
                chetnost = false;
            }

            bool Intersection(int eMin, int eMax, int sMin, int sMax)
            {
                SortedSet <int> evente = new SortedSet <int>();
                SortedSet <int> search = new SortedSet <int>();

                for (int i = eMin; i <= eMax; i++)
                {
                    evente.Add(i);
                }
                for (int i = sMin; i <= sMax; i++)
                {
                    search.Add(i);
                }
                return(search.Intersect(evente).Count() == 0 ? false : true);
            }

            foreach (Audience audience in modelforsearch.Locations)
            {
                if (String.Equals(audience.Building, model.SearchAuditMod.Building))
                {
                    free = true;
                    foreach (EmploymentAudienceViewModel employ in modelforsearch.AEmployes)
                    {
                        if (String.Equals(audience.Building, employ.Building) &&
                            audience.Number == employ.Number &&
                            employ.Chetnost == chetnost &&
                            (int)employ.Weekdays == Weekday &&
                            Intersection(employ.PairNum, employ.PairNum, model.SearchAuditMod.min, model.SearchAuditMod.max))
                        {
                            free = false;
                        }
                    }

                    foreach (EventsViewModel even in modelforsearch.Events)
                    {
                        if (String.Equals(audience.Building, even.Building) &&
                            audience.Number == even.Numer &&
                            even.Date == model.SearchAuditMod.Data &&
                            Intersection(even.min, even.max, model.SearchAuditMod.min, model.SearchAuditMod.max))
                        {
                            free = false;
                        }
                    }

                    if (free)
                    {
                        freeAudits.Add(audience);
                    }
                }
            }
            TempData["min"]      = model.SearchAuditMod.min;
            TempData["max"]      = model.SearchAuditMod.max;
            TempData["Data"]     = model.SearchAuditMod.Data;
            TempData["Building"] = model.SearchAuditMod.Building;

            ViewBag.Success    = TempData["Success"];
            model.AudiencesMod = freeAudits.ToList();
            return(View(model));
        }