// We want to dynamically generate the buttons and their text based on the number of "IDs" gathered in the View Model
        // Unfortunately, XAML doesn't support looping statements of any kind, so I had to move the parent XAML code into this code-behind class
        // This feels messy, but I'm sure there's a better way by creating a custom control?
        private Grid CreateGridOfButtons(MeasurementsViewModel vmContext)
        {
            var tileGrid = new Grid
            {
                Padding           = ButtonGridPadding,
                VerticalOptions   = ButtonGridVertOptions,
                HorizontalOptions = ButtonGridHorzOptions,
                RowSpacing        = ButtonGridRowSpacing,
                ColumnSpacing     = ButtonGridColumnSpacing,
                RowDefinitions    = CreateRowDefinitions(vmContext),
                ColumnDefinitions = CreateColumnDefinitions(vmContext)
            };

            for (var i = 0; i < vmContext.GetIDsCount(); i++)
            {
                tileGrid.Children.Add(new ThemedPopupButton
                {
                    Text            = vmContext.GetChildIDText(i),
                    Command         = vmContext.AlertDataPopup(i),
                    BackgroundColor = ThemedNavigationButton.ButtonBackgroundColor,
                    TextColor       = ThemedNavigationButton.ButtonTextColor,
                    FontSize        = ThemedNavigationButton.ButtonFontSize,
                    FontAttributes  = ThemedNavigationButton.ButtonFontAttributes
                }, 0, i);
            }

            return(tileGrid);
        }
        public MeasurementsPage()
        {
            InitializeComponent();
            if (Device.RuntimePlatform == Device.UWP || Device.RuntimePlatform == Device.iOS)
            {
                MeasurementsListView.Header = null;
            }

            _viewModel = new MeasurementsViewModel();
            ContainerStackLayout.BindingContext = _viewModel;
            BindingContext = _viewModel;

            MessagingCenter.Subscribe <SelectProgenyPage>(this, "Reload", async(sender) =>
            {
                _reload = true;
                await SetUserAndProgeny();
                _viewModel.PageNumber = 1;
                await Reload();
            });

            MessagingCenter.Subscribe <AccountViewModel>(this, "Reload", async(sender) =>
            {
                _reload = true;
                await SetUserAndProgeny();
                _viewModel.PageNumber = 1;
                await Reload();
            });
        }
Example #3
0
        public async Task <IActionResult> AddMeasure(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            var measure = await _dataContext.Flowers ///cambie de flowers
                          .Include(f => f.Home)

                          .FirstOrDefaultAsync(f => f.Id == id.Value); //pegale el async firs of default

            if (measure == null)
            {
                return(NotFound());
            }

            var model = new MeasurementsViewModel
            {
                FlowerId    = measure.Id,
                MeasureDate = DateTime.Today,
                Measurers   = _combosHelper.GetComboMeasurers(),
            };



            return(View(model));
        }
Example #4
0
        public LiveMeasurementSettingsViewModel(MeasurementsViewModel parentViewModel, MeasurementViewModel measurementViewModel)
        {
            this.parentViewModel      = parentViewModel;
            this.measurementViewModel = measurementViewModel;

            this._graphBoundLower = measurementViewModel.Settings.GraphLowerBound;
            this._graphBoundUpper = measurementViewModel.Settings.GraphUpperBound;
            this._MinordBLimit    = measurementViewModel.Settings.MinorDBLimit;
            this._MajordBLimit    = measurementViewModel.Settings.MajorDBLimit;
        }
        private ColumnDefinitionCollection CreateColumnDefinitions(MeasurementsViewModel vmContext)
        {
            var columnDefinitionCollection = new ColumnDefinitionCollection();

            columnDefinitionCollection.Add(new ColumnDefinition {
                Width = ButtonGridColumnDefWidth
            });

            return(columnDefinitionCollection);
        }
        public MeasurementsPage()
        {
            InitializeComponent();

            BindingContext = _vm = new MeasurementsViewModel();

            MessagingCenter.Subscribe <MeasurementDetailViewModel, Measurement>(this, "DeleteCMD", (sender, arg) =>
            {
                DisplayAlert(sender.ToString(), arg.ID.ToString(), "Ok");
            });
        }
