Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Plugin.FilePicker;
- using Plugin.FilePicker.Abstractions;
- using System;
- using System.ComponentModel;
- using System.Linq;
- using System.Threading.Tasks;
- using Xamarin.Forms;
- using XamarinTest.Models;
- namespace XamarinTest.ViewModel
- {
- //[QueryProperty(nameof(TxtConsole), nameof(TxtConsole))]
- public class ProjectVM : INotifyPropertyChanged
- {
- public event PropertyChangedEventHandler PropertyChanged;
- ProjectModel projectModel = new ProjectModel();
- string txtConsole;
- FrmMainModel mainModel;
- public string ReportAddress // Address of the ROVT reports
- {
- get => projectModel.m_sReportAddress;
- set
- {
- projectModel.m_sReportAddress = value;
- OnPropertyChanged("ReportAddress");
- }
- }
- public string TxtConsole
- {
- get => txtConsole;
- set
- {
- if (txtConsole != value)
- {
- txtConsole = value;
- OnPropertyChanged("TxtConsole");
- }
- }
- }
- public ProjectVM()
- {
- MessagingCenter.Subscribe(this, "Console", (FrmMainVM sender, string pMessage) =>
- {
- TxtConsole += pMessage;
- });
- MessagingCenter.Subscribe(this, "Data",(FrmMainVM sender, FrmMainModel pMainModel) =>
- {
- mainModel = pMainModel;
- });
- }
- protected void OnPropertyChanged(string propName)
- {
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName));
- }
- internal void generateReport()
- {
- projectModel.libSettings = ProgramSettings.ToLibSettings(mainModel.m_sBuildAddress, projectModel.m_sReportAddress, new ROVTools.LibSettings(), mainModel.m_Settings);
- var tools = new ROVTools.ROVTools();
- Task.Run(() =>
- {
- projectModel.displayableReports = tools.generateReports(projectModel.libSettings, out _);
- }).ContinueWith(x =>
- {
- TxtConsole = "Reports preparation is over.";
- switch (projectModel.libSettings.m_ResultReportType)
- {
- case ROVTools.ReportType.REPORT_FILE_SA:
- case ROVTools.ReportType.REPORT_FILE_NOSA:
- foreach (string s in ProjectModel.exportReportsToFiles(projectModel.displayableReports, projectModel.m_sReportAddress, projectModel.libSettings.m_Separator))
- {
- TxtConsole = s;
- }
- break;
- case ROVTools.ReportType.REPORT_TABLE_NOSA:
- case ROVTools.ReportType.REPORT_TABLE_SA:
- case ROVTools.ReportType.REPORT_TREE_NOSA:
- case ROVTools.ReportType.REPORT_TREE_SA:
- TxtConsole = "Choose report for review.";
- break;
- }
- MessagingCenter.Send(this, "Data", projectModel);
- MessagingCenter.Send(this, "Console", TxtConsole);
- });
- toSummaryPage();
- }
- async void toSummaryPage()
- {
- await Shell.Current.GoToAsync("Summary", true);
- }
- public void selectSavePathProject()
- {
- Task.Run(async () =>
- {
- try
- {
- FileData fileData = await CrossFilePicker.Current.PickFile();
- if (fileData != null)
- {
- var arrfolderPath = fileData.FilePath.Split(new char[] { '/' }).ToList();
- arrfolderPath.Remove(arrfolderPath.Last());
- ReportAddress = string.Join("/", arrfolderPath);
- }
- }
- catch (Exception ex)
- {
- System.Console.WriteLine("Exception choosing file: " + ex.ToString());
- }
- });
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement