/// <summary> /// Validates an assignment swap view model /// </summary> /// <param name="swapModel">The swap model to validate</param> public static void ValidateAssignmentSwapVM(AddAssignmentGroupSwapViewModel swapModel) { // Validating base validity APIValidation.Validate(swapModel); // Assignment group IDs cannot be the same if (swapModel.SwapAssignmentGroupID == swapModel.BaseAssignmentGroupID) { throw new CoursesAPIException(ErrorCodes.IDENTICAL_GROUP_IDS); } }
public void AddAssignmentSwap() { // Arrange: AddAssignmentGroupSwapViewModel swapModel = new AddAssignmentGroupSwapViewModel { BaseAssignmentGroupID = 1, SwapAssignmentGroupID = 3 }; // Act: AssignmentGroupSwapDTO swapDTO = _service.AddAssignmentGroupSwap(swapModel); // Assert: Assert.AreEqual("Generic Group 1", swapDTO.FirstAssignmentGroup.Name); Assert.AreEqual("Generic Group 3", swapDTO.SecondAssignmentGroup.Name); }
/// <summary> /// Ties two assignment groups together /// In the event a student receives a worse grade in the group /// with the higher weight, the weights are switched around /// </summary> /// <param name="swapModel"></param> /// <returns></returns> public AssignmentGroupSwapDTO AddAssignmentGroupSwap(AddAssignmentGroupSwapViewModel swapModel) { // Validating the view model AssignmentValidation.ValidateAssignmentSwapVM(swapModel); var allAssGroups = _assignmentGroupSwaps.All(); var result = allAssGroups.FirstOrDefault(a => (a.BaseAssignmentGroupID == swapModel.BaseAssignmentGroupID && a.TargetAssignmentGroupID == swapModel.SwapAssignmentGroupID) || (a.BaseAssignmentGroupID == swapModel.SwapAssignmentGroupID && a.TargetAssignmentGroupID == swapModel.BaseAssignmentGroupID)); // If the relation already exists, throw error if (result != null) { throw new ArgumentException(ErrorCodes.GROUP_SWAP_ALREADY_EXISTS); } // New swap entry AssignmentGroupSwap newSwap = new AssignmentGroupSwap { BaseAssignmentGroupID = swapModel.BaseAssignmentGroupID, TargetAssignmentGroupID = swapModel.SwapAssignmentGroupID }; _assignmentGroupSwaps.Add(newSwap); _uow.Save(); // Returning new assignment group DTO return(new AssignmentGroupSwapDTO { FirstAssignmentGroup = GetAssignmentGroup(swapModel.BaseAssignmentGroupID), SecondAssignmentGroup = GetAssignmentGroup(swapModel.SwapAssignmentGroupID) }); }
public AssignmentGroupSwapDTO AddAssignmentGroupSwap(AddAssignmentGroupSwapViewModel swapModel) { return(_assignmentService.AddAssignmentGroupSwap(swapModel)); }