public PersonEventRoomAssociation(Person person, EventRoom eventRoom) : this()
 {
     PersonId    = person.Id;
     Person      = person;
     EventRoomId = eventRoom.Id;
     EventRoom   = eventRoom;
 }
Example #2
0
    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);
        }
Example #4
0
 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;
 }
Example #5
0
 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();
 }
Example #6
0
        private void ProcessEventRoom(EventRoomModel roomModel)
        {
            _isEditMode = (roomModel != null);

            EventRoom = (_isEditMode) ? roomModel : GetEventRoom();
            if (_isEditMode)
            {
                CreateClockItems();
                EventRoomOriginal = EventRoom.Clone();
            }
            EventRoom.PropertyChanged += OnEventBookedProductModelPropertyChanged;
        }
Example #7
0
 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();
     }
 }
Example #8
0
    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?
    }
Example #9
0
 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;
 }
Example #11
0
        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");
            }
        }
Example #12
0
        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;
        }
Example #13
0
 public CompositionAdapter()
 {
     _eventRoom = new EventRoom();
     EventRoom  = _eventRoom;
 }
Example #14
0
 public void InsertRoom(EventRoom item)
 {
     _eventRoomRepository.Insert(item);
 }