public PersonEventRoomAssociation(Person person, EventRoom eventRoom) : this() { PersonId = person.Id; Person = person; EventRoomId = eventRoom.Id; EventRoom = eventRoom; }
void DetermineEventRoom() { List <string> roomNames = new List <string>(); int rand = Random.Range(0, eventRoomPrefabs.Count); EventRoom currentEventRoom = Instantiate(eventRoomPrefabs[rand]) as EventRoom; currentEventRoom.transform.parent = this.transform; if (placedEventRooms.Count > 0) { foreach (EventRoom eventRoom in placedEventRooms) { roomNames.Add(eventRoom.roomName); } if (roomNames.Contains(currentEventRoom.roomName)) { print("Error: Match"); Destroy(currentEventRoom.gameObject); StartCoroutine(EventRoomPlacement()); } else { //print(_name + " / " + currentEventRoom.roomName + ": no match"); PlaceEventRoom(currentEventRoom); } } else { PlaceEventRoom(currentEventRoom); } }
public async Task <EventRoom> Create(CreateEventRoomCommand command) { var eventRoom = new EventRoom(command); await _eventRoomRepository .AddAsync(eventRoom); return(eventRoom); }
private void MapChangedDataAfterRefresh(EventRoom eventRoomOriginal, EventRoom eventRoomChanged) { eventRoomOriginal.RoomID = eventRoomChanged.RoomID; eventRoomOriginal.StartTime = eventRoomChanged.StartTime; eventRoomOriginal.EndTime = eventRoomChanged.EndTime; eventRoomOriginal.ShowInInvoice = eventRoomChanged.ShowInInvoice; eventRoomOriginal.IncludeInForwardBook = eventRoomChanged.IncludeInForwardBook; eventRoomOriginal.IncludeInCorrespondence = eventRoomChanged.IncludeInCorrespondence; eventRoomOriginal.Notes = eventRoomChanged.Notes; }
public EventRoomWithDetailsResponse(EventRoom eventRoom) { EventRoomId = eventRoom.Id; Name = eventRoom.Name; Capacity = eventRoom.Capacity; RegisteredPersons = eventRoom .PersonEventRoomAssociations .Select(s => s.Person) .Select(s => new PersonResponse(s)) .ToList(); }
private void ProcessEventRoom(EventRoomModel roomModel) { _isEditMode = (roomModel != null); EventRoom = (_isEditMode) ? roomModel : GetEventRoom(); if (_isEditMode) { CreateClockItems(); EventRoomOriginal = EventRoom.Clone(); } EventRoom.PropertyChanged += OnEventBookedProductModelPropertyChanged; }
public void CancelCommandExecuted() { if (_isEditMode) { MapChangedDataAfterRefresh(EventRoom.EventRoom, EventRoomOriginal.EventRoom); EventRoom.Room = Rooms.FirstOrDefault(p => p.ID == EventRoomOriginal.Room.ID); EventRoom.Refresh(); } else { _eventDataUnit.RevertChanges(); } }
void PlaceEventRoom(EventRoom currentEventRoom) { // Create doorway lists to loop over List <Doorway> currentAvailableDoorways = new List <Doorway>(allAvailableDoorways); Doorway doorwayEntrance = currentEventRoom.doorways[0]; Doorway doorwayExit = currentEventRoom.doorways[1]; bool roomPlaced = false; // Try all available doorways foreach (Doorway availableDoorway in currentAvailableDoorways) { Room room = (Room)currentEventRoom; PositionRoomAtDoorway(ref room, doorwayEntrance, availableDoorway); // Check room overlaps if (CheckRoomOverlap(currentEventRoom)) { // If overlap detected - skip to next iteration of the loop continue; } // No overlap, set this to true and... roomPlaced = true; placedEventRooms.Add(currentEventRoom); // Remove occupied doorways doorwayEntrance.gameObject.SetActive(false); allAvailableDoorways.Remove(doorwayEntrance); availableDoorway.gameObject.SetActive(false); allAvailableDoorways.Remove(availableDoorway); currentEventRoom.LoadPrefabEvent(); currentEventRoom.onRoomCompleteDelegate += ContinueLevelGeneration; // Exit loop if room has been placed. if (roomPlaced) { break; } } // Room couldn't be placed. Restart. if (!roomPlaced) { ResetLevelGenerator(); } // WAIT UNTIL PLAYER HAS COMPLETED THE EVENT ROOM TO CONTINUE GENERATING LEVEL? }
public EventRoomModel(EventRoom eventRoom) { _eventRoom = eventRoom; EventBookedProducts = new ObservableCollection <EventBookedProductModel>(); _room = eventRoom.Room; }
public EvetRoomResponse(EventRoom eventRoom) { EventRoomId = eventRoom.Id; Name = eventRoom.Name; Capacity = eventRoom.Capacity; }
private async void SubmitCommandExecuted() { SetLoadingIndicator(true); if (EventRoom.HasErrors) { SetLoadingIndicator(false); return; } var eventRoom = EventRoom.Clone(); EventRoom.EventRoom.Event = _event.Event; _eventDataUnit.EventRoomsRepository.Refresh(RefreshMode.ClientWins); var rooms = await _eventDataUnit.EventRoomsRepository.GetAllAsync(eRoom => !eRoom.Event.IsDeleted && eRoom.EventID != _event.Event.ID && eRoom.Event.Date == _event.Event.Date && eRoom.RoomID == EventRoom.Room.ID); rooms = _eventDataUnit.EventRoomsRepository.SetRoomsCurrentValues(rooms).ToList(); var eventRooms = rooms.Select(x => new EventRoomModel(x)).ToList(); if (AlreadyBookedRooms != null) { AlreadyBookedRooms.ForEach(alreadyBookedItem => { eventRooms.RemoveAll(p => p.EventRoom.ID == alreadyBookedItem.EventRoom.ID); }); } eventRooms.RemoveAll(x => x.EventRoom.ID == _eventRoom.EventRoom.ID); _eventDataUnit.EventCateringsRepository.Refresh(RefreshMode.ClientWins); var caterings = await _eventDataUnit.EventCateringsRepository.GetAllAsync(eCatering => !eCatering.Event.IsDeleted && eCatering.EventID != _event.Event.ID && eCatering.Event.Date == _event.Event.Date && eCatering.RoomID == EventRoom.Room.ID); caterings = _eventDataUnit.EventCateringsRepository.SetCateringsCurrentValues(caterings).ToList(); var eventCaterings = caterings.Select(x => new EventCateringModel(x)).ToList(); if (AlreadyBookedCaterings != null) { AlreadyBookedCaterings.ForEach(alreadyBookedItem => { eventCaterings.RemoveAll(p => p.EventCatering.ID == alreadyBookedItem.EventCatering.ID); }); } var bookingService = new BookingsService { BookedRooms = eventRooms, BookedCaterings = eventCaterings }; MapChangedDataAfterRefresh(EventRoom.EventRoom, eventRoom.EventRoom); var startTime = new DateTime(_event.Date.Year, _event.Date.Month, _event.Date.Day, _eventRoom.StartTime.Hour, _eventRoom.StartTime.Minute, 0); var endTime = new DateTime(_event.Date.Year, _event.Date.Month, _event.Date.Day, _eventRoom.EndTime.Hour, _eventRoom.EndTime.Minute, 0); bool bookingAllowed = bookingService.IsRoomAvailable(_event.Event.ID, EventRoom.Room, startTime, endTime); if (!bookingAllowed && EventRoom.Room.MultipleBooking) { bool? dialogResult = null; string confirmText = Resources.MESSAGE_ROOM_IS_BOOKED_BUT_SOPPORTS_MULTIBOOKING; RadWindow.Confirm(new DialogParameters { Owner = Application.Current.MainWindow, Content = confirmText, Closed = (sender, args) => { dialogResult = args.DialogResult; } }); if (dialogResult != true) { SetLoadingIndicator(false); return; } bookingAllowed = true; } if (bookingAllowed && EventRoom.HasValidProducts) { if (!_isEditMode) { _event.EventRooms.Add(EventRoom); _eventDataUnit.EventRoomsRepository.Add(EventRoom.EventRoom); foreach (var product in EventRoom.EventBookedProducts) { product.EventCharge.EventCharge.ShowInInvoice = EventRoom.EventRoom.ShowInInvoice; _event.EventCharges.Add(product.EventCharge); _eventDataUnit.EventChargesRepository.Add(product.EventCharge.EventCharge); _event.EventBookedProducts.Add(product); _eventDataUnit.EventBookedProductsRepository.Add(product.EventBookedProduct); } } else { EventRoom.EventBookedProducts.ForEach(eventBookedProduct => { eventBookedProduct.EventCharge.EventCharge.ShowInInvoice = EventRoom.EventRoom.ShowInInvoice; }); var newProdcuts = _eventRoom.EventBookedProducts.Except(_event.EventBookedProducts).ToList(); if (newProdcuts.Any()) { foreach (var prodcut in newProdcuts) { _event.EventBookedProducts.Add(prodcut); _eventDataUnit.EventBookedProductsRepository.Add(prodcut.EventBookedProduct); _event.EventCharges.Add(prodcut.EventCharge); _eventDataUnit.EventChargesRepository.Add(prodcut.EventCharge.EventCharge); } } } RaisePropertyChanged("CloseDialog"); } else { RaisePropertyChanged("DisableParentWindow"); string confirmText = Resources.MESSAGE_ROOM_IS_BOOKED; RadWindow.Alert(new DialogParameters { Owner = Application.Current.MainWindow, Content = confirmText, }); SetLoadingIndicator(false); RaisePropertyChanged("EnableParentWindow"); } }
private async void OKCommandExecuted() { IsBusy = true; var fromEvent = SelectedEvent; await LoadLightEventDetails(fromEvent); // Event Caterings if (fromEvent.EventCaterings.Any()) { fromEvent.EventCaterings.ForEach(x => { var catering = new EventCatering() { ID = Guid.NewGuid(), EventID = _event.Event.ID, Event = _event.Event, Time = x.EventCatering.Time, RoomID = x.EventCatering.RoomID, StartTime = x.EventCatering.StartTime, EndTime = x.EventCatering.EndTime, Notes = x.EventCatering.Notes, ShowInInvoice = x.EventCatering.ShowInInvoice, IncludeInForwardBook = x.EventCatering.IncludeInForwardBook, IncludeInCorrespondence = x.EventCatering.IncludeInCorrespondence, IsSpecial = x.EventCatering.IsSpecial }; var products = fromEvent.EventBookedProducts.Where(y => y.EventBookedProduct.EventBookingItemID == x.EventCatering.ID).ToList(); if (products.Any()) { products.ForEach(y => { var product = new EventBookedProduct() { ID = Guid.NewGuid(), EventID = _event.Event.ID, ProductID = y.EventBookedProduct.ProductID, Product = y.EventBookedProduct.Product, EventBookingItemID = catering.ID, Quantity = _event.Event.Places, Price = y.EventBookedProduct.Price }; var charge = new EventCharge() { ID = product.ID, EventID = _event.Event.ID, ProductID = product.ProductID, Quantity = product.Quantity, Price = product.Price, Product = product.Product, ShowInInvoice = catering.ShowInInvoice }; product.EventCharge = charge; _eventsDataUnit.EventBookedProductsRepository.Add(product); _eventsDataUnit.EventChargesRepository.Add(charge); _event.EventBookedProducts.Add(new EventBookedProductModel(product)); _event.EventCharges.Add(new EventChargeModel(charge)); }); } _eventsDataUnit.EventCateringsRepository.Add(catering); _event.EventCaterings.Add(new EventCateringModel(catering)); }); } // Event Rooms if (fromEvent.EventRooms.Any()) { fromEvent.EventRooms.ForEach(x => { var room = new EventRoom() { ID = Guid.NewGuid(), EventID = _event.Event.ID, Event = _event.Event, RoomID = x.EventRoom.RoomID, StartTime = x.EventRoom.StartTime, EndTime = x.EventRoom.EndTime, Notes = x.EventRoom.Notes, ShowInInvoice = x.EventRoom.ShowInInvoice, IncludeInForwardBook = x.EventRoom.IncludeInForwardBook, IncludeInCorrespondence = x.EventRoom.IncludeInCorrespondence, }; var products = fromEvent.EventBookedProducts.Where(y => y.EventBookedProduct.EventBookingItemID == x.EventRoom.ID).ToList(); if (products.Any()) { products.ForEach(y => { var product = new EventBookedProduct() { ID = Guid.NewGuid(), EventID = _event.Event.ID, ProductID = y.EventBookedProduct.ProductID, Product = y.EventBookedProduct.Product, EventBookingItemID = room.ID, Quantity = _event.Event.Places, Price = y.EventBookedProduct.Price }; var charge = new EventCharge() { ID = product.ID, EventID = _event.Event.ID, ProductID = product.ProductID, Quantity = product.Quantity, Price = product.Price, Product = product.Product, ShowInInvoice = room.ShowInInvoice }; product.EventCharge = charge; _eventsDataUnit.EventBookedProductsRepository.Add(product); _eventsDataUnit.EventChargesRepository.Add(charge); _event.EventBookedProducts.Add(new EventBookedProductModel(product)); _event.EventCharges.Add(new EventChargeModel(charge)); }); } _eventsDataUnit.EventRoomsRepository.Add(room); _event.EventRooms.Add(new EventRoomModel(room)); }); } // Event Golfs var fromEventGolfs = fromEvent.EventGolfs.Where(eventGolf => !eventGolf.EventGolf.IsLinked); if (fromEventGolfs.Any()) { fromEvent.EventGolfs.ForEach(x => { var golf = new EventGolf() { ID = Guid.NewGuid(), EventID = _event.Event.ID, Event = _event.Event, Time = x.EventGolf.Time, TeeID = x.EventGolf.TeeID, HoleID = x.EventGolf.HoleID, Slots = x.EventGolf.Slots, Notes = x.EventGolf.Notes, ShowInInvoice = x.EventGolf.ShowInInvoice, IncludeInForwardBook = x.EventGolf.IncludeInForwardBook, IncludeInCorrespondence = x.EventGolf.IncludeInCorrespondence, EventGolf1 = x.EventGolf.EventGolf1 != null ? new EventGolf() { ID = Guid.NewGuid(), EventID = _event.Event.ID, Event = _event.Event, Time = x.EventGolf.EventGolf1.Time, TeeID = x.EventGolf.EventGolf1.TeeID, HoleID = x.EventGolf.EventGolf1.HoleID, Slots = x.EventGolf.EventGolf1.Slots, Notes = x.EventGolf.EventGolf1.Notes, ShowInInvoice = x.EventGolf.EventGolf1.ShowInInvoice, IncludeInForwardBook = x.EventGolf.EventGolf1.IncludeInForwardBook, IncludeInCorrespondence = x.EventGolf.EventGolf1.IncludeInCorrespondence, IsLinked = true } : null }; var products = fromEvent.EventBookedProducts.Where(y => y.EventBookedProduct.EventBookingItemID == x.EventGolf.ID).ToList(); if (products.Any()) { products.ForEach(y => { var product = new EventBookedProduct() { ID = Guid.NewGuid(), EventID = _event.Event.ID, ProductID = y.EventBookedProduct.ProductID, Product = y.EventBookedProduct.Product, EventBookingItemID = golf.ID, Quantity = _event.Event.Places, Price = y.EventBookedProduct.Price }; var charge = new EventCharge() { ID = product.ID, EventID = _event.Event.ID, ProductID = product.ProductID, Product = product.Product, Quantity = product.Quantity, Price = product.Price, ShowInInvoice = golf.ShowInInvoice }; product.EventCharge = charge; _eventsDataUnit.EventBookedProductsRepository.Add(product); _eventsDataUnit.EventChargesRepository.Add(charge); _event.EventBookedProducts.Add(new EventBookedProductModel(product)); _event.EventCharges.Add(new EventChargeModel(charge)); }); } _eventsDataUnit.EventGolfsRepository.Add(golf); _event.EventGolfs.Add(new EventGolfModel(golf)); }); } // Event Invoices if (fromEvent.EventInvoices.Any()) { fromEvent.EventInvoices.ForEach(x => { var invoice = new EventInvoice() { ID = Guid.NewGuid(), EventID = _event.Event.ID, Event = _event.Event, Notes = x.EventInvoice.Notes, ShowInInvoice = x.EventInvoice.ShowInInvoice, IncludeInForwardBook = x.EventInvoice.IncludeInForwardBook, IncludeInCorrespondence = x.EventInvoice.IncludeInCorrespondence, }; var products = fromEvent.EventBookedProducts.Where(y => y.EventBookedProduct.EventBookingItemID == x.EventInvoice.ID).ToList(); if (products.Any()) { products.ForEach(y => { var product = new EventBookedProduct() { ID = Guid.NewGuid(), EventID = _event.Event.ID, ProductID = y.EventBookedProduct.ProductID, Product = y.EventBookedProduct.Product, EventBookingItemID = invoice.ID, Quantity = _event.Event.Places, Price = y.EventBookedProduct.Price }; var charge = new EventCharge() { ID = product.ID, EventID = _event.Event.ID, ProductID = product.ProductID, Product = product.Product, Quantity = product.Quantity, Price = product.Price, ShowInInvoice = invoice.ShowInInvoice }; product.EventCharge = charge; _eventsDataUnit.EventBookedProductsRepository.Add(product); _eventsDataUnit.EventChargesRepository.Add(charge); _event.EventBookedProducts.Add(new EventBookedProductModel(product)); _event.EventCharges.Add(new EventChargeModel(charge)); }); } _eventsDataUnit.EventInvoicesRepository.Add(invoice); _event.EventInvoices.Add(new EventInvoiceModel(invoice)); }); } RaisePropertyChanged("CloseDialog"); IsBusy = false; }
public CompositionAdapter() { _eventRoom = new EventRoom(); EventRoom = _eventRoom; }
public void InsertRoom(EventRoom item) { _eventRoomRepository.Insert(item); }