Example #7
0
 public async Task <Measurement> ToMeasureAsync(MeasurementsViewModel model, bool isNew)
 {
     return(new Measurement
     {
         Measure = $"{model.Measure}",
         MeasureDate = model.MeasureDate.ToUniversalTime(),
         Id = isNew ? 0 : model.Id,
         Flower = await _dataContext.Flowers.FindAsync(model.FlowerId),
         Measurer = await _dataContext.Measurers.FindAsync(model.MeasurerId),
     });
 }
        private RowDefinitionCollection CreateRowDefinitions(MeasurementsViewModel vmContext)
        {
            var rowDefinitionCollection = new RowDefinitionCollection();

            for (var i = 0; i < vmContext.GetIDsCount(); i++)
            {
                rowDefinitionCollection.Add(new RowDefinition {
                    Height = ButtonGridRowDefHeight
                });
            }

            return(rowDefinitionCollection);
        }
        public NewMeasurementViewModel(MeasurementsViewModel mainViewModel)
        {
            MainViewModel      = mainViewModel;
            ProjectName        = "Untitled - " + DateTime.Now.ToString("yyyy-MM-dd hh-mm-ss");
            UseLocal           = true;
            IsRemoteTested     = false;
            LocalDevices       = new ObservableCollection <string>();
            LocalDeviceTimeOut = 800;

            MajorIntervalSeconds = 0.ToString();
            MinorIntervalSeconds = 0.ToString();
            MajorIntervalMinutes = 15.ToString();
            MinorIntervalMinutes = 1.ToString();
            MajorIntervalHours   = 0.ToString();
            MinorIntervalHours   = 0.ToString();

            GraphBoundUpper = 120.ToString();
            GraphBoundLower = 40.ToString();

            MinorDBLimit = 98.ToString();
            MajorDBLimit = 95.ToString();
            ClockItems   = ClockItemsFactory.AllClockItems;

//#if DEBUG
//            MajorIntervalSeconds = 0.ToString();
//            MinorIntervalSeconds = 30.ToString();
//            MajorIntervalMinutes = 1.ToString();
//            MinorIntervalMinutes = 0.ToString();
//            MajorIntervalHours = 0.ToString();
//            MinorIntervalHours = 0.ToString();
//            MinorDBLimit = 70.ToString();
//            MajorDBLimit = 65.ToString();
//#endif

            MinorClockMainItem      = ClockItems.FirstOrDefault(x => x.GetType() == typeof(LatestIntervalClockItem));
            MinorClockSecondaryItem = ClockItems.FirstOrDefault(x => x.GetType() == typeof(LiveLAegClockItem));
            MajorClockMainItem      = ClockItems.FirstOrDefault(x => x.GetType() == typeof(BuildingReadingClockItem));
            MajorClockSecondaryItem = ClockItems.FirstOrDefault(x => x.GetType() == typeof(InactiveClockItem));

            RemoteIpAddress = "localhost";
            RemotePort      = DefaultPort.ToString();

            //// Find an avalible port
            while (mainViewModel.Measurements.Any(x => x.Settings.Port == DefaultPort))
            {
                logger.Trace("Port {0} is in use, trying next.", DefaultPort);
                DefaultPort++;
            }
            ListenPort = DefaultPort.ToString();
        }
Example #10
0
        public async Task <IActionResult> EditMeasure(MeasurementsViewModel model)
        {
            if (ModelState.IsValid)
            {
                var measure = await _converterHelper.ToMeasureAsync(model, false);

                _dataContext.Measurements.Update(measure);
                await _dataContext.SaveChangesAsync();

                return(RedirectToAction($"DetailsMeasure/{model.FlowerId}"));
            }

            model.Measurers = _combosHelper.GetComboMeasurers();
            return(View(model));
        }
        protected override void show(bool reload)
        {
            //if (ApplicationState.Current.TrainingDay.TrainingDay.Size == null)
            //{
            //    var entry = new SizeEntryDTO();
            //    entry.Wymiary = new WymiaryDTO();
            //    entry.Wymiary.Time.DateTime = DateTime.Now;
            //    ApplicationState.Current.TrainingDay.TrainingDay.Objects.Add(entry);
            //    entry.TrainingDay = ApplicationState.Current.TrainingDay.TrainingDay;
            //}

            viewModel         = new MeasurementsViewModel(Entry);
            sizeCtrl.ReadOnly = !viewModel.EditMode;
            timeCtrl.ReadOnly = !viewModel.EditMode;
            DataContext       = viewModel;
            sizeCtrl.Fill(Entry.Wymiary, ApplicationState.Current.CurrentBrowsingTrainingDays);
            //
            header.Text = viewModel.TrainingDate;
        }
