예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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();
        }
예제 #4
0
        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();
                }
            }
        }