/// <summary> /// /// CREATOR: Steve Coonrod /// CREATED: 3\08\2020 /// APPROVER: Ryan Morganti /// /// This is the no-argument constructor needed for the programs initialization /// /// </summary> /// <remarks> /// /// UPDATER: NA /// UPDATED: NA /// UPDATE: NA /// /// </remarks> public EventApprovalForm() { _eventManager = new PUEventManager(); _user = new PetUniverseUser(); _event = new PUEvent(); InitializeComponent(); }
/// <summary> /// /// CREATOR: Steve Coonrod /// CREATED: 2020-02-09 /// APPROVER: Ryan Morganti /// /// This UpdateEventDetails method is used to Update event data through /// a stored procedure sp_update_event in the database /// /// It returns true if the edit was successful /// /// </summary> /// <remarks> /// /// Updater: NA /// Updated: NA /// Update: NA /// /// </remarks> /// <param name="oldEvent"></param> /// <param name="newEvent"></param> /// <returns> bool successful </returns> public bool UpdateEventDetails(PUEvent oldEvent, PUEvent newEvent) { bool successful = false; int rowsEffected = 0; var conn = DBConnection.GetConnection(); var cmd = new SqlCommand("sp_update_event", conn); cmd.CommandType = CommandType.StoredProcedure; //Parameters with values cmd.Parameters.AddWithValue("@EventID", oldEvent.EventID); cmd.Parameters.AddWithValue("@OldCreatedByID", oldEvent.CreatedByID); cmd.Parameters.AddWithValue("@OldDateCreated", oldEvent.DateCreated); cmd.Parameters.AddWithValue("@OldEventName", oldEvent.EventName); cmd.Parameters.AddWithValue("@OldEventTypeID", oldEvent.EventTypeID); cmd.Parameters.AddWithValue("@OldEventDateTime", oldEvent.EventDateTime); cmd.Parameters.AddWithValue("@OldEventAddress", oldEvent.Address); cmd.Parameters.AddWithValue("@OldEventCity", oldEvent.City); cmd.Parameters.AddWithValue("@OldEventState", oldEvent.State); cmd.Parameters.AddWithValue("@OldEventZipcode", oldEvent.Zipcode); cmd.Parameters.AddWithValue("@OldEventPictureFileName", oldEvent.BannerPath); cmd.Parameters.AddWithValue("@OldStatus", oldEvent.Status); cmd.Parameters.AddWithValue("@OldDescription", oldEvent.Description); cmd.Parameters.AddWithValue("@NewCreatedByID", newEvent.CreatedByID); cmd.Parameters.AddWithValue("@NewDateCreated", newEvent.DateCreated); cmd.Parameters.AddWithValue("@NewEventName", newEvent.EventName); cmd.Parameters.AddWithValue("@NewEventTypeID", newEvent.EventTypeID); cmd.Parameters.AddWithValue("@NewEventDateTime", newEvent.EventDateTime); cmd.Parameters.AddWithValue("@NewEventAddress", newEvent.Address); cmd.Parameters.AddWithValue("@NewEventCity", newEvent.City); cmd.Parameters.AddWithValue("@NewEventState", newEvent.State); cmd.Parameters.AddWithValue("@NewEventZipcode", newEvent.Zipcode); cmd.Parameters.AddWithValue("@NewEventPictureFileName", newEvent.BannerPath); cmd.Parameters.AddWithValue("@NewStatus", newEvent.Status); cmd.Parameters.AddWithValue("@NewDescription", newEvent.Description); try { conn.Open(); rowsEffected = cmd.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { conn.Close(); } //Verify that exactly one row was affected if (rowsEffected == 1) { successful = true; } return(successful); }
/// <summary> /// CREATOR: Steve Coonrod, Matt Deaton /// CREATED 2/10/2020 /// APPROVER: Ryan Morganti /// /// Constructor for Editing Events. (UC-607) /// Must base functionality on user's role /// Takes in an existing Event, as well as the eventManager interface and user object involved /// Sets the Edit Mode to true /// /// </summary> /// <remarks> /// /// UPDATER: NA /// UPDATED: NA /// UPDATE: NA /// /// </remarks> public CreateEventForm(IPUEventManager eventManager, PetUniverseUser user, EventMgmt eventMgmt, PUEvent puEvent) { _eventManager = eventManager; _user = user; _event = puEvent; _editMode = true; _eventMgmt = eventMgmt; InitializeComponent(); }
public ActionResult Create(PUEvent puEvent) { ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>(); var userid = User.Identity.GetUserId(); int userID = 0; Int32.TryParse(userid, out userID); if (ModelState.IsValid) { try { PetUniverseUser current = _userManager.getUserByEmail(Membership.GetUser().Email); puEvent.Status = "PendingApproval"; puEvent.DateCreated = DateTime.Now; puEvent.BannerPath = "default.png"; puEvent.CreatedByID = userID; puEvent.EventID = _eventManager.AddEvent(puEvent); if (puEvent.EventID != 0) { Request request = new Request() { DateCreated = DateTime.Now, Open = true, RequestingUserID = puEvent.CreatedByID, RequestTypeID = "Event" }; request.RequestID = _eventManager.AddRequest(request); if (request.RequestID != 0) { EventRequest eventRequest = new EventRequest() { Active = true, DateCreated = DateTime.Now, EventID = puEvent.EventID, Open = request.Open, RequestID = request.RequestID, RequestingUserID = request.RequestingUserID, RequestTypeID = request.RequestTypeID }; _eventManager.AddEventRequest(eventRequest); } } return(RedirectToAction("Index")); } catch { return(View()); } } ViewBag.EventTypes = _eventTypes; return(View(puEvent)); }
/// <summary> /// /// CREATOR: Steve Coonrod, Matt Deaton /// CREATED: 2020-02-06 /// APPROVER: Ryan Morganti /// /// This InsertEvent method is used to access data through a stored /// procedure sp_insert_event in the database /// It returns the new Event's EventID /// /// </summary> /// <remarks> /// /// Updater: NA /// Updated: NA /// Update: NA /// /// </remarks> /// <param name="puEvent"></param> /// <returns> int eventID </returns> public int InsertEvent(PUEvent puEvent) { int eventID = 0; //Connection var conn = DBConnection.GetConnection(); var cmd = new SqlCommand("sp_insert_event"); cmd.Connection = conn; cmd.CommandType = CommandType.StoredProcedure; //Parameters cmd.Parameters.Add("@CreatedByID", SqlDbType.Int); cmd.Parameters.Add("@DateCreated", SqlDbType.DateTime); cmd.Parameters.Add("@EventName", SqlDbType.NVarChar, 150); cmd.Parameters.Add("@EventTypeID", SqlDbType.NVarChar, 50); cmd.Parameters.Add("@EventDateTime", SqlDbType.DateTime); cmd.Parameters.Add("@EventAddress", SqlDbType.NVarChar, 200); cmd.Parameters.Add("@EventCity", SqlDbType.NVarChar, 50); cmd.Parameters.Add("@EventState", SqlDbType.NVarChar, 50); cmd.Parameters.Add("@EventZipcode", SqlDbType.NVarChar, 15); cmd.Parameters.Add("@EventPictureFileName", SqlDbType.NVarChar, 250); cmd.Parameters.Add("@Status", SqlDbType.NVarChar, 50); cmd.Parameters.Add("@Description", SqlDbType.NVarChar, 500); //Values cmd.Parameters["@CreatedByID"].Value = puEvent.CreatedByID; cmd.Parameters["@DateCreated"].Value = puEvent.DateCreated; cmd.Parameters["@EventName"].Value = puEvent.EventName; cmd.Parameters["@EventTypeID"].Value = puEvent.EventTypeID; cmd.Parameters["@EventDateTime"].Value = puEvent.EventDateTime; cmd.Parameters["@EventAddress"].Value = puEvent.Address; cmd.Parameters["@EventCity"].Value = puEvent.City; cmd.Parameters["@EventState"].Value = puEvent.State; cmd.Parameters["@EventZipcode"].Value = puEvent.Zipcode; cmd.Parameters["@EventPictureFileName"].Value = puEvent.BannerPath; cmd.Parameters["@Status"].Value = puEvent.Status; cmd.Parameters["@Description"].Value = puEvent.Description; try { conn.Open(); eventID = Convert.ToInt32(cmd.ExecuteScalar()); } catch (Exception ex) { throw ex; } finally { conn.Close(); } return(eventID); }
/// <summary> /// /// CREATOR: Steve Coonrod /// CREATED: 2\08\2020 /// APPROVER: Ryan Morganti /// /// This is the full argument constructor which is used for Reviewing an Event (UC-619) /// It will set the approveMode to true when called /// /// </summary> /// <remarks> /// /// UPDATER: NA /// UPDATED: NA /// UPDATE: NA /// /// </remarks> /// <param name="eventManager"></param> /// <param name="user"></param> /// <param name="puEvent"></param> /// <param name="eventMgmt"></param> /// <param name="approveMode"></param> public EventApprovalForm(IPUEventManager eventManager, PetUniverseUser user, PUEvent puEvent, EventMgmt eventMgmt, bool approveMode) { _eventManager = eventManager; _user = user; _event = puEvent; _approveMode = approveMode; _eventMgmt = eventMgmt; _volunteerTaskManager = new VolunteerTaskManager(); InitializeComponent(); }
private bool _approveMode = false; //To track Review vs View Mode /// <summary> /// /// CREATOR: Steve Coonrod /// CREATED: 2\08\2020 /// APPROVER: Ryan Morganti /// /// This is the constructor that will load this page for Viewing an Event's details /// It keeps the approveMode as false /// /// </summary> /// <remarks> /// /// UPDATER: NA /// UPDATED: NA /// UPDATE: NA /// /// </remarks> /// <param name="eventManager"></param> /// <param name="user"></param> /// <param name="puEvent"></param> /// <param name="eventMgmt"></param> public EventApprovalForm(IPUEventManager eventManager, PetUniverseUser user, PUEvent puEvent, EventMgmt eventMgmt) { _eventManager = eventManager; _requestManager = new RequestManager(); _user = user; _event = puEvent; _eventMgmt = eventMgmt; InitializeComponent(); }
/// <summary> /// /// CREATOR: Steve Coonrod /// CREATED: 2020/2/06 /// APPROVER: Ryan Morganti /// /// The EditEvent method that attempts to edit an existing event. /// /// </summary> /// <remarks> /// /// UPDATER: NA /// UPDATED: NA /// UPDATE: NA /// /// </remarks> /// <param name="oldEvent"></param> /// <param name="newEvent"></param> /// <returns></returns> public bool EditEvent(PUEvent oldEvent, PUEvent newEvent) { try { return(_eventAccessor.UpdateEventDetails(oldEvent, newEvent)); } catch (Exception ex) { throw new ApplicationException("Data Unavailable", ex); } }
/// <summary> /// /// Creator: Steve Coonrod /// Created: 02/06/2020 /// Approver: Ryan Morganti /// /// The method used to add a test event to the fake repository /// Returns false if failed /// Returns true if successful /// /// </summary> /// <remarks> /// /// Updater: NA /// Updated: NA /// Update: NA /// /// </remarks> /// <param name="eventID"></param> /// <returns></returns> public bool DeleteEvent(int eventID) { bool successfulDelete = false; PUEvent eventToBeDeleted = puEvents.Find(delegate(PUEvent e) { return(e.EventID == eventID); }); puEvents.Remove(eventToBeDeleted); if (puEvents.Count == 3) { successfulDelete = true; } return(successfulDelete); }
/// <summary> /// /// CREATOR: Steve Coonrod /// CREATED: 3/15/2020 /// APPROVER: Ryan Morganti /// /// The data accessor method for Selecting a List of Events by the Status /// /// </summary> /// <remarks> /// /// Updater: NA /// Updated: NA /// Update: NA /// /// </remarks> /// <param name="status"></param> /// <returns></returns> public List <PUEvent> SelectEventsByStatus(string status) { List <PUEvent> retrievedEvents = new List <PUEvent>(); var conn = DBConnection.GetConnection(); var cmd = new SqlCommand("sp_select_events_by_status", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@Status", status); try { conn.Open(); var reader = cmd.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { PUEvent retrievedEvent = new PUEvent(); retrievedEvent.EventID = reader.GetInt32(0); retrievedEvent.CreatedByID = reader.GetInt32(1); retrievedEvent.DateCreated = reader.GetDateTime(2); retrievedEvent.EventName = reader.GetString(3); retrievedEvent.EventTypeID = reader.GetString(4); retrievedEvent.EventDateTime = reader.GetDateTime(5); retrievedEvent.Address = reader.GetString(6); retrievedEvent.City = reader.GetString(7); retrievedEvent.State = reader.GetString(8); retrievedEvent.Zipcode = reader.GetString(9); retrievedEvent.BannerPath = reader.GetString(10); retrievedEvent.Status = reader.GetString(11); retrievedEvent.Description = reader.GetString(12); retrievedEvents.Add(retrievedEvent); } } reader.Close(); } catch (Exception ex) { throw ex; } finally { conn.Close(); } return(retrievedEvents); }
} //End Submit click event /// <summary> /// CREATOR: Steve Coonrod /// CREATED 2/10/2020 /// APPROVER: Ryan Morganti /// /// Edit Event Click Event. Submits Form Data for processing. /// /// </summary> /// <remarks> /// /// UPDATER: NA /// UPDATED: NA /// UPDATE: NA /// /// </remarks> private void BtnSubmitEdit_Click(object sender, RoutedEventArgs e) { //This method will validate the field data and return the values in a string array //The validated field data strings will be assigned to a new Event Object //To be passed to the DB through the eventManager interface string[] validatedFieldData = validateFormData(); if (validatedFieldData != null) { try { //Create an Event object from the validated fields PUEvent newEvent = new PUEvent() { CreatedByID = Int32.Parse(validatedFieldData[0]), DateCreated = DateTime.Parse(validatedFieldData[1]), EventName = validatedFieldData[2], EventTypeID = validatedFieldData[3], EventDateTime = DateTime.Parse(validatedFieldData[4]), Address = validatedFieldData[5], City = validatedFieldData[6], State = validatedFieldData[7], Zipcode = validatedFieldData[8], BannerPath = validatedFieldData[9], Status = validatedFieldData[10], Description = validatedFieldData[11] }; if (_eventManager.EditEvent(_event, newEvent)) { MessageBox.Show("Event: " + newEvent.EventName + " has been updated."); _eventMgmt.frAllEvents.Content = new ListAllEvents(_eventManager, _eventMgmt); _eventMgmt.frPendingEvents.Content = new ListPendingEvents(_eventManager, _eventMgmt); _eventMgmt.frApprovedEvents.Content = new ListApprovedEvents(_eventManager, _eventMgmt); CloseThisPage(); } else { MessageBox.Show("An unknown error has occurred.\nPlease try again later."); CloseThisPage(); } } catch (Exception ex) { MessageBox.Show("We're Sorry.\n" + "There was an error with the process.\n" + "Please try again later.\n" + ex.Message); CloseThisPage(); } } }
/// <summary> /// /// CREATOR: Steve Coonrod /// CREATED: 2020/2/06 /// APPROVER: Ryan Morganti /// /// The AddEvent method that attempt to add a new event. /// /// </summary> /// <remarks> /// /// UPDATER: NA /// UPDATED: NA /// UPDATE: NA /// /// </remarks> /// <param name="puEvent"></param> /// <returns> bool result true if successful </returns> public int AddEvent(PUEvent puEvent) { int eventID = 0; try { eventID = _eventAccessor.InsertEvent(puEvent); } catch (Exception ex) { throw new ApplicationException("Data Unavailable", ex); } return(eventID); }
/// <summary> /// /// Creator: Steve Coonrod, Matt Deaton /// Created: 02/06/2020 /// Approver: Ryan Morganti /// /// The method used to add a test event to the fake repository /// Returns 0 if failed /// Returns 1 if successful /// /// </summary> /// <remarks> /// /// Updater: NA /// Updated: NA /// Update: NA /// /// </remarks> /// <param name="puEvent"></param> /// <returns>result</returns> public int InsertEvent(PUEvent puEvent) { //Actual method returns the scope_identity EventID int result = 0; if (puEvent.EventName.Length < 8 || puEvent.EventName.Length > 150) { throw new ApplicationException("The Event Name value was outside the acceptable range."); } else if (puEvent.EventDateTime < DateTime.Now.AddDays(14)) { throw new ApplicationException("The event date is too close. Must be at least 14 days in the future."); } else if (puEvent.Address.Length > 200 || puEvent.Address.Length < 6) { throw new ApplicationException("The address value was not within the acceptable range."); } else if (puEvent.City.Length < 2 || puEvent.City.Length > 50) { throw new ApplicationException("The city value was not within acceptable range."); } else if (puEvent.Zipcode.Length < 5 || puEvent.Zipcode.Length > 11) { throw new ApplicationException("The zipcode is not within acceptable range."); } else if (puEvent.BannerPath.Length < 5 || puEvent.BannerPath.Length > 250) { throw new ApplicationException("The picture file name is not within acceptable range."); } else if (!puEvent.BannerPath.ToLower().Contains(".jpg") && !puEvent.BannerPath.ToLower().Contains(".png")) { throw new ApplicationException("The picture file name is missing the file extension."); } else if (puEvent.Description.Length < 2 || puEvent.Description.Length > 500) { throw new ApplicationException("The discription value is not within the acceptable range."); } else { puEvents.Add(puEvent); if (puEvents.Count == 5) { result = 1; } } return(result); }
/// <summary> /// /// NAME: Steve Coonrod /// DATE: 2020-03-04 /// CHECKED BY: /// /// This is the constructor for the Delete Event form /// /// Updated By: /// Updated On: /// /// </summary> /// <param name="eventManager"></param> /// <param name="puEvent"></param> public frmDeleteEvent(IPUEventManager eventManager, PUEvent puEvent) { _eventManager = eventManager; _event = puEvent; InitializeComponent(); }
/// <summary> /// CREATOR: Steve Coonrod, Matt Deaton /// CREATED 2/10/2020 /// APPROVER: Ryan Morganti /// /// Main Click Event to submit an Event. Submits Form Data for processing. /// /// </summary> /// <remarks> /// /// UPDATER: NA /// UPDATED: NA /// UPDATE: NA /// /// </remarks> private void BtnSubmitCreate_Click(object sender, RoutedEventArgs e) { int eventID; //Will be returned with the Event int requestID; //Will be returned with the Request //This method will validate the field data and return the values in a string array //The validated field data strings will be assigned to a new Event Object //To be passed to the DB through the eventManager interface string[] validatedFieldData = validateFormData(); if (validatedFieldData != null) { try { //Create an Event object from the validated fields PUEvent newEvent = new PUEvent() { CreatedByID = Int32.Parse(validatedFieldData[0]), DateCreated = DateTime.Parse(validatedFieldData[1]), EventName = validatedFieldData[2], EventTypeID = validatedFieldData[3], EventDateTime = DateTime.Parse(validatedFieldData[4]), Address = validatedFieldData[5], City = validatedFieldData[6], State = validatedFieldData[7], Zipcode = validatedFieldData[8], BannerPath = validatedFieldData[9], Status = validatedFieldData[10], Description = validatedFieldData[11] }; //Check the User's Role //In any case, the event is created... //But a DC will create one with the status Approved, and will not need to create a request if (_user.PURoles.Contains("Donation Coordinator")) { newEvent.Status = (statusOptions.Approved.ToString()); eventID = _eventManager.AddEvent(newEvent); if (eventID != 0) { MessageBox.Show("Event: " + newEvent.EventName + "\n" + "has been created."); } } else // If the user does not have the Donation Coordinator Role... { newEvent.Status = (statusOptions.PendingApproval.ToString()); eventID = _eventManager.AddEvent(newEvent); if (eventID != 0) { //Create A Request Request newRequest = new Request() { DateCreated = DateTime.Now, RequestTypeID = "Event", RequestingUserID = _user.PUUserID, Open = true }; requestID = _eventManager.AddRequest(newRequest); if (requestID != 0) { //Will need to create an eventRequest EventRequest newEventRequest = new EventRequest() { EventID = eventID, RequestID = requestID, DisapprovalReason = "", DesiredVolunteers = 0, ReviewerID = 0, Active = true }; //Verify that all tables were updated int rowsEffectedByAddRequestEvent = _eventManager.AddEventRequest(newEventRequest); if (rowsEffectedByAddRequestEvent == 1 && eventID != 0 && requestID != 0) { MessageBox.Show("Event: " + newEvent.EventName + " has been created. \nA request has been made to review this event."); _eventMgmt.frAllEvents.Content = new ListAllEvents(_eventManager, _eventMgmt); _eventMgmt.frPendingEvents.Content = new ListPendingEvents(_eventManager, _eventMgmt); _eventMgmt.frApprovedEvents.Content = new ListApprovedEvents(_eventManager, _eventMgmt); CloseThisPage(); } else { MessageBox.Show("An unknown error has occurred.\nPlease try again later."); _eventManager.DeleteEvent(eventID); CloseThisPage(); } } } //End if for non-DC member Event creation } //End if-else for role-based implementation } //End try catch (Exception ex) { MessageBox.Show("We're Sorry.\n" + "There was an error with the process.\n" + "Please try again later.\n" + ex.Message); CloseThisPage(); } } //End if(validatedFieldData[] != null) } //End Submit click event
/// <summary> /// /// Creator: Steve Coonrod /// Created: 02/06/2020 /// Approver: Ryan Morganti /// /// The method used to Edit a test event in the fake repository /// Returns false if failed /// Returns true if successful /// /// </summary> /// <remarks> /// /// Updater: NA /// Updated: NA /// Update: NA /// /// </remarks> /// <param name="oldEvent"></param> /// <param name="newEvent"></param> /// <returns></returns> public bool UpdateEventDetails(PUEvent oldEvent, PUEvent newEvent) { bool successfulEdit = false; if (newEvent.EventName.Length < 8 || newEvent.EventName.Length > 150) { throw new ApplicationException("The Event Name value was outside the acceptable range."); } else if (newEvent.EventDateTime < DateTime.Now.AddDays(14)) { throw new ApplicationException("The event date is too close. Must be at least 14 days in the future."); } else if (newEvent.Address.Length > 200 || newEvent.Address.Length < 6) { throw new ApplicationException("The address value was not within the acceptable range."); } else if (newEvent.City.Length < 2 || newEvent.City.Length > 50) { throw new ApplicationException("The city value was not within acceptable range."); } else if (!Regex.Match(newEvent.Zipcode, "^[0-9]{5}(?:-[0-9]{4})?$").Success) { throw new ApplicationException("Invalid Zipcode"); } else if (newEvent.BannerPath.Length < 6 || newEvent.BannerPath.Length > 250) { throw new ApplicationException("The picture file name is not within acceptable range."); } else if (!newEvent.BannerPath.Substring(newEvent.BannerPath.Length - 4).ToLower().Equals(".jpg") && !newEvent.BannerPath.Substring(newEvent.BannerPath.Length - 4).ToLower().Equals(".png")) { throw new ApplicationException("The picture file name is missing the file extension."); } else if (newEvent.Description.Length < 2 || newEvent.Description.Length > 500) { throw new ApplicationException("The discription value is not within the acceptable range."); } else { //Finds the event matching the old event's eventID and assigns the values from the new event PUEvent eventToBeEdited = puEvents.Find(delegate(PUEvent e) { return(e.EventID == oldEvent.EventID); }); eventToBeEdited.EventName = newEvent.EventName; eventToBeEdited.EventTypeID = newEvent.EventTypeID; eventToBeEdited.EventDateTime = newEvent.EventDateTime; eventToBeEdited.Address = newEvent.Address; eventToBeEdited.City = newEvent.City; eventToBeEdited.State = newEvent.State; eventToBeEdited.Zipcode = newEvent.Zipcode; eventToBeEdited.DateCreated = newEvent.DateCreated; eventToBeEdited.BannerPath = newEvent.BannerPath; eventToBeEdited.CreatedByID = newEvent.CreatedByID; eventToBeEdited.Description = newEvent.Description; eventToBeEdited.Status = newEvent.Status; } //Checks that the old events values now match the new events values if (oldEvent.EventName == newEvent.EventName && oldEvent.EventTypeID == newEvent.EventTypeID && oldEvent.EventDateTime == newEvent.EventDateTime && oldEvent.Address == newEvent.Address && oldEvent.City == newEvent.City && oldEvent.State == newEvent.State && oldEvent.Zipcode == newEvent.Zipcode && oldEvent.DateCreated == newEvent.DateCreated && oldEvent.BannerPath == newEvent.BannerPath && oldEvent.CreatedByID == newEvent.CreatedByID && oldEvent.Description == newEvent.Description && oldEvent.Status == newEvent.Status) { successfulEdit = true; } return(successfulEdit); }