public ExpenditureAppInputViewModel(Action <string, string> messageForUser, Func <string, string, bool> decisionForUser, IProvideExpenditureDataRecorder recorderFactory, IProvideExpenditureDataProvider dataProviderFactory)
        {
            recorder        = recorderFactory.GetExpenditureDataRecorder();
            dataProvider    = dataProviderFactory.GetExpenditureDataProvider();
            allDominantTags = new ObservableCollection <string>(dataProvider.GetDominantTags());

            allAssociatedTags    = new ObservableCollection <string>(dataProvider.GetAssociatedTags());
            allPeople            = new ObservableCollection <string>(dataProvider.GetPeople());
            this.messageForUser  = messageForUser;
            this.decisionForUser = decisionForUser;
        }
        public ExpenditureDataRecorderFactory(Func <string> getXmlFilePath, Action <string, string> messageForUser)
        {
            SettingsManager.CheckForXmlFileDirectory(getXmlFilePath, messageForUser);

            recorder = new RecordExpenditureDataXml(DataStorage.Default.xmlFileDirectory);
        }