public AddProductGroupViewModel(ProductGroupModel productGroupModel) { var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve<IDataUnitLocator>(); _adminDataUnit = dataUnitLocator.ResolveDataUnit<IAdminDataUnit>(); OKCommand = new RelayCommand(OKCommandExecuted, OKCommandCanExecute); ProcessProductGroup(productGroupModel); }
public AddProductGroupView(ProductGroupModel productGroupModel) { InitializeComponent(); DataContext = ViewModel = new AddProductGroupViewModel(productGroupModel); ViewModel.PropertyChanged += ViewModelOnPropertyChanged; Owner = Application.Current.MainWindow; Loaded += OnViewLoaded; }
private void ProcessProductGroup(ProductGroupModel productGroupModel) { _isEditMode = (productGroupModel != null); ProductGroup = productGroupModel ?? GetNewProductGroup(); if (_isEditMode) TillDivision = productGroupModel.Till.TillDivision; ProductGroup.PropertyChanged += OnProductGroupPropertyChanged; }
private ProductGroupModel GetNewProductGroup() { var productGroupModel = new ProductGroupModel(new ProductGroup() { ID = Guid.NewGuid() }); return productGroupModel; }
private void EditProductGroupCommandExecuted(ProductGroupModel model) { RaisePropertyChanged("DisableParentWindow"); var view = new AddProductGroupView(model); view.ShowDialog(); RaisePropertyChanged("EnableParentWindow"); }
private async void DeleteProductGroupCommandExecuted(ProductGroupModel productGroupModel) { if (productGroupModel == null) return; bool? dialogResult = null; string confirmText = Properties.Resources.MESSAGE_ASK_BEFORE_DELETING_ITEM; RaisePropertyChanged("DisableParentWindow"); RadWindow.Confirm(confirmText, (sender, args) => { dialogResult = args.DialogResult; }); RaisePropertyChanged("EnableParentWindow"); if (dialogResult != true) return; // Check if product Group has dependencies if (productGroupModel.ProductGroup.Products.Any()) { var sb = new StringBuilder(); sb.AppendLine("Sorry, we can't delete this product group :("); sb.AppendLine("This product group already in use by these products:"); productGroupModel.ProductGroup.Products.Select(x => x.Name).ForEach(x => sb.AppendLine(string.Format("- {0}", x))); RaisePropertyChanged("DisableParentWindow"); RadWindow.Alert(sb.ToString()); RaisePropertyChanged("EnableParentWindow"); return; } // Delete product group _adminDataUnit.ProductGroupsRepository.Delete(productGroupModel.ProductGroup); await _adminDataUnit.SaveChanges(); ProductGroups.Remove(productGroupModel); }