Example #1
0
        public void Validate_GivenAParentPolicyIdAndPolicyDoesNotExist_ValidIsFalse()
        {
            //Arrange
            PolicyCreateModel model = CreateModel();

            model.ParentPolicyId = parentPolicyId;

            ISpecificationsRepository repository = CreateSpecificationsRepository(false, false);

            PolicyCreateModelValidator validator = CreateValidator(repository);

            //Act
            ValidationResult result = validator.Validate(model);

            //Assert
            result
            .IsValid
            .Should()
            .BeFalse();

            result
            .Errors
            .Count
            .Should()
            .Be(1);
        }
Example #2
0
        public async Task <IActionResult> Edit(int id, PolicyCreateModel ItemCreateModel)
        {
            try
            {
                if (id != ItemCreateModel.Id)
                {
                    return(NotFound());
                }
                if (ModelState.IsValid)
                {
                    if (_UnitOfWork.EmployeePositionTimeOffPolicies
                        .Find(x => x.PositionId == ItemCreateModel.Position.Id &&
                              x.TypeId == ItemCreateModel.Type.Id &&
                              x.IsActive == true &&
                              x.Id != ItemCreateModel.Id) != null)
                    {
                        ViewData["Type"]     = new SelectList(_UnitOfWork.TimeOffTypes.GetAll(), "Id", "Title");
                        ViewData["Position"] = new SelectList(_UnitOfWork.EmployeePositions.GetAll(), "Id", "Title");
                        ViewData["Error"]    = "Policy for this Position and Type alredy exist.";
                        return(View(ItemCreateModel));
                    }
                    var Approvers = GetApproversFromJson(ItemCreateModel.Approvers);
                    if (Approvers.Count < 1)
                    {
                        ViewData["Type"]     = new SelectList(_UnitOfWork.TimeOffTypes.GetAll(), "Id", "Title");
                        ViewData["Position"] = new SelectList(_UnitOfWork.EmployeePositions.GetAll(), "Id", "Title");
                        ViewData["Error"]    = "There should be at least 1 approver";
                        return(View(ItemCreateModel));
                    }
                    var ItemDTO = _mapper.Map <PolicyCreateModel, EmployeePositionTimeOffPolicyDTO>(ItemCreateModel);
                    ItemDTO.Approvers = Approvers;
                    await _EmployeePositionTimeOffPolicyService.UpdateAsync(ItemDTO);

                    return(RedirectToAction(nameof(Index)));
                }
                ViewData["Type"]     = new SelectList(_UnitOfWork.TimeOffTypes.GetAll(), "Id", "Title");
                ViewData["Position"] = new SelectList(_UnitOfWork.EmployeePositions.GetAll(), "Id", "Title");
                ViewData["Error"]    = "Invalid model";

                return(View(ItemCreateModel));
            }
            catch (Exception ex)
            {
                ViewData["Type"]     = new SelectList(_UnitOfWork.TimeOffTypes.GetAll(), "Id", "Title");
                ViewData["Position"] = new SelectList(_UnitOfWork.EmployeePositions.GetAll(), "Id", "Title");
                if (ex is ArgumentException || ex is ArgumentNullException || ex is EntityNotFoundException)
                {
                    ViewData["Error"] = ex.Message;
                }
                else
                {
                    ViewData["Error"] = "Unexpected error";
                }
                return(View(ItemCreateModel));
            }
        }
Example #3
0
        public void Validate_GivenValidModel_ValidIsTrue()
        {
            //Arrange
            PolicyCreateModel model = CreateModel();

            PolicyCreateModelValidator validator = CreateValidator();

            //Act
            ValidationResult result = validator.Validate(model);

            //Assert
            result
            .IsValid
            .Should()
            .BeTrue();
        }
Example #4
0
        public void Validate_GivenEmptyParentPolicyId_ValidIsTrue()
        {
            //Arrange
            PolicyCreateModel model = CreateModel();

            model.ParentPolicyId = string.Empty;

            PolicyCreateModelValidator validator = CreateValidator();

            //Act
            ValidationResult result = validator.Validate(model);

            //Assert
            result
            .IsValid
            .Should()
            .BeTrue();
        }
Example #5
0
        public void Validate_GivenAParentPolicyIdAndPolicyExists_ValidIsTrue()
        {
            //Arrange
            PolicyCreateModel model = CreateModel();

            model.ParentPolicyId = parentPolicyId;

            ISpecificationsRepository repository = CreateSpecificationsRepository(false, true);

            PolicyCreateModelValidator validator = CreateValidator(repository);

            //Act
            ValidationResult result = validator.Validate(model);

            //Assert
            result
            .IsValid
            .Should()
            .BeTrue();
        }
Example #6
0
        public async Task <IActionResult> Create([FromForm] PolicyCreateModel ItemCreateModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var Approvers = GetApproversFromJson(ItemCreateModel.Approvers);
                    if (Approvers.Count < 1)
                    {
                        ViewData["Type"]     = new SelectList(_UnitOfWork.TimeOffTypes.GetAll(), "Id", "Title");
                        ViewData["Position"] = new SelectList(_UnitOfWork.EmployeePositions.GetAll(), "Id", "Title");
                        ViewData["Error"]    = "There should be at least 1 approver";
                        return(View(ItemCreateModel));
                    }
                    var ItemDTO = _mapper.Map <PolicyCreateModel, EmployeePositionTimeOffPolicyDTO>(ItemCreateModel);
                    ItemDTO.Approvers = Approvers;
                    await _EmployeePositionTimeOffPolicyService.CreateAsync(ItemDTO);

                    return(RedirectToAction(nameof(Index)));
                }
                ViewData["Type"]     = new SelectList(_UnitOfWork.TimeOffTypes.GetAll(), "Id", "Title");
                ViewData["Position"] = new SelectList(_UnitOfWork.EmployeePositions.GetAll(), "Id", "Title");
                ViewData["Error"]    = "Invalid model";

                return(View(ItemCreateModel));
            }
            catch (Exception ex)
            {
                ViewData["Type"]     = new SelectList(_UnitOfWork.TimeOffTypes.GetAll(), "Id", "Title");
                ViewData["Position"] = new SelectList(_UnitOfWork.EmployeePositions.GetAll(), "Id", "Title");
                if (ex is ArgumentException || ex is ArgumentNullException || ex is EntityNotFoundException)
                {
                    ViewData["Error"] = ex.Message;
                }
                else
                {
                    ViewData["Error"] = "Unexpected error";
                }
                return(View(ItemCreateModel));
            }
        }
Example #7
0
        public void Validate_GivenEmptySpecificationId_ValidIsFalse()
        {
            //Arrange
            PolicyCreateModel model = CreateModel();

            model.SpecificationId = string.Empty;

            PolicyCreateModelValidator validator = CreateValidator();

            //Act
            ValidationResult result = validator.Validate(model);

            //Assert
            result
            .IsValid
            .Should()
            .BeFalse();

            result
            .Errors
            .Count
            .Should()
            .Be(1);
        }