Exemple #1
0
        public virtual async Task <IActionResult> CreatePendingBooking([FromBody] PendingBookingDTO pendingBooking)
        {
            var result = new JsonResult <PendingBookingDTO>();

            try
            {
                var entity = pendingBooking.ToEntity();
                entity.Id                      = Guid.NewGuid();
                entity.Date                    = DateTime.Now;
                entity.ExpirationDate          = DateTime.Now.AddMinutes(2);
                entity.PendingBookingPositions = pendingBooking.Positions.Select(x => new PendingBookingPosition
                {
                    PendingBookingId       = entity.Id,
                    ServicePlacePositionId = x.Id
                }).ToList();
                entity = await _service.CreatePendingBookingAsync(entity);

                var dto = _mapper.Map <PendingBooking, PendingBookingDTO>(entity);
                await _hubContext.Clients.All.RecieveNewPendingBooking(dto);

                result.Success = true;
                result.Result  = dto;
            }
            catch (BookingException)
            {
                result.Message = "Valaki más már tett foglalást a kiválasztott hely(ek)re.";
            }
            catch
            {
                // TODO log
                result.Message = "A foglalási kérelmet nem lehet elindítani váratlan hiba miatt.";
            }
            return(Ok(result));
        }
Exemple #2
0
 public async Task SendPendingBooking(PendingBookingDTO pendingBooking)
 {
     await Clients.All.RecieveNewPendingBooking(pendingBooking);
 }