/// <summary> /// Initialises a new instance of the <see cref="ReportsViewModel"/> class. /// </summary> /// <param name="dataModel"> /// The model object containing data set. /// </param> /// <param name="logger">the logger</param> public ReportsViewModel( IDataManager dataModel, IAsLogger logger) { this.PageSelector = new List <IPageSelector>(); this.calendarViewModel = new CalendarViewModel( logger, this.OpenEvent); this.eventReportViewModel = new EventReportViewModel( dataModel.FindBeastie); this.CurrentWorkspace = this.calendarViewModel; IPageSelector calendarSelector = new PageSelector( ReportsViewModel.CalendarSelector, this.NewPage); IPageSelector eventSelector = new PageSelector( ReportsViewModel.EventSelector, this.NewPage); this.PageSelector.Add(calendarSelector); this.PageSelector.Add(eventSelector); this.NewPage(ReportsViewModel.CalendarSelector); }
/// <summary> /// Initialises a new instance of the <see cref="BeastieDataFileFactory"/> class. /// </summary> /// <param name="dataManager">The data manager</param> public BeastieDataFileFactory( IAsLogger logger, IDataManager dataManager) { this.logger = logger; this.dataManager = dataManager; this.LoadAll(); }
/// <summary> /// Initialises a new instance of the <see cref="CalendarViewModel"/> class. /// </summary> /// <param name="logger">the logger</param> /// <param name="openEventCommand"> /// Command used to open an event. /// </param> public CalendarViewModel( IAsLogger logger, Action <string> openEventCommand) { this.logger = logger; this.openEventCommand = openEventCommand; this.Years = YearSearcher.FindRawYears(); this.MonthSelector = new ObservableCollection <IPageSelector>(); this.Events = new ObservableCollection <ICalendarItem>(); this.monthDictionary = new Dictionary <string, int>() { { "Jan", 1 }, { "Feb", 2 }, { "Mar", 3 }, { "Apr", 4 }, { "May", 5 }, { "Jun", 6 }, { "Jul", 7 }, { "Aug", 8 }, { "Sept", 9 }, { "Oct", 10 }, { "Nov", 11 }, { "Dev", 12 }, }; foreach (KeyValuePair <string, int> month in this.monthDictionary) { IPageSelector selector = new PageSelector( month.Key, this.NewPage); this.MonthSelector.Add(selector); } this.yearsIndex = this.Years.Count - 1; string monthName = this.monthDictionary.FirstOrDefault(x => x.Value == DateTime.Now.Month).Key; this.NewPage(monthName); }
/// <summary> /// Initialises a new instance of the <see cref="EventEntry"/> class. /// </summary> /// <param name="dataFileFactory">Data file factory</param> /// <param name="logger">the logger</param> public EventEntry( IBeastieDataFileFactory dataFileFactory, IAsLogger logger) { this.Observations = new ObservationManager(); this.logger = logger; this.rawPageData = XmlFileIo.ReadXml <BeastiePages>( $"{DataPath.BasePath}\\TestDataEntry.xml"); // Ensure that all data files exist. List <string> beastieNames = new List <string>(); foreach (Page page in this.rawPageData.Pages) { beastieNames.AddRange(page.Beasties); } dataFileFactory.CheckFiles( beastieNames); }
/// <summary> /// Initialises a new instance of the <see cref="BodyViewModel"/> class. /// </summary> /// <param name="dataEntryModel"> /// The model object associated with the data entry process. /// </param> /// <param name="dataModel"> /// The model object containing data set. /// </param> /// <param name="fileFactory">beastie file factory</param> /// <param name="logger">the logger</param> public BodyViewModel( IEventEntry dataEntryModel, IDataManager dataModel, IBeastieDataFileFactory fileFactory, IAsLogger logger) { this.configurationViewModel = new ConfigurationViewModel( dataModel, fileFactory); this.consistencyViewModel = new ConsistencyViewModel(); this.reportsViewModel = new ReportsViewModel( dataModel, logger); this.dataEntryViewModel = new DataEntryViewModel( dataEntryModel, dataModel.FindBeastie); this.currentView = this.dataEntryViewModel; Messenger.Default.Register <MainViewMessage>(this, this.ChangeView); }