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); }
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")); }