/// <summary>
        /// Se produit lors de la demande d'affichage de la page exemple.
        /// </summary>
        /// <param name="sender">L'objet à l'origine de l'évènement.</param>
        /// <param name="e">Les paramètres de l'évènement.</param>
        private void OnNavigateToExample(object sender, EventArgs e)
        {
            if (sender == null)
            {
                throw new ArgumentNullException(nameof(sender));
            }

            if (e == null)
            {
                throw new ArgumentNullException(nameof(e));
            }

            PageOneViewModel viewModel = PageViewModels.FirstOrDefault(vm => vm.GetType() == typeof(PageOneViewModel)) as PageOneViewModel;

            if (viewModel == null)
            {
                viewModel = new PageOneViewModel();
            }

            if (e is EventArgs <RectViewModel> args)
            {
                Task.Run(() => viewModel.Load(args.Value));
            }

            ChangeViewModel((IPageViewModel)viewModel);
        }
Example #2
0
        public PageOne()
        {
            this.InitializeComponent();
            Debug.WriteLine(string.Format("Creating: {0}", GetType().Name));

            ViewModel = new PageOneViewModel(NestedNavigationServiceProvider.GetNavigationService());
        }
Example #3
0
 public ShellViewModel(PageOneViewModel pageOne,
                       PageTwoViewModel pageTwo,
                       FretBoardViewModel fretBoard,
                       BubblingViewModel bubbling,
                       FretBoardTwoViewModel fretBoardTwo)
 {
     Items.Add(pageOne);
     Items.Add(pageTwo);
     Items.Add(fretBoard);
     Items.Add(bubbling);
     Items.Add(fretBoardTwo);
     DisplayName = "Mahapps Demo";
 }
Example #4
0
        public static void StartScanFile(string filePath, string tableName, PageOneViewModel pageOneViewModel)
        {
            using var connection = new SqliteConnection(DatabaseService.ConnectionString);
            connection.Open();

            var deviceReader    = new FileStream(filePath, FileMode.Open);
            var isContinue      = true;
            var totalIterations = 1;

            FindNextSignature(ref deviceReader);
            var  startOfFile = deviceReader.Position - 8;
            long startOfNext;

            while (isContinue)
            {
                if (deviceReader.Position < deviceReader.Length)
                {
                    pageOneViewModel.ExtractProgress = deviceReader.Position * 100 / deviceReader.Length;
                    var timestamp = new []
                    {
                        (byte)deviceReader.ReadByte(),
                        (byte)deviceReader.ReadByte(),
                        (byte)deviceReader.ReadByte(),
                        (byte)deviceReader.ReadByte()
                    };

                    var signatureDateTime = GetTimeFromSignatureTimestamp(timestamp).ToString("yyyy-MM-dd hh:mm:ss");
                    FindNextSignature(ref deviceReader);
                    startOfNext = deviceReader.Position - 8;
                    new SqliteCommand(
                        $"insert into {tableName} (name, offset, size, start_datetime) values ('signature{totalIterations.ToString().PadLeft(8, '0')}.h264', {startOfFile}, {startOfNext-startOfFile}, '{signatureDateTime}')",
                        connection).ExecuteNonQuery();
                    startOfFile = startOfNext;

                    Console.WriteLine($"totalIterations: {totalIterations}");
                    totalIterations++;
                }
                else
                {
                    isContinue = false;
                }
            }
            connection.Close();
        }
Example #5
0
 private void InitializationProcess(object param)
 {
     InitializeComponent();
     PageOneViewModel = new PageOneViewModel(param);
     this.DataContext = PageOneViewModel;
 }
Example #6
0
        public void ShowPopup()
        {
            var model = new PageOneViewModel();

            ActivateItem(model);
        }
Example #7
0
        public static void ExtractVideos(string tableName, string fileNameOrDeviceId, string pathToVideos, PageOneViewModel pageOneViewModel)
        {
            using var connection = new SqliteConnection(DatabaseService.ConnectionString);
            var sql      = $"select * from {tableName}";
            var sqlCount = $"select count(*) from {tableName}";

            connection.Open();
            var totalCount = (long)new SqliteCommand(sqlCount, connection).ExecuteScalar();
            var reader     = new SqliteCommand(sql, connection).ExecuteReader();
            var i          = 1;

            while (reader.Read())
            {
                var item = new VideoItem()
                {
                    Name          = reader.GetString(1),
                    Offset        = reader.GetInt32(2),
                    Size          = reader.GetInt32(3),
                    StartDateTime = reader.GetString(4)
                };
                using var deviceReader = new FileStream(fileNameOrDeviceId, FileMode.Open, FileAccess.Read, FileShare.None, item.Size)
                      {
                          Position = item.Offset
                      };
                using var fileReader = File.Create(Path.Combine(pathToVideos, item.Name));
                var buffer = new byte[item.Size];
                deviceReader.ReadAsync(buffer, 0, item.Size);
                fileReader.Write(buffer);

                pageOneViewModel.ExtractProgress = i * 100 / totalCount;
                i++;
            }
            connection.Close();
        }