private void CreateTemplate_Click(object sender, RoutedEventArgs e) { CreateTemplateDialog dlg = new CreateTemplateDialog(_tempMgr.Templates.ToArray(), _type); dlg.Owner = Application.Current.Windows.OfType <SendCommandWindow>().Single(); if (dlg.ShowDialog() == true) { OnCreateTemplate(dlg.tbName.Text, dlg.cDefault.IsChecked == true); } }
void Event_CreateTemplate(object sender, RoutedEventArgs e) { control = new CreateTemplateDialog() { Title = "New Template", ResizeMode = ResizeMode.CanResizeWithGrip, }; control.cbGroup.ItemsSource = Model.TemplateGroups; control.cbGroup.DisplayMemberPath = "Group"; TableTemplate element = null; var rc = new RelayCommand((x) => { control.DialogResult = true; element = new TableTemplate() { Alias = control.tbName.Text, Group = control.cbGroup.Text, ElementTemplate = "", ItemsTemplate = "" }; control.Close(); }); control.Buttons = new[] { control.CancelButton, new Button() { Content = "okay", Command = rc, IsDefault = true } }; restart: var value = control.ShowDialog(); if (!(value.HasValue && value.Value)) { return; } if (string.IsNullOrEmpty(element.Alias)) { control.Title = "supply a name for your template!"; goto restart; } Model.Reader.Model.Templates.Add(element); Model.Reader.Model.Templates = Model.Reader.Model.Templates; RefreshTemplates(); PushState(element); }
void Event_RemoveTemplate(object sender, RoutedEventArgs e) { if (Model.LastTemplate == null) { return; } string t = (Model.LastTemplate as TableTemplate).Alias; const string format = @"You are about to delete the template ""{0}"".\nAre you sure?"; control = new CreateTemplateDialog() { Title = "New Template", ResizeMode = ResizeMode.CanResizeWithGrip, Content = new TextBlock() { Text = string.Format(format, t) } }; control.Buttons = new[] { control.CancelButton, new Button() { Content = "okay", Command = new RelayCommand((x) => { control.DialogResult = true; control.Close(); }), IsDefault = true } }; var value = control.ShowDialog(); if (!(value.HasValue && value.Value)) { return; } Model.Reader.Model.Templates.Templates.Remove(Model.LastTemplate as TableTemplate); Model.Reader.Model.Templates = Model.Reader.Model.Templates; RefreshTemplates(); }
public override bool OnOptionsItemSelected(IMenuItem item) { var id = item.ItemId; switch (id) { case Resource.Id.TestMeasurments: AddTestMeasurments(); return(true); case Resource.Id.EditTemplate: _ = AddTemplateAsync(); return(true); case Resource.Id.ShareExcel: ShareExcel(); return(true); case Resource.Id.SaveExcel: SaveExcel(); return(true); default: return(base.OnOptionsItemSelected(item)); } void AddTestMeasurments() { for (int i = 0; i < 40; i++) { var measur = new Measurment(VM.Boiler.Id) { DateTime = System.DateTime.Now.AddDays(i), Temperature = 20 + i, Level = 130 - (i * 2) }; if (VM.Boiler.Template != null) { int a = 0; var values = new Dictionary <string, float>(); foreach (var key in VM.Boiler.Template) { values[key] = 5 + a + (2 * i); a++; } measur.Values = values; } VM.AddMeasurmentCommand.Execute(measur); } } async Task AddTemplateAsync() { var dialog = new CreateTemplateDialog(); var result = await dialog.ShowAsync(ChildFragmentManager, VM.Boiler); VM.AddTemplateCommand.Execute(result); } async void ShareExcel() { ShareFile file = new ShareFile(await VM.ShareExcelFile(VM.Boiler.Name)); await Share.RequestAsync(new ShareFileRequest { Title = "Share", File = file }); } async void SaveExcel() { var permissionService = new PermissionService(Activity); if (!permissionService.HasPermission(Manifest.Permission.WriteExternalStorage)) { permissionService.RequestPermission(Manifest.Permission.WriteExternalStorage); } if (!permissionService.HasPermission(Manifest.Permission.WriteExternalStorage)) { Toast.MakeText(Context, "Can't save excel without permission.", ToastLength.Long).Show(); } else { await Save(); } async Task Save() { var envpath = Environment.GetExternalStoragePublicDirectory(Environment.DirectoryDocuments).AbsolutePath; var fileName = VM.Boiler.Name; var path = Path.Combine(envpath, fileName + ".xlsx"); int tries = 1; while (File.Exists(path)) { fileName = $"{VM.Boiler.Name}_{tries++}"; path = Path.Combine(envpath, fileName + ".xlsx"); } var fileStream = File.Create(path); await VM.SaveExcelFile(fileStream); Toast.MakeText(Context, $"Saved at: {Environment.DirectoryDocuments} \nWith name: {fileName}", ToastLength.Long).Show(); } } }