public HttpResponseMessage ValidateBusinessRule(HttpRequestMessage request,
            [FromBody] Reservation reservation)
        {
            //try
            //{
            //ReservationValidator validator = new ReservationValidator();
            //validator.ValidateAndThrow(reservation);

            //    //do something with reservation
            //}
            //catch (FluentValidation.ValidationException ex)
            //{
            //    var result = ex.Errors.Select(item => new System.ComponentModel.DataAnnotations.ValidationResult(item.ErrorMessage, new List<string> { item.PropertyName }));

            //    //foreach (var error in ex.Errors)
            //    //    this.ModelState.AddModelError(error.PropertyName, error.ErrorMessage);

            //    return Request.CreateResponse(HttpStatusCode.BadRequest, result);
            //}

            return GetHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                ReservationValidator validator = new ReservationValidator();
                validator.ValidateAndThrow(reservation);

                response = request.CreateResponse(HttpStatusCode.OK, reservation);

                return response;
            });
        }
        public HttpResponseMessage ValidateBusinessRule(HttpRequestMessage request,
                                                        [FromBody] Reservation reservation)
        {
            //try
            //{
            //ReservationValidator validator = new ReservationValidator();
            //validator.ValidateAndThrow(reservation);

            //    //do something with reservation
            //}
            //catch (FluentValidation.ValidationException ex)
            //{
            //    var result = ex.Errors.Select(item => new System.ComponentModel.DataAnnotations.ValidationResult(item.ErrorMessage, new List<string> { item.PropertyName }));

            //    //foreach (var error in ex.Errors)
            //    //    this.ModelState.AddModelError(error.PropertyName, error.ErrorMessage);

            //    return Request.CreateResponse(HttpStatusCode.BadRequest, result);
            //}

            return(GetHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                ReservationValidator validator = new ReservationValidator();
                validator.ValidateAndThrow(reservation);

                response = request.CreateResponse(HttpStatusCode.OK, reservation);

                return response;
            }));
        }
Example #3
0
        public IActionResult Post([FromBody] ReservationDto reservation)
        {
            var reserv    = _Mapper.Map <ReservationDto, Reservation>(reservation);
            var validator = new ReservationValidator(_Repo);
            var results   = validator.Validate(reserv);

            if (results.IsValid)
            {
                _Repo.Create(reserv);
                _Repo.SaveChanges();
                _Logger.LogInformation($"Reservation {reserv.ID} was created");
                return(CreatedAtAction(nameof(Get), new { id = reserv.ID }));
            }
            results.Errors.ToList().ForEach(e => ModelState.AddModelError("Reservation is not valid", e.ErrorMessage));
            return(BadRequest(new ValidationProblemDetails(ModelState)));
        }
