示例#1
0
        /// <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);
            }
        }
示例#2
0
        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);
        }
示例#3
0
        /// <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));
 }