Beispiel #1
0
        public async Task <bool> UpdateAsNewWordAsync(AddWordDto dto)
        {
            try
            {
                _unitOfWork.BeginTransaction();
                var word = (await _mainRepos.Filter(x => x.Name == dto.Word.ToLower().Trim())).FirstOrDefault();
                if (word == null)
                {
                    var newWord = _mainRepos.Create(new Word
                    {
                        IsNew      = true,
                        Name       = dto.Word,
                        CreatedAt  = DateTimeOffset.Now,
                        ExampleIds = new List <string> {
                            dto.ExampleId
                        }
                    });
                }
                else
                {
                    word.IsNew = true;
                    await _mainRepos.Update(word);
                }

                await _unitOfWork.CommitTransaction();

                return(true);
            }
            catch (Exception ex)
            {
                await _unitOfWork.AbortTransaction();

                throw ex;
            }
        }
Beispiel #2
0
        public async Task <TResponse> Handle(TRequest request, CancellationToken cancellationToken)
        {
            try
            {
                Logger.LogInformation($"----- Handling command: {request}");
                var result = await HandleEx(request, cancellationToken);

                UnitOfWork.CompleteTransaction();
                return(result);
            }
            catch (BaseHttpException bex)
            {
                UnitOfWork.AbortTransaction();
                throw bex;
            }
            catch (Exception ex)
            {
                Logger.LogInformation($"----- Error during command: {ex.Message}");
                UnitOfWork.AbortTransaction();
                return(default);
Beispiel #3
0
        public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            _unitOfWork.BeginTransaction();

            var executedContext = await next.Invoke();

            if (executedContext.Exception == null || executedContext.ExceptionHandled)
            {
                _unitOfWork.CommitTransaction();
            }
            else
            {
                _unitOfWork.AbortTransaction();
            }
        }
        public async Task <bool> Handle(IEvent @event)
        {
            try
            {
                Logger.LogInformation(
                    $"----- Handling integration event: {@event.Id} at: Dispatch Service - {@event}");
                await HandleEx(@event);

                UnitOfWork.CompleteTransaction();
                Task.Run(() => PublishNewIntegrationEvents());
            }
            catch (Exception ex)
            {
                Logger.LogError(ex, $"----- Error during integration event: {ex.Message}", "");
                UnitOfWork.AbortTransaction();
            }
            return(true);
        }