/// <summary>
        /// Saves all pending changes
        /// </summary>
        /// <returns>The number of objects in an Added, Modified, or Deleted state</returns>
        public async Task <IEntityResult> SaveAsync(string requestId, CancellationToken cancellationToken = default(CancellationToken))
        {
            try
            {
                _logger.LogInformation(_localizer[RepositoryResource.StartSaveDate], requestId);
                int returnValue;
                returnValue = await _dbContext.SaveChangesAsync(cancellationToken).ConfigureAwait(false);

                if (returnValue >= 0)
                {
                    _logger.LogInformation(_localizer[RepositoryResource.SaveDataSuccess], requestId);
                    return(EntitySuccessResult.Success(returnValue));
                }
                else
                {
                    _logger.LogInformation(_localizer[RepositoryResource.SaveChangesFailure], requestId);
                    return(EntityErrorResult.Failure(EntityError.DbUpdateFailure));
                }
            }
            catch (DbUpdateConcurrencyException ex)
            {
                _logger.LogError(
                    new EventId(EntityError.ConcurrencyFailure.Code, EntityError.ConcurrencyFailure.Error), ex,
                    _localizer[RepositoryResource.ConcurrencyFailure], requestId);
                return(EntityErrorResult.Failure(EntityError.DbUpdateFailure));
            }
            catch (DbUpdateException ex)
            {
                _logger.LogError(
                    new EventId(EntityError.DbUpdateFailure.Code, EntityError.DbUpdateFailure.Error), ex,
                    _localizer[RepositoryResource.SaveDataFailure], requestId);
                return(EntityErrorResult.Failure(EntityError.DbUpdateFailure));
            }
            catch (Exception ex)
            {
                _logger.LogError(
                    new EventId(EntityError.DbUpdateFailure.Code, EntityError.DbUpdateFailure.Error), ex,
                    _localizer[RepositoryResource.SaveDataFailure], requestId);
                return(EntityErrorResult.Failure(EntityError.UnknownFailure));
            }
        }
 /// <summary>
 /// Saves all pending changes
 /// </summary>
 /// <returns>The number of objects in an Added, Modified, or Deleted state</returns>
 public IEntityResult Save(string requestId)
 {
     try
     {
         _logger.LogInformation(_localizer[RepositoryResource.StartSaveDate], requestId);
         int returnValue;
         returnValue = _dbContext.SaveChanges();
         if (returnValue >= 0)
         {
             _logger.LogInformation(_localizer[RepositoryResource.SaveDataSuccess], requestId);
             return(EntitySuccessResult.Success(returnValue));
         }
         else
         {
             _logger.LogInformation(_localizer[RepositoryResource.SaveChangesFailure], requestId);
             return(EntityErrorResult.Failure(EntityError.DbUpdateFailure));
         }
     }
     catch (DbUpdateConcurrencyException ex)
     {
         _logger.LogError(
             new EventId(EntityError.ConcurrencyFailure.Code, EntityError.ConcurrencyFailure.Error), ex,
             _localizer[RepositoryResource.ConcurrencyFailure], requestId);
         return(EntityErrorResult.Failure(EntityError.DbUpdateFailure));
     }
     catch (DbUpdateException ex)
     {
         _logger.LogError(
             new EventId(EntityError.DbUpdateFailure.Code, EntityError.DbUpdateFailure.Error), ex,
             _localizer[RepositoryResource.SaveDataFailure], requestId);
         return(EntityErrorResult.Failure(EntityError.DbUpdateFailure));
     }
     catch (Exception ex)
     {
         _logger.LogError(
             new EventId(EntityError.DbUpdateFailure.Code, EntityError.DbUpdateFailure.Error), ex,
             _localizer[RepositoryResource.SaveDataFailure], requestId);
         return(EntityErrorResult.Failure(EntityError.UnknownFailure));
     }
 }