コード例 #1
0
        public async Task <RequestResult> SendCommand <T>(IRequest <T> request)
        {
            var commandResponse = await _mediator.Send(request);

            // Fire pre post events
            await _eventDispatcher.FirePreCommitEvents();

            if (_domainNotifications.HasNotifications())
            {
                return(new RequestResult
                {
                    Success = false,
                    Messages = _domainNotifications.GetAll()
                });
            }
            else
            {
                if (await _unitOfWork.Commit())
                {
                    // Fire after commit events
                    await _eventDispatcher.FireAfterCommitEvents();

                    return(new RequestResult
                    {
                        Success = true,
                        Data = commandResponse
                    });
                }
                else
                {
                    return(new RequestResult
                    {
                        Success = false,
                        Messages = new List <string>()
                        {
                            "An error ocurred while saving data"
                        }
                    });
                }
            }
        }