Exemple #1
0
 public IEnumerable <Message> GetChatMessages(Guid id)
 {
     if (!ChatExists(id))
     {
         var resp = new HttpResponseMessage(HttpStatusCode.NotFound)
         {
             Content      = new StringContent($"Чат с ID = {id} не найден"),
             ReasonPhrase = "Chat ID Not Found"
         };
         throw new HttpResponseException(resp);
     }
     using (var connection = new SqlConnection(_connectionString))
     {
         connection.Open();
         using (var command = connection.CreateCommand())
         {
             command.CommandText = "SELECT * FROM Messages WHERE ChatId = @id";
             command.Parameters.AddWithValue("@id", id);
             using (var reader = command.ExecuteReader())
             {
                 while (reader.Read())
                 {
                     yield return(_messagesRepository.Get(reader.GetGuid(reader.GetOrdinal("MessageId"))));
                 }
             }
         }
     }
 }
        public Message Get([FromUri] Guid id)
        {
            Log.Debug($"Получение сообщения с Id = {id} из БД.");
            var result = _messagesRepository.Get(id);

            Log.Debug($"Получение сообщения из БД завершено.");
            return(result);
        }
Exemple #3
0
        public Message Get(string messageId)
        {
            var res = repository.Get(messageId);

            if (res == null)
            {
                res = new MessageDTO();
            }

            return(mapper.Map <MessageDTO, Message>(res));
        }
        public async Task <MessageDetailsResponse> Get(int userId, int id)
        {
            var message = await _repo.Get(id);

            if (message == null)
            {
                throw new RestException(HttpStatusCode.NotFound, new { Message = "Not found" });
            }
            var currentUserId = _userAccessor.getCurrentUserId();

            if (userId != currentUserId)
            {
                throw new RestException(HttpStatusCode.Forbidden);
            }


            if (message.RecipientId != currentUserId && message.SenderId != currentUserId)
            {
                throw new RestException(HttpStatusCode.Forbidden);
            }

            return(_mapper.Map <MessageDetailsResponse>(message));
        }
        private dynamic Execute(IEventPublisher eventPublisher, ISessionsRepository sessionsRepository, IMessagesRepository messagesRepository, DeleteMessage command)
        {
            var sessionId = new SessionId(command.SessionId);

            var deleter = sessionsRepository.GetUserIdOfSession(sessionId);

            if (!deleter.HasValue)
            {
                return(Negotiate.WithStatusCode(HttpStatusCode.Forbidden).WithModel("Invalid session"));
            }

            var messageId        = new MessageId(command.MessageId);
            var messageToDeleted = messagesRepository.Get(messageId);

            messageToDeleted.Delete(eventPublisher, deleter.Value);

            return(Negotiate.WithStatusCode(HttpStatusCode.OK).WithModel("Message deleted"));
        }