public async Task <bool> SendReplyUpdate(PutReplyUpdateRequest request) { var now = _repository.GetSchoolNow(request.AdmSiteId); var message = await _repository.FindAsync <AdmMessage>(request.AdmMessageId); if (message != null) { if (message.AdmUserID != request.AdmUserId && message.AdmMessagesReplies != null && !message.AdmMessagesReplies.Any()) { // add record to AdmMessagesReply to indicate the very first reply, // so it would be displayed in addressee's inbox AdmMessagesReply admMessagesReply = new AdmMessagesReply { AdmMessageID = request.AdmMessageId, SentToAdmUserID = message.AdmUserID, SentByAdmUserID = request.AdmUserId, SiteDescription = request.SiteName, GroupName = request.GroupName, UserName = request.FirstName + " " + request.LastName, MessageDate = now }; message.AdmMessagesReplies.Add(admMessagesReply); } // add details AdmMessagesDetail admMessagesDetail = new AdmMessagesDetail { AdmMessageID = request.AdmMessageId, SentByAdmUserID = request.AdmUserId, MesageText = request.Message, MessageDate = now }; message.AdmMessagesDetails.Add(admMessagesDetail); // reset message IsRead flag message.IsRead = false; // update the whole message and all its parts await _repository.UpdateAsync(message); // reset reply IsRead flag var reply = await _repository.GetAsync <AdmMessagesReply>(m => m.AdmMessageID == request.AdmMessageId); if (reply != null) { reply.IsRead = false; await _repository.UpdateAsync(reply); } } return(true); }
public async Task <ActionResult <bool> > SendReplyUpdate(PutReplyUpdateRequest request) { return(await _logic.SendReplyUpdate(request)); }