1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- using Avalonia.Controls.Documents;
- using Avalonia.Platform;
- using Shaker.Models;
- using System;
- using System.Collections.Generic;
- using System.Diagnostics.CodeAnalysis;
- using System.Text;
- using System.Threading.Tasks;
- using System.Xml.Linq;
- namespace ShakerApp.ViewModels
- {
- internal class DataReviewViewModel:DisplayViewModelBase<IModel>
- {
- private Dictionary<MainPageType, IDataReviewItem> DataReviews = new Dictionary<MainPageType, IDataReviewItem>();
- [AllowNull]
- private IDataReviewItem currentDataReview;
- public IDataReviewItem GetDataReview(string path)
- {
- var type = GetMainPageType(path);
- return DataReviews[type];
- }
- public static MainPageType GetMainPageType(string path)
- {
- try
- {
- var tdmsfile = TDMS.TDMSDataBuilder.OpenExisting(path);
- if(tdmsfile!=null)
- {
- tdmsfile.TryGetProperty<string>(nameof(MainPageViewModel.MainPageType), out var type);
- tdmsfile.Close();
- return Enum.Parse<MainPageType>(type);
- }
- }
- catch
- {
- }
- return MainPageType.StartPage;
- }
- private DataReviewViewModel()
- {
- DataReviews[MainPageType.StartPage] = StartPageDataReviewViewModel.Instance;
- DataReviews[MainPageType.RandomPage] = RandomDataReviewViewModel.Instance;
- DataReviews[MainPageType.SinePage] = SineDataReviewViewModel.Instance;
- DataReviews[MainPageType.OutSignal] = OutSignalDataReviewViewModel.Instance;
- CurrentDataReview = DataReviews[MainPageType.StartPage];
- Content = typeof(Views.DataReviewView);
- }
- static DataReviewViewModel()
- {
- }
- public IDataReviewItem CurrentDataReview { get => currentDataReview; set =>SetProperty(ref currentDataReview , value); }
- public static DataReviewViewModel Instance { get; } = new DataReviewViewModel();
- public void OpenFile(string path)
- {
- CurrentDataReview?.CloseFile();
- MainPageType maintype = MainPageType.StartPage;
- try
- {
- var tdmsfile = TDMS.TDMSDataBuilder.OpenExisting(path);
- if (tdmsfile != null)
- {
- if (tdmsfile.IsOpen)
- {
- tdmsfile.TryGetProperty<string>(nameof(MainPageViewModel.MainPageType), out var type);
- if(string.IsNullOrEmpty(type))
- {
- tdmsfile?.Close();
- CurrentDataReview = DataReviews[MainPageType.StartPage];
- return;
- }
- maintype = Enum.Parse<MainPageType>(type);
- CurrentDataReview = DataReviews[maintype];
- CurrentDataReview.InitData(tdmsfile);
- return;
- }
- else
- {
- tdmsfile?.Close();
- }
- }
- }
- catch
- {
- }
- CurrentDataReview = DataReviews[MainPageType.StartPage];
- }
- public void CloseFile()
- {
- CurrentDataReview?.CloseFile();
- CurrentDataReview = DataReviews[MainPageType.StartPage];
- }
- }
- }
|