public async Task <IActionResult> ReservedAudit(MyViewModelSearch model) { model.EventsMod.PersoneId = _userManager.FindByNameAsync(_userManager.GetUserName(User)).Result.Id; TempData["Success"] = true; db.Eventsees.Add(model.EventsMod); await db.SaveChangesAsync(); return(RedirectToAction("Occupy")); }
public async Task <IActionResult> ReservedAudit(int?id) { if (id != null) { MyViewModelSearch model = new MyViewModelSearch(); model.Location = await db.Audiences.FirstOrDefaultAsync(p => p.Id == id); model.SearchAuditMod.Building = (string)TempData["Building"]; model.SearchAuditMod.min = (int)TempData["min"]; model.SearchAuditMod.max = (int)TempData["max"]; model.SearchAuditMod.Data = (DateTime)TempData["Data"]; return(PartialView(model)); } return(NotFound()); }
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)); }