public MessageDTO deleteMessage(int id) { using (var uow = new UnitOfWork()) { var messageRepository = uow.GetRepository <Message>(); var acountRepository = uow.GetRepository <Account>(); var conversationRepository = uow.GetRepository <Conversation>(); var message = messageRepository.GetById(id); if (message == null) { return(null); } else { message.Conversation = conversationRepository.GetById(message.ConversationId); message.User = acountRepository.GetById(message.UserId); MessageMapper messageMapper = new MessageMapper(); MessageDTO messageDTO = messageMapper.MapToDTO(message); messageRepository.Delete(id); uow.SaveChanges(); return(messageDTO); } } }
public IEnumerable <MessageDTO> GetMessages(int pageSize, int pageNumber, int userOneId, int userSecondId) { using (var uow = new UnitOfWork()) { var conversationRepository = uow.GetRepository <Conversation>(); var messagesRepository = uow.GetRepository <Message>(); var accountRepository = uow.GetRepository <Account>(); var conversation = conversationRepository.FindBy(conv => ( (conv.UserOneId == userOneId & conv.UserTwoId == userSecondId) | (conv.UserOneId == userSecondId & conv.UserTwoId == userOneId))).FirstOrDefault(); if (conversation == null) { return(null); } var messages = messagesRepository.GetAll().Where(m => m.ConversationId == conversation.Id); var totalCount = messages.Count(); var totalPages = Math.Ceiling((double)totalCount / pageSize); messages = messages.OrderByDescending(s => s.Date); var messagesPage = messages.Skip((pageNumber - 1) * pageSize) .Take(pageSize) .ToList(); List <MessageDTO> messDTO = new List <MessageDTO>(); MessageMapper messageMapper = new MessageMapper(); foreach (Message m in messagesPage) { m.User = accountRepository.GetById(m.UserId); m.Conversation = conversationRepository.GetById(m.ConversationId); messDTO.Add(messageMapper.MapToDTO(m)); } return(messDTO); } }
public MessageDTO addMessage(MessageDTO messageDTO) { using (var uow = new UnitOfWork()) { var messageRepository = uow.GetRepository <Message>(); var acountRepository = uow.GetRepository <Account>(); var conversationRepository = uow.GetRepository <Conversation>(); Account ac = acountRepository.GetById(messageDTO.User.Id); MessageMapper messageMapper = new MessageMapper(); messageDTO.User.FullName = ac.FirstName + " " + ac.LastName; Message message = messageMapper.MapFromDTO(messageDTO); message.User = ac; message.Conversation = conversationRepository.GetById(messageDTO.ConversationId); message.Date = DateTime.Now; message = messageRepository.Add(message); uow.SaveChanges(); return(messageMapper.MapToDTO(message)); } }