Пример #1
0
        public IActionResult Post([FromBody] RegisterHolidayRequestModel holidayRequest)
        {
            var userId = Helpers.GetUserIdFromClaimsPrincipal(User);

            var inputDto = new RegisterHolidayRequestInputDto(
                holidayRequest.From, holidayRequest.To,
                holidayRequest.Remarks, holidayRequest.HolidayType,
                userId);

            var outputDto = RegisterHolidayRequestService.Register(inputDto);

            if (outputDto.IsSuccessful)
            {
                return(Ok(outputDto.Result));
            }
            else
            {
                return(BadRequest(outputDto.ValidationResult));
            }
        }
Пример #2
0
        public RegisterHolidayRequestOutputDto Register(RegisterHolidayRequestInputDto request)
        {
            // validate dto
            var dtoValidationResult = RegisterHolidayRequestInputDtoValidator.Validate(request).ToTRValidationResult();

            if (!dtoValidationResult.IsValid)
            {
                return(new RegisterHolidayRequestOutputDto(dtoValidationResult));
            }

            // get referential data
            var holidayType = HolidayTypeRepository.GetByKey(request.HolidayType);
            var user        = UserRepository.GetByKey(request.UserId);

            // create entity
            var holidayRequestEntity = new HolidayRequestEntity()
            {
                From        = request.From,
                To          = request.To,
                Remarks     = request.Remarks,
                HolidayType = holidayType,
                User        = user
            };

            //validate entity
            var entityValidationResult = HolidayRequestEntityValidator.Validate(holidayRequestEntity).ToTRValidationResult();

            if (!entityValidationResult.IsValid)
            {
                return(new RegisterHolidayRequestOutputDto(entityValidationResult));
            }

            //save entity
            if (entityValidationResult.IsValid)
            {
                HolidayRequestRepository.Register(holidayRequestEntity);
            }

            return(new RegisterHolidayRequestOutputDto(holidayRequestEntity.ToDto()));
        }
Пример #3
0
        public void Given_HolidayRequest_When_Validate_Then_ExpectedOutcome(
            RegisterHolidayRequestInputDto input,
            bool holidayRequestRepoResult,
            bool isValid,
            List <string> errors)
        {
            errors = errors ?? new List <string>();
            // Arrange
            var holidayTypeRepoMock = new Mock <IHolidayTypeRepository>();

            holidayTypeRepoMock
            .Setup(x => x.ExistsByKey(It.IsAny <string>()))
            .Returns(false);
            holidayTypeRepoMock
            .Setup(x => x.ExistsByKey(It.Is <string>(s => s == "N")))
            .Returns(true);
            var holidayRequestRepoMock = new Mock <IHolidayRequestRepository>();

            holidayRequestRepoMock
            .Setup(x => x.ExistsByToAndFrom(It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <long>()))
            .Returns(holidayRequestRepoResult);

            var sut = new RegisterHolidayRequestInputDtoValidator(
                holidayTypeRepoMock.Object,
                holidayRequestRepoMock.Object);

            // Act
            var actual = sut.Validate(input);

            // Assert
            Assert.Equal(isValid, actual.IsValid);
            Assert.Equal(errors.Count, actual.Errors.Count);
            for (var i = 0; i < errors.Count; i++)
            {
                Assert.Equal(errors[i], actual.Errors[i].ErrorMessage);
            }
        }