Example #1
0
        // 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);
        }
Example #2
0
        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));
        }