public bool Update(Dto model)
        {
            bool toReturn = false;
            var  entity   = MapDtoToEntity(model);
            var  command  = SQLiteUtils.UpdateCommand <Entity>(tableName, entity);

            OnPreSave?.Invoke(new OnPreSaveArgs <Dto>(model));
            var connection = new SQLiteConnection(_connectionString);

            try
            {
                connection.Open();
                command.Connection = connection;
                command.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                toReturn = false;
                OnError?.Invoke(new OnErrorArgs <Dto>(model, ex, OnErrorType.Update));
            }
            finally
            {
                connection.Clone();
                OnPostSave?.Invoke(new OnPostSaveArgs <Dto>(model, toReturn));
            }

            return(toReturn);
        }
        public IEnumerable <Dto> GetAll()
        {
            var        command    = new SQLiteCommand($"SELECT * FROM {tableName}");
            List <Dto> dtos       = new List <Dto>();
            var        connection = new SQLiteConnection(_connectionString);

            try
            {
                connection.Open();
                command.Connection = connection;
                var           reader   = command.ExecuteReader();
                List <Entity> entities = SQLiteUtils.ReadEntities <Entity>(reader);
                foreach (var e in entities)
                {
                    var dto = MapEntityToDto(e);
                    dtos.Add(dto);
                }
            }
            catch (Exception ex)
            {
                OnError?.Invoke(new OnErrorArgs <Dto>(default(Dto), ex, OnErrorType.Get));
            }
            finally
            {
                connection.Close();
            }

            return(dtos);
        }
        public bool CreateTable()
        {
            bool toReturn   = false;
            var  command    = SQLiteUtils.CreateTableCommant <Entity>(tableName);
            var  connection = new SQLiteConnection(_connectionString);

            connection.Open();
            command.Connection = connection;
            command.ExecuteNonQuery();
            connection.Close();

            toReturn = true;
            return(toReturn);
        }