private void SaveAssignment() { CheckInputIsValid(); _apt.BeginUpdate(); _apt.Location = txtNote.Text; _apt.ResourceId = (chkResources.EditValue as WIN.SCHEDULING_APPLICATION.DOMAIN.Booking.BookingResource).Id; _apt.Start = this.dtpIn.DateTime.Date; _apt.End = this.dtpOut.DateTime.Date; BookingResource res = chkResources.EditValue as WIN.SCHEDULING_APPLICATION.DOMAIN.Booking.BookingResource; BedType bed = cboLetti.EditValue as WIN.SCHEDULING_APPLICATION.DOMAIN.Booking.BedType; _apt.CustomFields["Resource"] = res; _apt.CustomFields["Booking"] = _parentBooking; _apt.CustomFields["BedType"] = bed; if (_isCreationOp) { _control.Storage.Appointments.Add(_apt); } _apt.EndUpdate(); }
public BookingResource CreateBooking(BookingResource booking, int flightId, int passengerId) { var existingFlight = _flightRepository.Get(flightId); var existingPassenger = _personRepository.Get(passengerId); if (existingFlight == null || existingPassenger == null) { return(null); } var newId = (_bookingRepository.GetAll().Max(b => b.Id)) + 1; var bookingToSave = _mapper.Map <BookingResource, Booking>(booking); bookingToSave.Flight = existingFlight; bookingToSave.Passengers = new List <Person> { existingPassenger }; bookingToSave.Id = newId; _bookingRepository.Save(bookingToSave); var savedBooking = _bookingRepository.Get(newId); return(_mapper.Map <Booking, BookingResource>(savedBooking)); }
public async Task <IActionResult> GetBookingByIdAsync( Guid bookingId, CancellationToken ct) { var userId = await _userService.GetUserIdAsync(User); if (userId == null) { return(NotFound()); } BookingResource booking = null; if (await _authzService.AuthorizeAsync(User, "ViewAllBookingsPolicy")) { booking = await _bookingService.GetBookingAsync(bookingId, ct); } else { booking = await _bookingService.GetBookingForUserIdAsync(bookingId, userId.Value, ct); } if (booking == null) { return(NotFound()); } return(Ok(booking)); }
public BookingResource DeleteBooking(int Id) { Booking dbBooking = service.DeleteBooking(Id); BookingResource b = new BookingResource().CopyPropertiesFrom(dbBooking); b.PersonResource = GetPersonResFromBooking(dbBooking); return(b); }
public BookingResource AddBooking(BookingDTO dto) { Booking toAdd = new Booking().CopyPropertiesFrom(dto); Booking dbBooking = service.AddBooking(toAdd); BookingResource b = new BookingResource().CopyPropertiesFrom(dbBooking); b.PersonResource = GetPersonResFromBooking(dbBooking); return(b); }
public List <BookingResource> GetBoookings() { return(service.GetBookings() .Select(x => { BookingResource b = new BookingResource().CopyPropertiesFrom(x); b.PersonResource = GetPersonResFromBooking(x); return b; }) .ToList()); }
public FreeRoomCheck IsRoomFree(DateTime start, DateTime end, BookingResource room, int assignmentID) { if (end <= start) { throw new Exception("Intervallo date non corretto per la verifica di assegnazioni già presenti"); } if (room == null) { throw new Exception("Stanza non specificata per la verifica di assegnazioni già presenti"); } end = end.Date; start = start.Date; //cerco tutte le assegnazioni per una data camera che intersecano strettamente il periodo considerato //cosi facendo ottengo tutte le assegnazioni che si sovrappongono ad una potenziale assegnazione nel periodo //considerato. //l'input assignmentId serve per il caso in cui sto aggiornando una assegnazione esistente e il check //va fatto non considerando la presenza dell'assegnazione in questione Query q = _ps.CreateNewQuery("MapperAssignment"); CompositeCriteria c = new CompositeCriteria(AbstractBoolCriteria.Operatore.AndOp); //criterio per la verifica della sovrapposizioe delle assegnazioni c.AddCriteria(Criteria.DateRangeStrictlyIntersects("StartDate", "EndDate", start, end, DataAccessServices.Instance().PersistenceFacade.DBType)); //criterio sulla camera c.AddCriteria(Criteria.Equal("Id_Resource", room.Id.ToString())); //in caso di modifica if (assignmentID > 0) { NotExp exp = new NotExp(Criteria.Equal("ID", assignmentID.ToString())); c.AddCriteria(exp); } q.AddWhereClause(c); string p = q.CreateQuery(_ps); IList results = q.Execute(_ps); FreeRoomCheck cc = new FreeRoomCheck(); cc.IsFree = results.Count == 0; if (cc.IsFree) { return(cc); } return(ConstructObject(results, cc, start, end, room)); }
public AppointmentTypeBuilder WithOptionalResource(BookingResource resource) { if (_optionalResources is null) { _optionalResources = new List <BookingResource>(); } _optionalResources.Add(resource); return(this); }
public ElementBuilder WithBookingResource(BookingResource value) { if (_property.OptionalResources == null) { _property.OptionalResources = new List <BookingResource>(); } _property.OptionalResources.Add(value); return(this); }
public BookingResource UpdateBooking(int Id, BookingDTO dto) { Booking toEdit = new Booking().CopyPropertiesFrom(dto); toEdit.Id = Id; Booking dbBooking = service.UpdateBooking(toEdit); BookingResource b = new BookingResource().CopyPropertiesFrom(dbBooking); b.PersonResource = GetPersonResFromBooking(dbBooking); return(b); }
public ActionResult Post([FromBody] BookingResource booking, [FromQuery] int?flightId, [FromQuery] int?passengerId) { if (booking == null || flightId == null || passengerId == null) { return(BadRequest()); } var createdBooking = _bookingService.CreateBooking(booking, (int)flightId, (int)passengerId); return(CreatedAtAction("Get", new { id = createdBooking.Id }, createdBooking)); }
private string ConstructMessage(string message1, ArrayList listOffreeDays, BookingResource room) { string message2 = string.Format("La stanza {0} non è disponibile nei giorni seguenti: {1}", room.Descrizione, Environment.NewLine); StringBuilder bb = new StringBuilder(); foreach (DateTime item in listOffreeDays) { bb.AppendLine(item.ToShortDateString()); } return(string.Format("{0}{1}{2}", message1, message2, bb.ToString())); }
private void schedulerStorage1_AppointmentChanging(object sender, PersistentObjectCancelEventArgs e) { try { Nested_CheckSecurityForChanging(); //qui verifico che l'appuntamento può essere cambiato Appointment app = e.Object as Appointment; BookingResourceHandler bc = new BookingResourceHandler(); BookingResource res = bc.GetElementById(app.ResourceId.ToString()) as BookingResource; Assignment ass = app.GetSourceObject(schedulerStorage1) as Assignment; AssignmentHandler hh = new AssignmentHandler(); FreeRoomCheck cc = hh.IsRoomFree(app.Start, app.End, res, ass.Id); if (!cc.IsFree) { XtraMessageBox.Show(cc.Message, "Attenzione", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); e.Cancel = true; } //if (XtraMessageBox.Show("Il prezzo verra' cambiato di conseguenza. Continuare?", "Domanda", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) //{ // e.Cancel = true; // return; //} //Appointment app1 = e.Object as Appointment; //Assignment aas1 = app1.GetSourceObject(schedulerStorage1) as Assignment; //if (aas1.Booking.Confirmed) //{ // aas1.Booking.Payment.Total = aas1.Booking.Payment.Total + 10; //} } catch (AccessDeniedException) { ErrorHandler.Show("Impossibile accedere alla funzionalità richiesta. Accesso negato"); e.Cancel = true; } catch (Exception ex) { ErrorHandler.Show(ex); e.Cancel = true; } }
public void CreateBookingReturnsNull() { var fakeBooking = new BookingResource { Id = 1, Number = "XYZ" }; var mockedMapper = GetMockedMapper(); var mockedPersonRepository = GetMockedPersonRepository(); var mockedBookingRepository = GetMockedBookingRepository(); var mockedFlightRepository = GetMockedFlightRepository(); var bookingService = new BookingService(mockedBookingRepository.Object, mockedFlightRepository.Object, mockedPersonRepository.Object, mockedMapper.Object); var result = bookingService.CreateBooking(fakeBooking, nonExistingFlightId, nonExistingPassengerId); Assert.Null(result); }
private FreeRoomCheck ConstructObject(IList results, FreeRoomCheck cc, DateTime start, DateTime end, BookingResource room) { string message1 = string.Format("La camera {0} risulta occupata nel periodo dal {1} al {2}{3}", room.Descrizione, start.ToShortDateString(), end.ToShortDateString(), Environment.NewLine); DateTime[] listOfDays = GetIntervalListOfDays(start, end); ArrayList listOffreeDays = new ArrayList(); foreach (DateTime item in listOfDays) { if (IsFreeDay(results, item)) { listOffreeDays.Add(item); } } if (listOffreeDays.Count == 0) { cc.Message = message1; } else { cc.Message = ConstructMessage(message1, listOffreeDays, room); } return(cc); }