public async Task UpdateBookingCommand_ShouldThrowNotFoundException_MissingExtraClass()
        {
            var userId = await RunAsDefaultUserAsync();

            var subjectId = await SendAsync(new CreateSubjectCommand { Name = "Wizardry" });

            var extraClassId = await SendAsync(new CreateExtraClassCommand
            {
                Name      = "Gandalf's class",
                SubjectId = subjectId,
                Size      = 1,
                Price     = 500,
                Duration  = TimeSpan.FromMinutes(60),
                Date      = DateTime.Now,
            });

            var command = new CreateBookingCommand {
                ExtraClassId = extraClassId
            };

            var bookingId = await SendAsync(command);

            var updateCommand = new UpdateBookingCommand {
                Id = bookingId, ExtraClassId = 9999999999, Paid = true, Price = 100
            };

            //Assert
            FluentActions.Invoking(() =>
                                   SendAsync(updateCommand)).Should().Throw <NotFoundException>();
        }
        public async Task <IActionResult> OnPostUpdate(DateTime ViewBookTime,
                                                       int ViewPallets, int ViewPort, int ActualArrivalHour,
                                                       int ActualArrivalMinute, int startHour, int startMinute,
                                                       int endHour, int endMinute, Guid ViewBookingId)
        {
            var booking = new UpdateBookingCommand()
            {
                BookingTime   = ViewBookTime,
                TotalPallets  = ViewPallets,
                Port          = ViewPort,
                ActualArrival = GeneralUtil.TimeFromHourAndMinute(ActualArrivalHour, ActualArrivalMinute),
                StartLoading  = GeneralUtil.TimeFromHourAndMinute(startHour, startMinute),
                EndLoading    = GeneralUtil.TimeFromHourAndMinute(endHour, endMinute),
                InternalId    = ViewBookingId
            };

            var result = await bookingDataService.UpdateBooking(booking);

            if (result.IsSuccesfull)
            {
                Message = "Bookingen er opdateret korrekt";
                return(new RedirectToPageResult("BookingSingle", new { id = ViewBookingId }));
            }

            return(new RedirectToPageResult("Error"));
        }
        public void UpdateBookingCommand_ShouldThrowNotFoundException()
        {
            //Arrange
            var command = new UpdateBookingCommand {
                Id = 1, ExtraClassId = 1, Paid = true, Price = 100
            };

            FluentActions.Invoking(() =>
                                   SendAsync(command)).Should().Throw <NotFoundException>();
        }
예제 #4
0
        public async Task <ResponseBase> Handle(UpdateBookingCommand request, CancellationToken cancellationToken)
        {
            var input = new BookingUpdateInput
            {
                AggregateId = request.AggregateId,
                ArriveDate  = request.ArriveDate,
                RoomName    = request.RoomName
            };

            var result = await _bookingService.UpdateBooking(input);

            return(result ? ResponseBase.Success : ResponseBase.Fail);
        }
예제 #5
0
        public async Task <IdResponse> HandleAsync(UpdateBookingCommand cmd, CancellationToken ct)
        {
            var result = _bookingRepository.Update(new Booking
            {
                Email           = cmd.email,
                ActualArrival   = cmd.actualArrival,
                BookingTime     = cmd.bookingTime,
                EndLoading      = cmd.endLoading,
                Port            = cmd.port,
                InternalId      = cmd.internalId,
                StartLoading    = cmd.startLoading,
                TotalPallets    = cmd.totalPallets,
                TransporterName = cmd.transporterName,
                ExternalId      = cmd.ExternalId
            });

            return(new IdResponse(cmd.Id));
        }
        public async Task <Response> UpdateBooking(UpdateBookingCommand booking)
        {
            var endpoint = baseurl;

            var response = await PutAsync(endpoint, booking);

            if (!response.IsSuccessStatusCode)
            {
                if (response.Content != null)
                {
                    var errorMsg = await response.Content.ReadAsStringAsync();

                    return(Response.Unsuccesfull(response, errorMsg));
                }
                return(Response.Unsuccesfull(response, response.ReasonPhrase));
            }
            return(Response.Succes());
        }
        public async Task UpdateBookingCommand_ShouldThrowDoubleBookingException()
        {
            //Arrange
            var userId = await RunAsDefaultUserAsync();

            var subjectId = await SendAsync(new CreateSubjectCommand { Name = "Wizardry" });

            var extraClassId1 = await SendAsync(new CreateExtraClassCommand
            {
                Name      = "Gandalf's class",
                SubjectId = subjectId,
                Size      = 2,
                Price     = 500,
                Duration  = TimeSpan.FromMinutes(60),
                Date      = DateTime.Now,
            });

            var extraClassId2 = await SendAsync(new CreateExtraClassCommand
            {
                Name      = "Saruman's class",
                SubjectId = subjectId,
                Size      = 2,
                Price     = 500,
                Duration  = TimeSpan.FromMinutes(60),
                Date      = DateTime.Now
            });

            var bookingId1 = await SendAsync(new CreateBookingCommand { ExtraClassId = extraClassId1 });

            var bookingId2 = await SendAsync(new CreateBookingCommand { ExtraClassId = extraClassId2 });

            var command = new UpdateBookingCommand {
                Id = bookingId1, ExtraClassId = extraClassId2, Price = 500, Paid = false
            };

            //Assert
            FluentActions.Invoking(() =>
                                   SendAsync(command)).Should().Throw <DoubleBookingException>();
        }
        public async Task UpdateBookingCommand_ShouldUpdateBooking()
        {
            var userId = await RunAsDefaultUserAsync();

            var subjectId = await SendAsync(new CreateSubjectCommand { Name = "Wizardry" });

            var extraClassId = await SendAsync(new CreateExtraClassCommand
            {
                Name      = "Gandalf's class",
                SubjectId = subjectId,
                Size      = 1,
                Price     = 500,
                Duration  = TimeSpan.FromMinutes(60),
                Date      = DateTime.Now,
            });

            var bookingId = await SendAsync(new CreateBookingCommand { ExtraClassId = extraClassId });

            var command = new UpdateBookingCommand
            {
                Id           = bookingId,
                ExtraClassId = extraClassId,
                Paid         = true,
                Price        = 100
            };

            await SendAsync(command);

            var booking = await FindAsync <Booking>(bookingId);

            booking.Paid.Should().BeTrue();
            booking.BookingPrice.Should().Be(100);
            booking.LastModifiedBy.Should().NotBeNull();
            booking.LastModifiedBy.Should().Be(userId);
            booking.LastModified.Should().NotBeNull();
            booking.LastModified.Should().BeCloseTo(DateTime.Now, 10000);
        }
예제 #9
0
        public async Task <IActionResult> Update([FromBody] UpdateBookingCommand command)
        {
            await Mediator.Send(command);

            return(NoContent());
        }
예제 #10
0
 public async Task <JsonResult> Post([FromQuery] int id, [FromBody] UpdateBookingCommand command)
 {
     command.BookingId = id;
     return(await ApiResponseHelper.RunCommandAsync(command));
 }
예제 #11
0
        public Task UpdateAsync(Booking booking)
        {
            var command = new UpdateBookingCommand(booking);

            return(command.ApplyAsync(context));
        }