/// <summary> /// Checks if a training session in originalTrainingSessions exists in the listOfTainingSessions. If it doesn't then it needs to be removed /// </summary> private void CheckForDeletedSessions() { // Check each item in the original training session list for (int i = 0; i < originalTrainingSessions.Count; i++) { var originalId = originalTrainingSessions[i].sessionId; bool needsToBeDeleted = true; for (int j = 0; j < TrainingSession.listOfTrainingSessions.Count; j++) { var currentList = TrainingSession.listOfTrainingSessions[j].sessionId; // If there is a match, break out of this for loop if (originalTrainingSessions[i].sessionId == TrainingSession.listOfTrainingSessions[j].sessionId) { needsToBeDeleted = false; break; } } // If a session isn't in the original list, then it needs to be removed if (needsToBeDeleted) { AssignedTrainingSessions session = new AssignedTrainingSessions(clientId, Convert.ToInt32(originalId)); AssignedTrainingSessions.removedTrainingSessionList.Add(session); var removedCount = AssignedTrainingSessions.newTrainingSessionList.Count; logger.Info(removedCount); var newCount = AssignedTrainingSessions.newTrainingSessionList.Count; logger.Info(newCount); } } // End of for loop }
/// <summary> /// Checks if a given training session exists in the originalTrainingSessions list. If not, add it to trainingSessionsToAdd /// </summary> private void CheckForNewSessions() { // Loop through the current list of assigned training sessions to see if we need to add or remove any for (int i = 0; i < TrainingSession.listOfTrainingSessions.Count; i++) { // a flag for whether the session needs to be added or not. By default, no bool newSessionAdded = true; string listSessionId = TrainingSession.listOfTrainingSessions[i].sessionId; // For each session in listOfTrainingSessions, see if exists in the original one for (int j = 0; j < originalTrainingSessions.Count; j++) { string originalTrainingSessionId = originalTrainingSessions[j].sessionId; // If it exists in current list and the new list, don't do anything if (TrainingSession.listOfTrainingSessions[i].sessionId == originalTrainingSessions[j].sessionId) { newSessionAdded = false; continue; } // If the session isn't found in the original array, then it is new and newSessionAddd stays as true } // Now add the new session to the list if (newSessionAdded) { AssignedTrainingSessions session = new AssignedTrainingSessions(clientId, Convert.ToInt32(TrainingSession.listOfTrainingSessions[i].sessionId)); AssignedTrainingSessions.newTrainingSessionList.Add(session); var count = AssignedTrainingSessions.newTrainingSessionList.Count; logger.Info(count); } } // End of main for loop for adding sessions }
/// <summary> /// When the user wants to save their changes to the database /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonSaveChanges_Click(object sender, EventArgs e) { var removedCount = AssignedTrainingSessions.newTrainingSessionList.Count; logger.Info(removedCount); var newCount = AssignedTrainingSessions.newTrainingSessionList.Count; logger.Info(newCount); // Compare lists to find any added training sessions CheckForNewSessions(); removedCount = AssignedTrainingSessions.newTrainingSessionList.Count; logger.Info(removedCount); newCount = AssignedTrainingSessions.newTrainingSessionList.Count; logger.Info(newCount); // Now see what was removed CheckForDeletedSessions(); logger.Info($"New Training Sessions: {AssignedTrainingSessions.newTrainingSessionList.Count}"); logger.Info($"Removed Training Sessions: {AssignedTrainingSessions.removedTrainingSessionList.Count}"); // If session did exist, and was removed, set DELETE request if (AssignedTrainingSessions.removedTrainingSessionList.Count > 0) { AssignedTrainingSessions.RemoveTrainingSessionsFromDatabase(); } // If new, send POST request to update client training sessions with userid and session id if (AssignedTrainingSessions.newTrainingSessionList.Count > 0) { AssignedTrainingSessions.AddNewTrainingSessionsToDatabase(); } // TODO: Check if all changes were made successfully. If they were, close the form MessageBox.Show("Successfully saved your changes"); this.Close(); }