public NationalityDetailViewModel(IEventAggregator eventAggregator,
                                          ILogger logger,
                                          ISimpleDomainService <Nationality, NationalityId> domainService,
                                          INationalityLookupDataService nationalityLookupDataService,
                                          IDialogService dialogService)
            : base(eventAggregator, logger, domainService, dialogService)
        {
            _nationalityLookupDataService = nationalityLookupDataService ?? throw new ArgumentNullException(nameof(nationalityLookupDataService));

            ChangeEditedNationalityCommand = new DelegateCommand <Guid?>(OnChangeEditedNationalityExecute);
            SaveItemCommand = new DelegateCommand(SaveItemExecute, base.SaveItemCanExecute)
                              .ObservesProperty(() => SelectedItem.Name);

            SelectedItem = CreateWrapper(domainService.CreateItem());

            Nations = new ObservableCollection <LookupItem>();

            UserMode = (!UserMode.Item1, DetailViewState.EditMode, Brushes.LightGray, !UserMode.Item4).ToTuple();
        }
 public LanguageController(ISimpleDomainService <Language, LanguageId> service, ILanguageLookupDataService languageLookupDataService)
 {
     _service = service ?? throw new ArgumentNullException(nameof(service));
     _languageLookupDataService = languageLookupDataService ?? throw new ArgumentNullException(nameof(languageLookupDataService));
 }