public async Task <ActionResult <ResultType> > Add(MessageCreateCommand command)
        {
            var commandResult = new ResultType();

            try
            {
                MessageCreateCommandValidator validator = new MessageCreateCommandValidator();
                var result = validator.Validate(command);
                if (!result.IsValid)
                {
                    commandResult.IsSucceeded = false;
                    result.Errors.ToList().ForEach(x => commandResult.Message = commandResult.Message + x + ". ");

                    return(BadRequest(result.Errors));
                }


                commandResult.IsSucceeded = await _mediator.Send <bool>(command);

                await _messagingHub.Clients.All.SendAsync("ReceiveMessage", command.CreatedBy, command.MessageContent, DateTime.Now);



                return(Ok(commandResult));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                return(StatusCode(StatusCodes.Status500InternalServerError, new { err = "some error occured!" }));
            }
        }
        public async Task <ICommandResult> Save(IEnumerable <ICommand> filtered)
        {
            var publishIntervalInSec = 1;

            foreach (MessageCreateCommand command in filtered)
            {
                MessageCreateCommand converted = null;
                try
                {
                    converted = command.BodyConvert(settings.Value.MaxBodyLength);
                    //BackgroundJob.Schedule<ITwitterBackgroundJob<MessageCreateCommand>>(
                    //    x => x.Publish(converted),
                    //    TimeSpan.FromSeconds(publishIntervalInSec));
                    //publishIntervalInSec += settings.Value.TwitterMessagePublishDelay;
                }
                catch (Exception ex)
                {
                    logger.LogError(
                        LoggingEvents.EXCEPTION_SAVE_TWITTER_MESSAGE,
                        ex,
                        "Failed to save {@message} to twitter.",
                        converted);
                }
            }
            return(new CommandResult {
                Success = true
            });
        }
Пример #3
0
        static void Main(string[] args)
        {
            var message = new Message();

            message.From    = "*****@*****.**";
            message.To      = "*****@*****.**";
            message.Subject = "Test Message";
            message.Body    = "Test Body";

            var command = new MessageCreateCommand {
                Message = message
            };
            var commandProcessor = new CommandProcessor(new MessagingSqlSession());

            message = commandProcessor.Execute(command);

            var deleteCommand = new MessageDeleteCommand {
                MessageId = message.Id
            };

            commandProcessor.Execute(deleteCommand);
        }