Example #4
0
        // Register Car Rent reservation database manipulations
        public void CreateReservation(Reservation reservation)
        {
            PrintColorMessage    colorMessage = new PrintColorMessage();
            Navigation           navigation   = new Navigation();
            ReservationValidator validator    = new ReservationValidator();
            ValidationResult     result       = validator.Validate(reservation);

            // Input Customer Name Validation
            if (!result.IsValid)
            {
                colorMessage.Print(ConsoleColor.Red, "\nReservation is not created! See reason below:");

                //data validation
                foreach (var failure in result.Errors)
                {
                    Console.WriteLine("\n '" + failure.PropertyName + "' written incorrectly . \n Details: " + failure.ErrorMessage);
                }
            }
            else
            {
                using (var context = new ApplicationDbContext())
                {
                    try
                    {
                        context.Reservations.Add(reservation);

                        try
                        {
                            context.SaveChanges();
                        }
                        catch (SqlException)
                        {
                            colorMessage.Print(ConsoleColor.Red, "Error: CustomerID should exist in the Customer table");
                        }

                        colorMessage.Print(ConsoleColor.Yellow, "Reservation created succesffuly!");
                        navigation.GoToMenu();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
            }
        }
        public ActionResult Create(RoomViewModel roomVM)
        {
            if (!ReservationValidator.ValidateSelectedAmount(roomVM))
            {
                ModelState.AddModelError("AmountOfTamagotchis", "This room has only space for " + roomVM.Room.Size + " tamagotchis. Please choose an amount no more than " + roomVM.Room.Size);
            }
            else if (!ReservationValidator.ValidateSelectTamagotchis(roomVM))
            {
                ModelState.AddModelError("Tamagotichis", "You have to select at most " + roomVM.AmountOfTamagotchis + " Tamagotchis");
            }

            if (ModelState.IsValid)
            {
                ProcessReservation(roomVM);
                return(RedirectToAction("Detail"));
            }
            else
            {
                return(View(GetRoomViewModel(roomVM.Room.ID)));
            }
        }
Example #6
0
        // Update Reservation database manipulations
        public void UpdateReservation(Reservation reservation)
        {
            Car car = new Car();
            ReservationValidator validator    = new ReservationValidator();
            ValidationResult     result       = validator.Validate(reservation);
            PrintColorMessage    colorMessage = new PrintColorMessage();


            // Input Customer Name Validation
            if (!result.IsValid)
            {
                colorMessage.Print(ConsoleColor.Red, "\nReservation is not Updated! See reason below:");

                //data validation
                foreach (var failure in result.Errors)
                {
                    Console.WriteLine("\n '" + failure.PropertyName + "' written incorrectly . \n Details: " + failure.ErrorMessage);
                }
            }
            else
            {
                //EF
                using (var context = new ApplicationDbContext())
                {
                    var reservationToUpdate =
                        context.Reservations.First(x => x.ReservationID == reservation.ReservationID);
                    reservationToUpdate.CarPlate  = reservation.CarPlate;
                    reservationToUpdate.StartDate = reservation.StartDate;
                    reservationToUpdate.EndDate   = reservation.EndDate;
                    reservationToUpdate.Location  = reservation.Location;


                    context.SaveChanges();
                }
            }
        }
 public EfReservationCommand(CinemaContext context, ReservationValidator validator)
 {
     _context       = context;
     this.validator = validator;
 }
Example #8
0
 public ReservationService()
 {
     _validator           = new ReservationValidator();
     _reservationStrategy = new ReservationStrategy();
 }
        public void Setup()
        {
            var mockRepo = new Mock <IRepository>(MockBehavior.Strict);

            mockRepo.Setup(p => p.GetAll <Reservation>()).Returns(new List <Reservation>()
            {
                new Reservation()
                {
                    ID            = 1,
                    LectureHallId = 1,
                    LecturerId    = 1,
                    StartDate     = DateTime.Today.AddHours(12),
                    EndDate       = DateTime.Today.AddHours(15)
                }
            }.AsQueryable());
            mockRepo.Setup(p => p.GetAll <LectureHall>()).Returns(new List <LectureHall>()
            {
                new LectureHall()
                {
                    ID       = 1,
                    Number   = "A1",
                    OpenFrom = 8,
                    OpenTo   = 18
                },
                new LectureHall()
                {
                    ID       = 2,
                    Number   = "A2",
                    OpenFrom = 9,
                    OpenTo   = 17
                },
                new LectureHall()
                {
                    ID       = 3,
                    Number   = "B1",
                    OpenFrom = 14,
                    OpenTo   = 18
                },
            }.AsQueryable());
            mockRepo.Setup(p => p.GetAll <Lecturer>()).Returns(new List <Lecturer>()
            {
                new Lecturer()
                {
                    ID        = 1,
                    FirstName = "James",
                    LastName  = "Baker",
                    SubjectID = 1,
                },
                new Lecturer()
                {
                    ID        = 2,
                    FirstName = "Oliver",
                    LastName  = "Ball",
                    SubjectID = 2,
                },
                new Lecturer()
                {
                    ID        = 3,
                    FirstName = "Harry ",
                    LastName  = "Bailey",
                    SubjectID = 3,
                },
                new Lecturer()
                {
                    ID        = 4,
                    FirstName = "Jack",
                    LastName  = "Bilder",
                    SubjectID = 4,
                },
            }.AsQueryable());
            _Validator = new ReservationValidator(mockRepo.Object);
        }
Example #10
0
 public override void Validate()
 {
     ValidationResult = new ReservationValidator().Validate(this);
 }
Example #11
0
 public ReservationController(ReservationContext db)
 {
     this._db = db;
     this._reservationValidator = new ReservationValidator(db);
 }