public void CanSendMessageNoChannelTest()
        {
            string message = "DUPA";
            var    author  = new EntityDummyCreator().Create();

            var result = shoutBoxService.CanSendMessage(message, null, author);

            Assert.IsFalse(result.isSuccess);
        }
        public JsonResult WriteMessage(int channelID, int?parentID, string content)
        {
            try
            {
                var channel = shoutboxChannelRepository.GetById(channelID);
                var author  = SessionHelper.CurrentEntity;

                MethodResult result = shoutBoxService.CanSendMessage(content, channel, author);
                if (result.IsError)
                {
                    return(JsonError(result));
                }

                ShoutboxMessage message = null;

                if (parentID.HasValue)
                {
                    var parent = shoutboxMessageRepository.GetById(parentID.Value);
                    if (parent == null)
                    {
                        return(JsonError("Error"));
                    }

                    message = shoutBoxService.SendMessage(content, author, parent);
                }
                else
                {
                    message = shoutBoxService.SendMessage(content, author, channel);
                }

                return(JsonData(new ShoutboxMessageViewModel(message)));
            }
            catch (UserReadableException e)
            {
                return(JsonError(e));
            }
            catch (Exception)
            {
                return(JsonError("Unspecified error ocurred"));

                throw;
            }
        }