Example #12
0
        protected override void OnStartup(StartupEventArgs e)
        {
            Shell shell              = new Shell("АИК");
            var   LogWindow          = new LogginWindowView();
            var   LogWindowViewModel = new LoggingWindowViewModel(shell);
            var   InstrumentalView   = new InstrumentalView();
            var   SettingsView       = new SettingsView();
            var   MeasurementsView   = new MeasurementsView();
            var   DataBaseView       = new DataBaseView();
            var   LogsView           = new LogsView();
            var   CalibrationView    = new CalibrationView();
            var   WizardView         = new WizardView();
            var   ContextMediator    = new ContextMediator();

            LogWindow.DataContext = LogWindowViewModel;
            LogWindow.Show();
            //LogWindow



            var SubStep1 = new ExecutableWizardStepBuilder()
                           .SetName("SubStep1.1")
                           .SetDescription("description for substep 1.1")
                           .SetReadOnly(false)
                           .SetSelectable(true)
                           .AddAction((s, c, o) =>
            {
                try
                {
                }
                catch (System.Exception)
                {
                    throw;
                }
                finally
                {
                }
            })
                           .Build();

            var SubStep2 = new ExecutableWizardStepBuilder()
                           .SetName("SubStep1.2")
                           .SetDescription("description for substep 1.2")
                           .SetReadOnly(false)
                           .SetSelectable(true)
                           .AddAction((s, c, o) =>
            {
                try
                {
                }
                catch (System.Exception)
                {
                    throw;
                }
                finally
                {
                }
            })
                           .Build();

            var SubSubStep1 = new ExecutableWizardStepBuilder()
                              .SetName("SubSubStep1.3.1")
                              .SetDescription("description for subsubstep 1.3.1")
                              .SetReadOnly(false)
                              .SetSelectable(true)
                              .AddAction((s, c, o) =>
            {
                try
                {
                }
                catch (System.Exception)
                {
                    throw;
                }
                finally
                {
                }
            })
                              .Build();

            var SubSubStep2 = new ExecutableWizardStepBuilder()
                              .SetName("SubSubStep1.3.2")
                              .SetDescription("description for subsubstep 1.3.2")
                              .SetReadOnly(false)
                              .SetSelectable(true)
                              .AddAction((s, c, o) =>
            {
                try
                {
                }
                catch (System.Exception)
                {
                    throw;
                }
                finally
                {
                }
            })
                              .Build();

            var GrouppedStep1_3 = new WizardStepGroupBuilder()
                                  .SetName("SubGruop1.3")
                                  .SetDescription("description for subgroup 1.3")
                                  .AddChildren(SubSubStep1)
                                  .AddChildren(SubSubStep2)
                                  .Build();

            var GrouppedStep1 = new WizardStepGroupBuilder()
                                .SetName("Group1")
                                .SetDescription("description for subgroup 1")
                                .AddChildren(SubStep1)
                                .AddChildren(SubStep2)
                                .AddChildren(GrouppedStep1_3)
                                .Build();

            var Step2 = new ExecutableWizardStepBuilder()
                        .SetName("Step2")
                        .SetIconName("Settings")
                        .SetDescription("description for step 2")
                        .SetReadOnly(false)
                        .SetSelectable(true)
                        .AddBoundedStep(SubSubStep1)
                        .AddBoundedStep(GrouppedStep1)
                        .AddAction((s, c, o) =>
            {
                try
                {
                }
                catch (System.Exception)
                {
                    throw;
                }
                finally
                {
                }
            })
                        .Build();

            var SubStep3_1 = new ExecutableWizardStepBuilder()
                             .SetName("SubStep3.1")
                             .SetDescription("description for substep 3.1")
                             .SetReadOnly(false)
                             .SetSelectable(true)
                             .AddAction((s, c, o) =>
            {
                try
                {
                }
                catch (System.Exception)
                {
                    throw;
                }
                finally
                {
                }
            })
                             .Build();

            var GrouppedStep3 = new WizardStepGroupBuilder()
                                .SetName("Group3")
                                .SetDescription("description for group 3")
                                .AddChildren(SubStep3_1)
                                .Build();
            var Step4 = new ExecutableWizardStepBuilder()
                        .SetName("Step4")
                        .SetIconName("Settings")
                        .SetDescription("description for step 2")
                        .SetReadOnly(false)
                        .SetSelectable(true)
                        .AddAction((s, c, o) =>
            {
                try
                {
                }
                catch (System.Exception)
                {
                    throw;
                }
                finally
                {
                }
            })
                        .Last(true)
                        .Build();

            var TestData = new TestData();
            var SettingsGroupsContainer = new SettingsGroupsContainer(
                new SettingsGroup("Group 1",
                                  new DoubleSetting()
            {
                Name = "Setting1.1", Dimention = "Hz", Visible = true
            },
                                  new IntSetting()
            {
                Name = "Setting1.2", Dimention = "Ohm", Visible = true
            }),
                new SettingsGroup("Group 2",
                                  new DoubleSetting()
            {
                Name = "Setting2.1", Dimention = "dB", Visible = true
            },
                                  new IntSetting()
            {
                Name = "Setting2.2", Dimention = "Sec", Visible = true
            }),
                new SettingsGroup("Group 3",
                                  new DoubleSetting()
            {
                Name = "Setting3.1", Dimention = "mV", Visible = true
            },
                                  new IntSetting()
            {
                Name = "Setting3.2", Dimention = "Rad", Visible = true
            }));

            var InstrumentalViewModel = new InstrumentalViewModel("Модуль приборов", "appbar_power", ContextMediator, new SignalAnalyzer(), new SignalGenerator());
            var SettingsViewModel     = new SettingsViewModel("Модуль настроек", "appbar_settings", ContextMediator, SettingsGroupsContainer.SettingsGroups);
            var MeasurementsViewModel = new MeasurementsViewModel("Автоматический режим", "appbar_axis_x", ContextMediator, TestData)
            {
                SettingsList = SettingsGroupsContainer.SettingsGroups
            };
            var DataBaseViewModel = new DataBaseViewModel("База данных", "appbar_database", ContextMediator);
            var LogsViewModel     = new LogsViewModel("Лог", "appbar_disk", ContextMediator);

            var SetupWizard = new SetupWizardBuilder()
                              .AddStep(GrouppedStep1)
                              .AddStep(Step2)
                              .AddStep(GrouppedStep3)
                              .AddStep(Step4)
                              .ConfigureWizard()
                              .Build();

            LogWindow.DataContext        = LogWindowViewModel;
            InstrumentalView.DataContext = InstrumentalViewModel;
            SettingsView.DataContext     = SettingsViewModel;
            MeasurementsView.DataContext = MeasurementsViewModel;
            DataBaseView.DataContext     = DataBaseViewModel;
            LogsView.DataContext         = LogsViewModel;
            WizardView.DataContext       = SetupWizard;

            var CalibrationViewModel = new CalibrationViewModel("Модуль калибровки", "appbar_scale", ContextMediator, WizardView, SetupWizard);

            CalibrationView.DataContext = CalibrationViewModel;

            ContextMediator
            .AddModuleReference(InstrumentalViewModel)
            .AddModuleReference(SettingsViewModel)
            .AddModuleReference(CalibrationViewModel)
            .AddModuleReference(MeasurementsViewModel)
            .AddModuleReference(DataBaseViewModel)
            .AddModuleReference(LogsViewModel);

            shell
            .AddView(InstrumentalView)
            .AddView(SettingsView)
            .AddView(CalibrationView)
            .AddView(MeasurementsView)
            .AddView(DataBaseView)
            .AddView(LogsView);


            //var mainWindow = new MainWindow();
            //mainWindow.DataContext = shell;
        }
 public MeasurementsHandler(MeasurementsViewModel measurementsViewModel)
 {
     MeasurementsViewM = measurementsViewModel;
 }
