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)); }