public PersonViewModel(IPropertyProviderFactory propertyProviderFactory, IMessageBus messageBus, IDialogService dialogService, Person model) { _model = model; var pp = propertyProviderFactory.Create <IPersonViewModel>(this); // creating properties _name = pp.CreateProperty(i => i.Name, model.Name); _surname = pp.CreateProperty(i => i.Surname, model.Surname); _age = pp.CreateProperty(i => i.Age, model.Age); _address1 = pp.CreateProperty(i => i.Address1, model.Address1); _address2 = pp.CreateProperty(i => i.Address2, model.Address2); _address3 = pp.CreateProperty(i => i.Address3, model.Address3); _city = pp.CreateProperty(i => i.City, model.City); // creating commands _editCommand = pp.CreateCommand <Unit>(i => i.EditCommand); _saveCommand = pp.CreateCommand <Unit>(i => i.SaveCommand, !string.IsNullOrEmpty(model.Name) && !string.IsNullOrEmpty(model.Surname)); _deleteCommand = pp.CreateCommand <Unit>(i => i.DeleteCommand); _closeCommand = pp.CreateCommand <Unit>(i => i.CloseCommand); // Observing commands ShouldDispose(_name.CombineLatest(_surname, (n, s) => !string.IsNullOrEmpty(n) && !string.IsNullOrEmpty(s)).Subscribe(_saveCommand.SetCanExecute)); ShouldDispose(_saveCommand.OnExecute.Subscribe(_ => { UpdateModel(); _closeSubject.OnNext(true); })); ShouldDispose(_editCommand.OnExecute.Subscribe(_ => dialogService.ShowViewModel("Edit Person", this))); ShouldDispose(_deleteCommand.OnExecute.Subscribe(_ => messageBus.Publish(new DeletePersonMessage(this)))); ShouldDispose(_closeCommand.OnExecute.Subscribe(_ => { ResetData(); _closeSubject.OnNext(false); })); }
public ObjectPropertyProvider(IPropertyProviderFactory <TInput> factory, IPropertyProvider <TInput, object> provider) { _factory = factory ?? throw new ArgumentNullException(nameof(factory)); _provider = provider ?? throw new ArgumentNullException(nameof(provider)); _converters = new ConcurrentDictionary <Type, Converter>(); }
public MainViewModel(IPropertyProviderFactory propertyProviderFactory, IMessageBus messageBus, IDialogService dialogService, IPersonRepository personRepository, IPersonViewModelFactory personViewModelFactory) { var pp = propertyProviderFactory.Create <IMainViewModel>(this); //create properies _isBusy = pp.CreateProperty(i => i.IsBusy, false); // create commands _addNewClientCommand = pp.CreateCommand <Unit>(i => i.AddNewClientCommand); Clients = new ObservableCollection <IPersonViewModel>(); IsBusy = true; ShouldDispose(personRepository.GetAllClients().ObserveOnDispatcher().Subscribe(c => { foreach (var item in c.Select(personViewModelFactory.Create)) { Clients.Add(item); } IsBusy = false; })); ShouldDispose(messageBus.Subscribe <DeletePersonMessage>(m => { var msg = string.Format("Are you sure you want to delete {0} {1}?", m.Person.Name, m.Person.Surname); if (dialogService.ShowWarning("Delte", msg) == MessageBoxResult.OK) { IsBusy = true; ShouldDispose(personRepository.Delete(m.Person.ToModel()) .ObserveOnDispatcher() .Subscribe(_ => { Clients.Remove(m.Person); IsBusy = false; })); } })); ShouldDispose(_addNewClientCommand.OnExecute.Subscribe(_ => { var newClient = personViewModelFactory.Create(new Person()); if (dialogService.ShowViewModel("New Person", newClient as ViewModelBase)) { IsBusy = true; ShouldDispose(personRepository.Save(newClient.ToModel()) .ObserveOnDispatcher() .Subscribe(u => { Clients.Add(newClient); IsBusy = false; })); } })); }
public MainViewModel(IPropertyProviderFactory propertyProviderFactory, IMessageBus messageBus, IDialogService dialogService, IPersonRepository personRepository, IPersonViewModelFactory personViewModelFactory) { var pp = propertyProviderFactory.Create<IMainViewModel>(this); //create properies _isBusy = pp.CreateProperty(i => i.IsBusy, false); // create commands _addNewClientCommand = pp.CreateCommand<Unit>(i => i.AddNewClientCommand); Clients = new ObservableCollection<IPersonViewModel>(); IsBusy = true; ShouldDispose(personRepository.GetAllClients().ObserveOnDispatcher().Subscribe(c => { foreach (var item in c.Select(personViewModelFactory.Create)) { Clients.Add(item); } IsBusy = false; })); ShouldDispose(messageBus.Subscribe<DeletePersonMessage>(m => { var msg = string.Format("Are you sure you want to delete {0} {1}?", m.Person.Name, m.Person.Surname); if (dialogService.ShowWarning("Delte", msg) == MessageBoxResult.OK) { IsBusy = true; ShouldDispose(personRepository.Delete(m.Person.ToModel()) .ObserveOnDispatcher() .Subscribe(_ => { Clients.Remove(m.Person); IsBusy = false; })); } })); ShouldDispose(_addNewClientCommand.OnExecute.Subscribe(_ => { var newClient = personViewModelFactory.Create(new Person()); if (dialogService.ShowViewModel("New Person", newClient as ViewModelBase)) { IsBusy = true; ShouldDispose(personRepository.Save(newClient.ToModel()) .ObserveOnDispatcher() .Subscribe(u => { Clients.Add(newClient); IsBusy = false; })); } })); }
public PersonViewModel(IPropertyProviderFactory propertyProviderFactory, IMessageBus messageBus, IDialogService dialogService, Person model) { _model = model; var pp = propertyProviderFactory.Create<IPersonViewModel>(this); // creating properties _name = pp.CreateProperty(i => i.Name, model.Name); _surname = pp.CreateProperty(i => i.Surname, model.Surname); _age = pp.CreateProperty(i => i.Age, model.Age); _address1 = pp.CreateProperty(i => i.Address1, model.Address1); _address2 = pp.CreateProperty(i => i.Address2, model.Address2); _address3 = pp.CreateProperty(i => i.Address3, model.Address3); _city = pp.CreateProperty(i => i.City, model.City); // creating commands _editCommand = pp.CreateCommand<Unit>(i => i.EditCommand); _saveCommand = pp.CreateCommand<Unit>(i => i.SaveCommand, !string.IsNullOrEmpty(model.Name) && !string.IsNullOrEmpty(model.Surname)); _deleteCommand = pp.CreateCommand<Unit>(i => i.DeleteCommand); _closeCommand = pp.CreateCommand<Unit>(i => i.CloseCommand); // Observing commands ShouldDispose(_name.CombineLatest(_surname, (n,s) => !string.IsNullOrEmpty(n) && !string.IsNullOrEmpty(s)).Subscribe(_saveCommand.SetCanExecute)); ShouldDispose(_saveCommand.OnExecute.Subscribe(_ => { UpdateModel(); _closeSubject.OnNext(true); })); ShouldDispose(_editCommand.OnExecute.Subscribe(_ => dialogService.ShowViewModel("Edit Person", this))); ShouldDispose(_deleteCommand.OnExecute.Subscribe(_ => messageBus.Publish(new DeletePersonMessage(this)))); ShouldDispose(_closeCommand.OnExecute.Subscribe(_ => { ResetData(); _closeSubject.OnNext(false); })); }
public DefaultInitializerConvention() { _inputProperties = TypeMetadataCache <TInput> .Properties.ToDictionary(x => x.Name, StringComparer.OrdinalIgnoreCase); _providerFactory = new PropertyProviderFactory <TInput>(); }
public GenericController(IGenericService <TModel, TSaveDto, TReadDto> genericService, IMapper mapper, IValidator validator, IPropertyProviderFactory propertyProviderFactory) { _genericService = genericService; _mapper = mapper; _validator = validator; _propertyProvider = propertyProviderFactory.Create(typeof(TPropertyProvider)); _propertiesToInclude = _propertyProvider.GetModelPropertiesToInclude().ToArray(); _propertyInfoList = _propertyProvider.GetReadDtoPropertiesToDisplay(); }
public BrandController(IGenericService <Brand, BrandSaveDto, BrandReadDto> genericService, IMapper mapper, IValidator validator, IPropertyProviderFactory propertyProviderFactory) : base(genericService, mapper, validator, propertyProviderFactory) { }
public ObjectConverter(IPropertyProviderFactory <TInput> factory) { factory.TryGetPropertyConverter(out _converter); }
public DictionaryInitializerConvention() { _providerFactory = new PropertyProviderFactory <TInput>(); }
public GenderController(IGenericService <Gender, GenderSaveDto, GenderReadDto> genericService, IMapper mapper, IValidator validator, IPropertyProviderFactory propertyProviderFactory) : base(genericService, mapper, validator, propertyProviderFactory) { }
public CountryController(IGenericService <Country, CountrySaveDto, CountryReadDto> genericService, IMapper mapper, IValidator validator, IPropertyProviderFactory propertyProviderFactory) : base(genericService, mapper, validator, propertyProviderFactory) { }
public DefaultInitializerConvention() { _inputProperties = typeof(TInput).GetAllProperties().GroupBy(x => x.Name).ToDictionary(x => x.Key, x => x.Last(), StringComparer.OrdinalIgnoreCase); _providerFactory = new PropertyProviderFactory <TInput>(); }
public PersonViewModelFactory(IPropertyProviderFactory propertyProviderFactory, IMessageBus messageBus, IDialogService dialogService) { _propertyProviderFactory = propertyProviderFactory; _messageBus = messageBus; _dialogService = dialogService; }
public PropertyProviderInfo(string key, IPropertyProviderFactory factory) { this.Key = key; this.Factory = factory; }