Exemplo n.º 1
0
        private Validation ValidateData(TrainingDetailsRequest request)
        {
            Validation objValidation = new Validation()
            {
                ValidationMessage = new List <string>()
            };

            if (string.IsNullOrEmpty(request.TrainingName))
            {
                objValidation.IsValidationFailed = true;
                objValidation.ValidationMessage.Add(CommonConstants.RequiredTrainingNameMessage);
            }
            if (request.StartDate == null || request.StartDate == DateTime.MinValue)
            {
                objValidation.IsValidationFailed = true;
                objValidation.ValidationMessage.Add(CommonConstants.InValidStartDateMessage);
            }
            if (request.EndDate == null || request.EndDate == DateTime.MinValue)
            {
                objValidation.IsValidationFailed = true;
                objValidation.ValidationMessage.Add(CommonConstants.InValidEndDateMessage);
            }
            if (request.EndDate < request.StartDate)
            {
                objValidation.IsValidationFailed = true;
                objValidation.ValidationMessage.Add(CommonConstants.InvalidDateRangeMessage);
            }
            return(objValidation);
        }
Exemplo n.º 2
0
        public ApiResponseWrapper <TrainingResponse> SaveTrainingData(TrainingDetailsRequest request)
        {
            ApiResponseWrapper <TrainingResponse> response = new ApiResponseWrapper <TrainingResponse>();
            Validation validation = ValidateData(request);

            if (validation.IsValidationFailed)
            {
                response.SetFailure(new TrainingResponse(), validation);
            }
            else
            {
                TrainingDetails newTrainingDetails = _mapper.Map <TrainingDetailsRequest, TrainingDetails>(request);
                int             TrainingId         = _TrainingAppModule.Save(newTrainingDetails);
                if (TrainingId > 0)
                {
                    TrainingResponse responseData = new TrainingResponse()
                    {
                        TrainingId   = TrainingId,
                        TrainingDays = DateDifference(request)
                    };

                    response.SetSuccess(responseData);
                }
                else
                {
                    response.SetException(new TrainingResponse());
                }
            }
            return(response);
        }
Exemplo n.º 3
0
        public void TrainingPost_MissingDataTest()
        {
            TrainingDetailsRequest request = new TrainingDetailsRequest()
            {
                StartDate = new DateTime(2019, 08, 10),
                EndDate   = new DateTime(2019, 07, 10)
            };
            ApiResponseWrapper <TrainingResponse> response = _controller.Post(request);

            Assert.IsNotNull(response);
            Assert.AreEqual(response.Status, Status.Failure);
            Assert.AreEqual(response.validation.IsValidationFailed, true);
            Assert.AreNotEqual(response.validation.ValidationMessage.Count, 0);
        }
Exemplo n.º 4
0
        public void TrainingPost_PositiveTest()
        {
            TrainingDetailsRequest request = new TrainingDetailsRequest()
            {
                TrainingName = "Training 1",
                StartDate    = new DateTime(2019, 06, 10),
                EndDate      = new DateTime(2019, 07, 10)
            };



            ApiResponseWrapper <TrainingResponse> response = _controller.Post(request);

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.Data);
            Assert.AreEqual(response.Status, Status.Success);
            Assert.AreNotEqual(response.Data.TrainingId, 0);
            Assert.AreNotEqual(response.Data.TrainingDays, 0);
        }
Exemplo n.º 5
0
 private int DateDifference(TrainingDetailsRequest request)
 {
     return(Convert.ToInt32((request.EndDate.Value - request.StartDate.Value).TotalDays) + 1);
 }
Exemplo n.º 6
0
 public ApiResponseWrapper <TrainingResponse> Post(TrainingDetailsRequest request)
 {
     return(_TrainingAppService.SaveTrainingData(request));
 }