コード例 #1
0
        private void EditItemCommandExecuted(EventItemModel item)
        {
            RaisePropertyChanged("DisableParentWindow");

            if (item.Instance.GetType() == typeof(EventCateringModel))
            {
                var model = (EventCateringModel)item.Instance;

                var window = new AddCateringItemView(Event, model, AlreadyBookedCaterings, AlreadyBookedRooms);
                window.ShowDialog();


                if (window.DialogResult != null && window.DialogResult.Value)
                {
                    AlreadyBookedCaterings.Remove(model);
                    EventItemsAlreadyBooked.Remove(item);
                    _event.Event.LastEditDate = DateTime.Now;
                    _event.RefreshItems();
                }
            }
            else if (item.Instance.GetType() == typeof(EventGolfModel))
            {
                var model = (EventGolfModel)item.Instance;

                var window = new AddEventGolfItemView(Event, model, AlreadyBookedGolfs);
                window.ShowDialog();

                if (window.DialogResult != null && window.DialogResult.Value)
                {
                    AlreadyBookedGolfs.Remove(model);
                    EventItemsAlreadyBooked.Remove(item);
                    _event.Event.LastEditDate = DateTime.Now;
                    _event.RefreshItems();
                }
            }
            else if (item.Instance.GetType() == typeof(EventRoomModel))
            {
                var model = (EventRoomModel)item.Instance;

                var window = new AddRoomItemView(Event, model, AlreadyBookedCaterings, AlreadyBookedRooms);
                window.ShowDialog();

                if (window.DialogResult != null && window.DialogResult.Value)
                {
                    AlreadyBookedRooms.Remove(model);
                    EventItemsAlreadyBooked.Remove(item);
                    _event.Event.LastEditDate = DateTime.Now;
                    _event.RefreshItems();
                }
            }

            RaisePropertyChanged("EnableParentWindow");
            if (EventItemsAlreadyBooked.Count == 0)
            {
                RaisePropertyChanged("CloseDialog");
            }
        }
コード例 #2
0
        private async void SubmitEventCommandExecuted()
        {
            IsBusy   = true;
            BusyText = "Processing";

            //Set the Items Count on change of Number of Places
            SetItemsCountOnPlacesChange();

            //Check whether the Sum of Invoived and Uninvoiced Items is equal or not
            if (!IsInvoicedandUnInvoicedPriceEquals())
            {
                IsBusy = false;
                return;
            }

            //Check whether the resources are available
            await ValidateResourcesAvailability();

            if (AlreadyBookedEventItems.Count > 0)
            {
                var alreadyBookedWindow = new EventItemsAlreadyBooked(Event, AlreadyBookedCaterings, AlreadyBookedRooms, AlreadyBookedGolfs, AlreadyBookedEventItems);
                RaisePropertyChanged("DisableParentWindow");
                alreadyBookedWindow.ShowDialog();
                RaisePropertyChanged("EnableParentWindow");
                if (alreadyBookedWindow.DialogResult == null || !alreadyBookedWindow.DialogResult.Value)
                {
                    IsBusy = false;
                    return;
                }
            }
            if (_isEditMode)
            {
                var eventUpdates = LoggingService.FindDifference(_originalEvent, _event);
                ProcessUpdates(_event, eventUpdates);
                _event.Event.LastEditDate = DateTime.Now;
                // Release lock
                _event.Event.LockedUserID = null;
            }
            else
            {
                _eventsDataUnit.EventsRepository.Add(_event.Event);

                var update = new EventUpdate()
                {
                    ID       = Guid.NewGuid(),
                    EventID  = _event.Event.ID,
                    Date     = DateTime.Now,
                    UserID   = AccessService.Current.User.ID,
                    Message  = string.Format("Event {0} was created", _event.Name),
                    OldValue = null,
                    NewValue = _event.Name,
                    ItemId   = _event.Event.ID,
                    ItemType = "Event",
                    Field    = "Event",
                    Action   = UpdateAction.Added
                };
                _event.EventUpdates.Add(update);
                _eventsDataUnit.EventUpdatesRepository.Add(update);

                var eventUpdates = LoggingService.FindDifference(_originalEvent, _event, true);
                ProcessUpdates(_event, eventUpdates);
            }
            await _eventsDataUnit.SaveChanges();

            IsBusy = false;
            RaisePropertyChanged("CloseDialog");
            PopupService.ShowMessage(
                _isEditMode
                    ? Properties.Resources.MESSAGE_NEW_EVENT_UPDATED
                    : Properties.Resources.MESSAGE_NEW_EVENT_ADDED, MessageType.Successful);
        }
コード例 #3
0
        private void DeleteItemCommandExecuted(EventItemModel item)
        {
            bool?  dialogResult = null;
            string confirmText  = Properties.Resources.MESSAGE_ASK_BEFORE_DELETING_ITEM;

            RaisePropertyChanged("DisableParentWindow");

            RadWindow.Confirm(new DialogParameters()
            {
                Owner   = Application.Current.MainWindow,
                Content = confirmText,
                Closed  = (sender, args) => { dialogResult = args.DialogResult; }
            });

            RaisePropertyChanged("EnableParentWindow");

            if (dialogResult != true)
            {
                return;
            }

            if (item.Instance.GetType() == typeof(EventCateringModel))
            {
                var model = (EventCateringModel)item.Instance;

                // Remove booked products
                model.EventBookedProducts.ForEach(RemoveEventBookedProductAndCharges);
                AlreadyBookedCaterings.Remove(model);
                _event.EventCaterings.Remove(model);
                _eventsDataUnit.EventCateringsRepository.Delete(model.EventCatering);
            }
            else if (item.Instance.GetType() == typeof(EventGolfModel))
            {
                var model = (EventGolfModel)item.Instance;

                // Remove booked products
                model.EventBookedProducts.ForEach(RemoveEventBookedProductAndCharges);
                if (model.EventGolf.LinkedEventGolfId != null)
                {
                    if (model.EventGolf.EventGolf1 == null)
                    {
                        _eventsDataUnit.EventGolfsRepository.DetachGolfEvent((Guid)model.EventGolf.LinkedEventGolfId);
                    }
                    else
                    {
                        _eventsDataUnit.EventGolfsRepository.Delete(model.EventGolf.EventGolf1);
                    }
                }
                AlreadyBookedGolfs.Remove(model);
                _event.EventGolfs.Remove(model);
                _eventsDataUnit.EventGolfsRepository.Delete(model.EventGolf);
            }
            else if (item.Instance.GetType() == typeof(EventRoomModel))
            {
                var model = (EventRoomModel)item.Instance;

                // Remove booked products
                model.EventBookedProducts.ForEach(RemoveEventBookedProductAndCharges);
                AlreadyBookedRooms.Remove(model);
                _event.EventRooms.Remove(model);
                _eventsDataUnit.EventRoomsRepository.Delete(model.EventRoom);
            }
            EventItemsAlreadyBooked.Remove(item);
            _event.Event.LastEditDate = DateTime.Now;
            _event.RefreshItems();
            if (EventItemsAlreadyBooked.Count == 0)
            {
                RaisePropertyChanged("CloseDialog");
            }
        }