public async virtual Task <TEntity> DeleteAsync(
            TEntity entity,
            RepositorySaveAction save = RepositorySaveAction.No)
        {
            Delete(entity);
            await HandleSaveAsync(save);

            return(entity);
        }
 protected virtual async Task HandleSaveAsync(
     RepositorySaveAction save)
 {
     if (save == RepositorySaveAction.Yes)
     {
         await SaveAsync();
     }
     else if (save == RepositorySaveAction.YesWithValidation)
     {
         await ValidateAndSaveAsync();
     }
 }