Exemplo n.º 1
0
        public string Solution(string input)
        {
            string[] messages = messagesRepository.GetMessages(input);
            string   errorCorrectedMessage = message.GetErrorCorrectedMessageForLeastCommonLetter(messages);

            return(errorCorrectedMessage);
        }
Exemplo n.º 2
0
        public void GetMessages_BadRecipient_Throws(string recipient)
        {
            var target = new MessagesRepository();

            Should.Throw <ArgumentException>(() =>
                                             target.GetMessages(recipient));
        }
Exemplo n.º 3
0
        public IActionResult GetMessages([FromRoute] string?id,
                                         [FromQuery] long?timestamp)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(BadRequest($"{nameof(id)} is required"));
            }

            var dialog = TryGetDialog(id);

            if (dialog == null)
            {
                return(NotFound("Dialog not found"));
            }

            var user = HttpContext.TryGetUser();

            if (user == null)
            {
                throw new InvalidStateException("User should be not null");
            }

            if (!AuthorizeUserToDialog(dialog, user))
            {
                return(NotFound("Dialog not found"));
            }

            return(Ok(messagesRepository.GetMessages(id, timestamp ?? -1)));
        }
Exemplo n.º 4
0
        public string GetMessages(string dateTime, int count, int timeZone)
        {
            List <Message> messages = _messagesRepository.GetMessages(count, dateTime).ToList();

            messages.Sort(delegate(Message m1, Message m2)
            {
                int partKeyM1 = int.MaxValue - int.Parse(m1.PartitionKey);
                int partKeyM2 = int.MaxValue - int.Parse(m2.PartitionKey);

                return(partKeyM2 < partKeyM1 ? -1 : 1);
            });

            var messagesUsers = new Dictionary <Message, User>();

            foreach (var message in messages)
            {
                var existUser = messagesUsers.FirstOrDefault(m => m.Value.PartitionKey == message.RowKey);
                if (existUser.Key != null)
                {
                    messagesUsers.Add(message, existUser.Value);
                    continue;
                }

                User user = _userRepository.GetUser(message.RowKey);
                messagesUsers.Add(message, user);
            }

            return(JsonConvert.SerializeObject(MessageEntity.Convert(messagesUsers, timeZone), Formatting.Indented));
        }
Exemplo n.º 5
0
        public void AddMessage_TwoMessagesTwoRecipients_AreListed()
        {
            // Arrange
            var target   = new MessagesRepository();
            var message1 = new Message {
                Recipient = "foo", Sender = "bar", Content = "Hello, World!"
            };
            var message2 = new Message {
                Recipient = "baz", Sender = "bar", Content = "Hello, World!"
            };

            // Act
            target.AddMessage("foo", message1);
            target.AddMessage("baz", message2);
            // Assert
            target.GetMessages("foo").ShouldContain(message1);
            target.GetMessages("baz").ShouldContain(message2);
        }
Exemplo n.º 6
0
        public void AddMessage_RecipientDifferentFromMessage_MessageRecipientIsOverwritten()
        {
            // Arrange
            var target  = new MessagesRepository();
            var message = new Message {
                Recipient = "foo", Sender = "bar", Content = "Hello, World!"
            };

            // Assert
            target.AddMessage("baz", message);
            // Assert
            var actual = target.GetMessages("baz");

            actual.Single().Recipient.ShouldBe("baz");
        }
Exemplo n.º 7
0
        public void AddMessage_OneMessageOneRecipient_IsListed()
        {
            // Arrange
            var target  = new MessagesRepository();
            var message = new Message {
                Recipient = "foo", Sender = "bar", Content = "Hello, World!"
            };

            // Assert
            target.AddMessage("foo", message);
            // Assert
            var actual = target.GetMessages("foo");

            actual.ShouldContain(message);
            actual.ShouldHaveSingleItem();
        }
Exemplo n.º 8
0
        public IEnumerable <MessageEntity> Get()
        {
            string userName = _accessor.HttpContext.User.Identity.Name;

            return(_repository.GetMessages(userName));
        }
Exemplo n.º 9
0
        public void GetMessages_NoMessages_EmptyList()
        {
            var target = new MessagesRepository();

            target.GetMessages("foo").ShouldBeEmpty();
        }