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"); } }
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); }
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"); } }