예제 #1
0
 public ICommandHandlingResult Handle(CreateOrUpdateMessageCommand command)
 {
     try
     {
         return(HandlingPolicy.Execute(() => HandleInternal(command)));
     }
     catch (Exception ex)
     {
         return(CommandHandlingResult.Fail($"Error creating or updating message: {ex.Message}"));
     }
 }
예제 #2
0
        private ICommandHandlingResult HandleInternal(CreateOrUpdateMessageCommand command)
        {
            if (String.IsNullOrEmpty(command.UserId))
            {
                //todo log
                return(ValidationFail(nameof(command.UserId)));
            }

            if (String.IsNullOrEmpty(command.ChannelName))
            {
                return(ValidationFail(nameof(command.ChannelName)));
            }

            var user    = _userService.Get(command.UserId);
            var channel = _channelService.Get(command.ChannelName);

            var message = new Message(command.Timestamp, command.Text, false, user, channel);

            _messageGeneratorService.CreateOrUpdate(message);

            return(CommandHandlingResult.Success());
        }