public void InsertItem(PhotoData item) { _database.InsertItem(item); MainThread.BeginInvokeOnMainThread(() => PhotoAdded?.Invoke(this, new PhotoDataEventArgs() { data = item }) ); }
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("Поле с комментарием не должно быть пустым!"); } }