// POST api/Chat public JSONResponse Post([FromBody] JSONChatMessage message) { var response = new JSONResponse(false, null); try { response.responseObject = _controllerInstance.SendMessage(message); } catch (JJLowPrioException jjexc) { response.isException = true; response.responseObject = new JSONJJLowPrioException(jjexc); } catch (Exception exc) { JJChatLoggerInstanceManager.GetInstance().Error("Fatal error occured in 'POST api/Chat'!", exc); throw exc; } return(response); }
public JSONChatMessage SendMessage(JSONChatMessage jsonMessage) { var msgSender = _userRepo.GetAll(x => x.Id == jsonMessage.sender).FirstOrDefault(); var msgReceiver = _userRepo.GetAll(x => x.Id == jsonMessage.receiver).FirstOrDefault(); if (msgSender == null) { throw new JJLowPrioException($"ungültiger Versender: {jsonMessage.sender}!"); } if (msgReceiver == null) { throw new JJLowPrioException($"Ungültiger Empfänger: {jsonMessage.receiver}!"); } if (msgSender == msgReceiver) { throw new JJLowPrioException("Versender kann nicht Empfänger sein!"); } var message = new ChatMessage { Id = jsonMessage.id, Delivered = jsonMessage.delivered, Sent = jsonMessage.sent, Message = jsonMessage.message, Sender = msgSender, Receiver = msgReceiver }; if (message.Sent == DateTime.MinValue) { message.Sent = DateTime.Now; } message = _chatMessageRepo.Insert(message); _chatMessageRepo.Save(); return(new JSONChatMessage(message)); }