예제 #1
0
        public virtual async Task <TEntity> UpdateAsync(TViewModel viewModel)
        {
            using (_logger.BeginScope($"{nameof(CoreApplicationService<TEntity, TViewModel, TRepository>)}.{nameof(CoreApplicationService<TEntity, TViewModel, TRepository>.UpdateAsync)}"))
            {
                var stopwatch = Stopwatch.StartNew();
                try
                {
                    var entity = Mapper.Map <TViewModel, TEntity>(viewModel);
                    entity = LinkedRepository.Update(entity);
                    var commitAsyncResult = await UnitOfWork.CommitAsync();

                    _logger.LogInformation("View model: {@ViewModel}, entity: {@Entity}", viewModel, entity);
                    return(entity);
                }
                catch (Exception e)
                {
                    _logger.LogError(e, "Method failed.");
                    throw;
                }
                finally
                {
                    _logger.LogDebug("Method finished. Duration: {Duration}", stopwatch.Elapsed);
                }
            }
        }
예제 #2
0
 public RepoService(
     LinkedRepository linkedRepository,
     ZipRepositoryBase <Mined> minedRepository
     )
 {
     this.linkedRepository = linkedRepository;
     this.minedRepository  = minedRepository;
     minedRepository.SetNames(Module.Name);
 }
예제 #3
0
 public virtual async Task <IEnumerable <TEntity> > GetAsync(Expression <Func <TEntity, bool> > expression = null)
 {
     using (_logger.BeginScope($"{nameof(CoreApplicationService<TEntity, TViewModel, TRepository>)}.{nameof(CoreApplicationService<TEntity, TViewModel, TRepository>.GetAsync)}"))
     {
         var stopwatch = Stopwatch.StartNew();
         try
         {
             _logger.LogInformation("Expression: {@Expression}", expression);
             var entities = LinkedRepository.Get(expression).ToList();
             return(entities);
         }
         catch (Exception e)
         {
             _logger.LogError(e, "Method failed.");
             throw;
         }
         finally
         {
             _logger.LogDebug("Method finished. Duration: {Duration}", stopwatch.Elapsed);
         }
     }
 }