Exemplo n.º 1
0
 public void InsertItem(PhotoData item)
 {
     _database.InsertItem(item);
     MainThread.BeginInvokeOnMainThread(() =>
                                        PhotoAdded?.Invoke(this, new PhotoDataEventArgs()
     {
         data = item
     })
                                        );
 }
Exemplo n.º 2
0
 private async void ApplyPhotoButton_Clicked(object sender, EventArgs e)
 {
     if (EntryComment.Text != null && !EntryComment.Text.Equals(""))
     {
         using (var memoryStream = new MemoryStream())
         {
             MediaFile.GetStream().CopyTo(memoryStream);
             MediaFile.Dispose();
             using (var connection = new SqliteConnection(ConnectionClass.NewDatabasePath))
             {
                 try
                 {
                     connection.Open();
                     var command = connection.CreateCommand();
                     command.CommandText =
                         $"insert into I_FOTO (C_ISSO,N,TITR,FOTO,STATE,FOTO_DATE,ORD, PREVIEW) values ({CIsso}, {(MaxN + 1)}, '{EntryComment.Text}', '{Convert.ToBase64String(memoryStream.ToArray())}', 0, {DateTimeOffset.Now.ToUnixTimeMilliseconds()}, null, null)";
                     command.CommandTimeout = 30;
                     command.CommandType    = System.Data.CommandType.Text;
                     command.ExecuteNonQuery();
                     command.Dispose();
                 }
                 catch (Exception ex)
                 {
                     Debug.WriteLine($"Произошла ошибка в БД:\n {ex.Message} \nStackTrace: {ex.StackTrace}");
                 }
                 finally
                 {
                     connection.Close();
                 }
             }
         }
         var pathToDir = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/ISSO-I/";
         if (Directory.Exists(pathToDir))
         {
             DependencyService.Get <ILocalFileProvider>().DeleteFilesFromDir(pathToDir);
         }
         PhotoAdded?.Invoke(this, EventArgs.Empty);
         await Navigation.PopModalAsync();
     }
     else
     {
         DependencyService.Get <IMessage>().ShortAlert("Поле с комментарием не должно быть пустым!");
     }
 }