//Create a relationship between current Event and an Staff. public IActionResult AddStaff(ViewEventViewModel viewEventViewModel, int EventID) { if (ModelState.IsValid) { //if a relationship already exists between an Event object and Staff object it adds EventStaff //object to list. IList <EventStaff> existingItems = context.EventStaffs .Where(es => es.EventID == EventID) .Where(es => es.StaffID == viewEventViewModel.StaffID).ToList(); if (!existingItems.Any()) { //EventStaff Constructor EventStaff eventStaff = new EventStaff { StaffID = viewEventViewModel.StaffID, EventID = EventID }; context.EventStaffs.Add(eventStaff); context.SaveChanges(); } } return(Redirect("/Event/ViewEvent/" + EventID)); }
//Create a relationship between current Event and an Equipment. public IActionResult AddEquipment(ViewEventViewModel viewEventViewModel, int EventID) { if (ModelState.IsValid) { //if a relationship already exists between an Event object and Equipment object it adds EventEquipment //object to list. IList <EventEquipment> existingItems = context.EventEquipments .Where(ee => ee.EventID == EventID) .Where(ee => ee.EquipmentID == viewEventViewModel.EquipmentID).ToList(); if (!existingItems.Any()) { //EventEquipment Constructor EventEquipment eventEquipment = new EventEquipment { EquipmentID = viewEventViewModel.EquipmentID, EventID = EventID }; context.EventEquipments.Add(eventEquipment); context.SaveChanges(); } } return(Redirect("/Event/ViewEvent/" + EventID)); }
public async Task <IActionResult> Invite(ViewEventViewModel model) { Event e = QueryController.GetEventFromId(_context, model.Invite.eventID); if (ModelState.IsValid) { ApplicationUser user = QueryController.GetCurrentUserAsync(_userManager, User); await _emailSender.SendEmailAsync(model.Invite.email, "You have been invited to join this event by " + user.details.FirstName + " " + user.details.LastName, "Dear future competition participant, \n \n" + user.details.FirstName + " " + user.details.LastName + " has invited you to join their event: " + e.Name + ". To become a part of this event please go here: http://localhost:49494/Event/ViewEvent?eventID=" + e.id); TempData["modal"] = "Invited email address: " + model.Invite.email + " to join this event"; return(RedirectToLocal("/Event/ViewEvent?eventID=" + e.id)); } TempData["modal"] = "Error occured whilst inviting the entered email. Please try again."; return(RedirectToLocal("/Event/ViewEvent?eventID=" + e.id)); }
//Builds ViewEvent page of a specific event based on id. public IActionResult ViewEvent(int id) { try { Event newEvent = context.Events.Single(e => e.ID == id); Venue newVenue = context.Venues.Single(v => v.ID == newEvent.VenueID); //populate list of staff linked to current event. List <EventStaff> staffs = context .EventStaffs .Include(staffs => staffs.Staff) .Where(cm => cm.EventID == id) .ToList(); //populate list of equipment linked to current event. List <EventEquipment> equipments = context .EventEquipments .Include(equipments => equipments.Equipment) .Where(cm => cm.EventID == id) .ToList(); //populate a list of items List <Item> items = context .Items .ToList(); //viewmodel of event. ViewEventViewModel viewEventViewModel = new ViewEventViewModel(context.Equipments.ToList(), context.Staffs.ToList()) { Event = newEvent, Staffs = staffs, Equipments = equipments, Venue = newVenue, Items = items }; return(View(viewEventViewModel)); } catch (InvalidOperationException) { return(Redirect("/Event")); } }
public IActionResult ViewEvent(string eventID) { var model = new ViewEventViewModel { CurrentEvent = QueryController.GetEventFromId(_context, eventID) }; if (model != null && !model.CurrentEvent.IsDeleted) { return(View(model)); } else if (model.CurrentEvent.IsDeleted) { ViewData["error"] = "This event has been deleted."; return(View("Error")); } else { ViewData["error"] = "Invalid event."; return(View("Error")); } }