public async Task <ActionResult <CounterpartyViewModel> > Post([FromBody] CounterpartyViewModel counterpartyVM, [FromServices] IDadataService dadataService) { //validation rules set in AccountViewModel if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //get account from Dadata.ru by Inn & Kpp and set account 'Fullname' var daDataResponce = await dadataService.GetAccountsById <FindByIdResponce>(counterpartyVM.Inn, counterpartyVM.Kpp, counterpartyVM.Type); if (!daDataResponce.suggestions.Any()) { return(BadRequest("Account not found in Dadata.ru!")); } else if (daDataResponce.suggestions.Count() > 1) { return(BadRequest("Finded more than one accounts with this params in Dadata.ru!")); } else { counterpartyVM.Fullname = daDataResponce.suggestions.First().data.name.full_with_opf; } var counterpartyId = _counterpartyService.Add(_mapper.Map <CounterpartyModel>(counterpartyVM)); return(CreatedAtAction(nameof(GetById), new { id = counterpartyId }, counterpartyVM)); }
/// <summary> /// By having the view model in the constructor it can be dependency injected /// </summary> /// <param name="viewModel"></param> public CounterpartyView(CounterpartyViewModel viewModel) { InitializeComponent(); this.Loaded += (s, e) => { this.DataContext = viewModel; }; }
public void TotalNumberOfCounterpartiesShouldBeTwo() { IUnityContainer container = new UnityContainer(); container.RegisterType <ICounterpartyRepository, MockCounterpartyRepository>(); container.RegisterType <ICounterpartyService, CounterpartyService>(); container.RegisterType <IEventAggregator, EventAggregator>(); CounterpartyViewModel vm = container.Resolve <CounterpartyViewModel>(); Assert.AreEqual(100, vm.Counterparties.Count()); }
public void AnEventIsPublishedWhenTheSelectedCounterpartyChanges() { var mockEventAggregator = new Mock <IEventAggregator>(); var mockCounterpartyService = new Mock <ICounterpartyService>(); mockCounterpartyService.Setup(s => s.FindAll()).Returns(new List <Counterparty>()); mockEventAggregator.Setup(s => s.GetEvent <CounterpartyChangeEvent>()).Returns(new CounterpartyChangeEvent()); var mockCounterparty = new Mock <Counterparty>(); mockCounterparty.Object.Id = 1; mockCounterparty.Object.Code = "Test"; CounterpartyViewModel vm = new CounterpartyViewModel(mockCounterpartyService.Object, mockEventAggregator.Object); vm.SelectedCounterparty = mockCounterparty.Object; ICommand cmd = vm.SelectionChangedCommand; cmd.Execute(mockCounterparty.Object); mockEventAggregator.Verify(e => e.GetEvent <CounterpartyChangeEvent>(), Times.Once()); }