123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- 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);
- ButtonVisibily = false;
- }
- 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];
- }
- }
- }
|