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;
        }
 /// <summary>
 /// Create a new EventBookedProduct object.
 /// </summary>
 /// <param name="id">Initial value of the ID property.</param>
 /// <param name="eventID">Initial value of the EventID property.</param>
 /// <param name="productID">Initial value of the ProductID property.</param>
 /// <param name="eventBookingItemID">Initial value of the EventBookingItemID property.</param>
 /// <param name="quantity">Initial value of the Quantity property.</param>
 /// <param name="price">Initial value of the Price property.</param>
 public static EventBookedProduct CreateEventBookedProduct(global::System.Guid id, global::System.Guid eventID, global::System.Guid productID, global::System.Guid eventBookingItemID, global::System.Int32 quantity, global::System.Double price)
 {
     EventBookedProduct eventBookedProduct = new EventBookedProduct();
     eventBookedProduct.ID = id;
     eventBookedProduct.EventID = eventID;
     eventBookedProduct.ProductID = productID;
     eventBookedProduct.EventBookingItemID = eventBookingItemID;
     eventBookedProduct.Quantity = quantity;
     eventBookedProduct.Price = price;
     return eventBookedProduct;
 }
Exemple #3
0
        private async void DuplicateEventCommandExecuted()
        {

            RaisePropertyChanged("DisableParentWindow");
            var addDuplicateView = new DuplicateView();
            addDuplicateView.ShowDialog();
            RaisePropertyChanged("EnableParentWindow");

            if (addDuplicateView.DialogResult != null && addDuplicateView.DialogResult == true)
            {
                var addDuplicateViewModel = addDuplicateView.DataContext as DuplicateViewModel;
                if (addDuplicateViewModel != null)
                {
                    IsBusy = true;

                    var fromEvent = SelectedEvent;

                    await LoadLightEventDetails(fromEvent);

                    // General event info
                    var toEvent = new Event()
                    {
                        ID = Guid.NewGuid(),
                        Name = addDuplicateViewModel.EventName,
                        Date = Convert.ToDateTime(addDuplicateViewModel.EventDate),
                        Places = fromEvent.Places,
                        ContactID = fromEvent.Event.ContactID,
                        EventTypeID = fromEvent.Event.EventTypeID,
                        EventType = fromEvent.Event.EventType,
                        EventStatusID = fromEvent.Event.EventStatusID,
                        EventStatus = fromEvent.Event.EventStatus,
                        CreationDate = DateTime.Now,
                        MembersOnly = fromEvent.Event.MembersOnly,
                        ShowInForwardBook = fromEvent.Event.ShowInForwardBook,
                        ShowOnCalendar = fromEvent.Event.ShowOnCalendar,
                        UsedAsTemplate = fromEvent.Event.UsedAsTemplate,
                        InvoiceAddress = fromEvent.Event.InvoiceAddress,
                        StartTime = fromEvent.StartTime,
                        EndTime = fromEvent.EndTime
                    };

                    var toEventModel = new EventModel(toEvent);
                    // Notes
                    if (!fromEvent.EventNotes.Any())
                    {
                        var notes = await _eventsDataUnit.EventNotesRepository.GetAllAsync(x => x.EventID == fromEvent.Event.ID);
                        fromEvent.EventNotes = new ObservableCollection<EventNoteModel>(notes.Select(x => new EventNoteModel(x)));
                    }

                    if (fromEvent.EventNotes.Any())
                    {
                        fromEvent.EventNotes.ForEach(x =>
                        {
                            var note = new EventNote()
                            {
                                ID = Guid.NewGuid(),
                                EventID = toEventModel.Event.ID,
                                EventNoteTypeID = x.EventNote.EventNoteTypeID,
                                UserID = x.EventNote.UserID,
                                Date = DateTime.Now,
                                Note = x.Note
                            };

                            _eventsDataUnit.EventNotesRepository.Add(note);
                            toEventModel.EventNotes.Add(new EventNoteModel(note));
                        });
                    }

                    // Altarnative Contacts
                    if (!fromEvent.EventContacts.Any())
                    {
                        var contacts = await _eventsDataUnit.EventContactsRepository.GetAllAsync(x => x.EventID == fromEvent.Event.ID);
                        fromEvent.EventContacts = new ObservableCollection<EventContact>(contacts);
                    }

                    if (fromEvent.EventContacts.Any())
                    {
                        fromEvent.EventContacts.ForEach(x =>
                        {
                            var contact = new EventContact()
                            {
                                ID = Guid.NewGuid(),
                                EventID = toEventModel.Event.ID,
                                ContactID = x.ContactID
                            };

                            _eventsDataUnit.EventContactsRepository.Add(contact);
                            toEventModel.EventContacts.Add(contact);
                        });
                    }

                    // Event Caterings
                    if (fromEvent.EventCaterings.Any())
                    {
                        fromEvent.EventCaterings.ForEach(x =>
                        {
                            var catering = new EventCatering()
                            {
                                ID = Guid.NewGuid(),
                                EventID = toEventModel.Event.ID,
                                Event = toEventModel.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 = toEventModel.Event.ID,
                                        ProductID = y.EventBookedProduct.ProductID,
                                        EventBookingItemID = catering.ID,
                                        Quantity = y.EventBookedProduct.Quantity,
                                        Price = y.EventBookedProduct.Price
                                    };

                                    var charge = new EventCharge()
                                    {
                                        ID = product.ID,
                                        EventID = toEventModel.Event.ID,
                                        ProductID = product.ProductID,
                                        Quantity = product.Quantity,
                                        Price = product.Price,
                                        ShowInInvoice = catering.ShowInInvoice
                                    };
                                    product.EventCharge = charge;

                                    _eventsDataUnit.EventBookedProductsRepository.Add(product);
                                    _eventsDataUnit.EventChargesRepository.Add(charge);
                                    toEventModel.EventBookedProducts.Add(new EventBookedProductModel(product));
                                    toEventModel.EventCharges.Add(new EventChargeModel(charge));
                                });
                            }
                            _eventsDataUnit.EventCateringsRepository.Add(catering);
                            toEventModel.EventCaterings.Add(new EventCateringModel(catering));
                        });
                    }

                    // Event Rooms
                    if (fromEvent.EventRooms.Any())
                    {
                        fromEvent.EventRooms.ForEach(x =>
                        {
                            var room = new EventRoom()
                            {
                                ID = Guid.NewGuid(),
                                EventID = toEventModel.Event.ID,
                                Event = toEventModel.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 = toEventModel.Event.ID,
                                        ProductID = y.EventBookedProduct.ProductID,
                                        EventBookingItemID = room.ID,
                                        Quantity = y.EventBookedProduct.Quantity,
                                        Price = y.EventBookedProduct.Price
                                    };

                                    var charge = new EventCharge()
                                    {
                                        ID = product.ID,
                                        EventID = toEventModel.Event.ID,
                                        ProductID = product.ProductID,
                                        Quantity = product.Quantity,
                                        Price = product.Price,
                                        ShowInInvoice = room.ShowInInvoice
                                    };
                                    product.EventCharge = charge;

                                    _eventsDataUnit.EventBookedProductsRepository.Add(product);
                                    _eventsDataUnit.EventChargesRepository.Add(charge);
                                    toEventModel.EventBookedProducts.Add(new EventBookedProductModel(product));
                                    toEventModel.EventCharges.Add(new EventChargeModel(charge));
                                });
                            }
                            _eventsDataUnit.EventRoomsRepository.Add(room);
                            toEventModel.EventRooms.Add(new EventRoomModel(room));
                        });
                    }

                    // Event Golfs
                    var fromEventGolfs = fromEvent.EventGolfs.Where(eventGolf => !eventGolf.EventGolf.IsLinked);
                    if (fromEventGolfs.Any())
                    {
                        fromEventGolfs.ForEach(x =>
                        {
                            var golf = new EventGolf()
                            {
                                ID = Guid.NewGuid(),
                                EventID = toEventModel.Event.ID,
                                Event = toEventModel.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 = toEventModel.Event.ID,
                                Event = toEventModel.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 = toEventModel.Event.ID,
                                        ProductID = y.EventBookedProduct.ProductID,
                                        EventBookingItemID = golf.ID,
                                        Quantity = y.EventBookedProduct.Quantity,
                                        Price = y.EventBookedProduct.Price
                                    };

                                    var charge = new EventCharge()
                                    {
                                        ID = product.ID,
                                        EventID = toEventModel.Event.ID,
                                        ProductID = product.ProductID,
                                        Quantity = product.Quantity,
                                        Price = product.Price,
                                        ShowInInvoice = golf.ShowInInvoice
                                    };
                                    product.EventCharge = charge;

                                    _eventsDataUnit.EventBookedProductsRepository.Add(product);
                                    _eventsDataUnit.EventChargesRepository.Add(charge);
                                    toEventModel.EventBookedProducts.Add(new EventBookedProductModel(product));
                                    toEventModel.EventCharges.Add(new EventChargeModel(charge));
                                });
                            }

                            _eventsDataUnit.EventGolfsRepository.Add(golf);
                            toEventModel.EventGolfs.Add(new EventGolfModel(golf));
                        });
                    }

                    // Event Invoices
                    if (fromEvent.EventInvoices.Any())
                    {
                        fromEvent.EventInvoices.ForEach(x =>
                        {
                            var invoice = new EventInvoice()
                            {
                                ID = Guid.NewGuid(),
                                EventID = toEventModel.Event.ID,
                                Event = toEventModel.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 = toEventModel.Event.ID,
                                        ProductID = y.EventBookedProduct.ProductID,
                                        EventBookingItemID = invoice.ID,
                                        Quantity = y.EventBookedProduct.Quantity,
                                        Price = y.EventBookedProduct.Price
                                    };

                                    var charge = new EventCharge()
                                    {
                                        ID = product.ID,
                                        EventID = toEventModel.Event.ID,
                                        ProductID = product.ProductID,
                                        Quantity = product.Quantity,
                                        Price = product.Price,
                                        ShowInInvoice = invoice.ShowInInvoice
                                    };
                                    product.EventCharge = charge;

                                    _eventsDataUnit.EventBookedProductsRepository.Add(product);
                                    _eventsDataUnit.EventChargesRepository.Add(charge);
                                    toEventModel.EventBookedProducts.Add(new EventBookedProductModel(product));
                                    toEventModel.EventCharges.Add(new EventChargeModel(charge));
                                });
                            }
                            _eventsDataUnit.EventInvoicesRepository.Add(invoice);
                            toEventModel.EventInvoices.Add(new EventInvoiceModel(invoice));
                        });
                    }

                    _eventsDataUnit.EventsRepository.DetectChanges();
                    toEventModel.RefreshItems();
                    RaisePropertyChanged("DisableParentWindow");
                    var bookingView = new BookingView(BookingViews.Event, toEventModel, true);
                    bookingView.ShowDialog();
                    RaisePropertyChanged("EnableParentWindow");

                    // Refresh grid if event was added
                    if (bookingView.DialogResult != null && bookingView.DialogResult == true)
                    {
                        var eventBookingView = bookingView.ViewModel.Content as EventBookingView;
                        _allEvents.Add(eventBookingView.ViewModel.Event);
                        _allEvents = new List<EventModel>(_allEvents.OrderBy(x => x.Date));
                        Events = new ObservableCollection<EventModel>(_allEvents);
                        UpdateEventsDataRange();
                        RefreshAppointments();
                    }
                    IsBusy = false;
                }
            }
        }
 /// <summary>
 /// Deprecated Method for adding a new object to the EventBookedProducts EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToEventBookedProducts(EventBookedProduct eventBookedProduct)
 {
     base.AddObject("EventBookedProducts", eventBookedProduct);
 }
        public EventBookedProductModel(EventBookedProduct eventBookedProduct)
        {
            IncVat = true;
            EventBookedProduct = eventBookedProduct;

            _product = eventBookedProduct.Product;

            EventCharge = new EventChargeModel(EventBookedProduct.EventCharge);
        }