Example #14
0
        public MainViewModel()
        {
            ShowControls = false;
            logger.Info("Audio View started at {0}", DateTime.Now);

            SettingsViewModel     = SettingsViewModel.Instance;
            HistoryViewModel      = new HistoryViewModel();
            MeasurementsViewModel = new MeasurementsViewModel(this);

            service = new UserService();
            User user = getAuthData();

            if (user == null)
            {
                NeedLogIn    = true;
                LogInFailed  = false;
                LogInExpired = false;
                ShowControls = false;
            }
            else
            {
                // Verify expired
                try
                {
                    //var audioViewEntities = new AudioViewEntities();
                    //audioViewEntities.Users.Where(x => x.username == "kasper").First();
                    var userResult = service.GetUserSync(user.UserName);
                    if (userResult == null)
                    {
                        NeedLogIn    = true;
                        LogInFailed  = true;
                        LogInExpired = false;
                        ShowControls = false;
                        IsLoading    = false;
                    }
                    else
                    {
                        if (user.Expires != null && userResult.Expires < DateTime.Now)
                        {
                            NeedLogIn    = true;
                            LogInFailed  = false;
                            LogInExpired = true;
                            ShowControls = false;
                            IsLoading    = false;
                        }
                        else
                        {
                            NeedLogIn    = false;
                            LogInFailed  = false;
                            LogInExpired = false;
                            ShowControls = true;
                            IsLoading    = false;
                        }
                    }
                }
                catch (Exception exp)
                {
                    logger.Error(exp);
                    if (user.Expires != null && user.Expires < DateTime.Now)
                    {
                        NeedLogIn    = true;
                        LogInFailed  = true;
                        LogInExpired = false;
                        ShowControls = false;
                        IsLoading    = false;
                    }
                    else
                    {
                        // Allow user in
                        NeedLogIn    = false;
                        LogInFailed  = false;
                        LogInExpired = false;
                        ShowControls = true;
                        IsLoading    = false;
                    }
                }
            }

            // Debug for me
            MeasurementsViewModel.NewViewModel = new NewMeasurementViewModel(MeasurementsViewModel);

            // Load offline files
            DataStorageMeterListener.UploadLocalFiles();
        }