/// <summary> /// This method is used to save new messages /// </summary> /// <returns></returns> public OperationStatus SubmitMessage(MessageCustomModel model) { using (_IMessageRepo = new MessageRepo()) { return(_IMessageRepo.SubmitMessage(model)); } }
/// <summary> /// This method is used to get my sent messages /// </summary> /// <returns></returns> public object GetMySentMessage(MessageCustomModel model) { using (_IMessageRepo = new MessageRepo()) { return(_IMessageRepo.GetMySentMessage(model)); } }
public object GetMySentMessage(MessageCustomModel model) { List <MessageCustomModel> MessageListModel = new List <MessageCustomModel>(); using (response = new Response()) { using (dbcontext = new ChatApplicationEntities()) { try { response.success = true; MessageListModel = dbcontext.tblMessages.Where(x => x.SenderId == model.SenderId && (model.ReceiverId == null || model.ReceiverId == 0 || x.tblMessageRecipients.FirstOrDefault(m => m.RecipientId == model.ReceiverId).RecipientId == model.ReceiverId)) .Select(x => new MessageCustomModel { Id = x.Id, SenderId = x.SenderId, ReceiverName = x.tblMember != null ? dbcontext.tblMembers.FirstOrDefault(m => m.MemberId == model.ReceiverId).Name : "", SenderName = x.tblMember != null ? dbcontext.tblMembers.FirstOrDefault(m => m.MemberId == model.SenderId).Name : "", MessageBody = x.MessageBody, IsActive = x.IsActive, CreatedDate = x.CreatedDate, }).OrderBy(x => x.Id).ToList(); return(MessageListModel); } catch (Exception ex) { response.success = false; response.message = ex.Message; return(response); } } } }
public OperationStatus SubmitMessage(MessageCustomModel model) { OperationStatus status = OperationStatus.Error; using (TransactionScope ts = new TransactionScope()) { try { using (dbcontext = new ChatApplicationEntities()) { if (model.Id == 0) { tblMessage _addMessage = new tblMessage { SenderId = model.SenderId, Subject = model.Subject, MessageBody = model.MessageBody, ParentMessageId = model.ParentMessageId, IsActive = true, CreatedDate = DateTime.Now }; dbcontext.tblMessages.Add(_addMessage); dbcontext.SaveChanges(); int messageid = _addMessage.Id; tblMessageRecipient _addMessageRecipient = new tblMessageRecipient { MessageId = messageid, RecipientId = model.ReceiverId, IsActive = true, CreatedDate = DateTime.Now, }; dbcontext.tblMessageRecipients.Add(_addMessageRecipient); dbcontext.SaveChanges(); status = OperationStatus.Success; ts.Complete(); } else { status = OperationStatus.Duplicate; //ts.Dispose(); } } } catch (Exception ex) { dbcontext.Dispose(); status = OperationStatus.Exception; ts.Dispose(); throw ex; } } return(status); }
public ResponseModel MarkAsRead(MessageCustomModel model) { using (MessageService mservice = new MessageService()) { mservice.Query($"UPDATE [dbo].[Message] SET [Status]=1 WHERE [TicketId]={model.TicketId} AND [ReceiverUserId]={model.ReceiverUserId} AND [Status]=0;"); } return(new ResponseModel() { Code = 1 }); }
public object GetMySentMessage(MessageCustomModel model) { _response = new Response(); try { IMessageBusiness MessageService = new MessageBusiness(); _response.responseData = MessageService.GetMySentMessage(model); _response.message = "Records loaded successfully !!"; _response.success = true; } catch (Exception ex) { _response.success = false; _response.message = ex.Message.ToString(); } finally { MessageService = null; } return(_response); }
public Response SubmitMessage(MessageCustomModel model) { _response = new Response(); try { IMessageBusiness MessageService = new MessageBusiness(); _response.responseData = MessageService.SubmitMessage(model); _response.message = "Message submit successfully !!"; _response.success = true; } catch (Exception ex) { _response.success = false; _response.message = ex.Message.ToString(); } finally { MessageService = null; } return(_response); }
public async Task <HttpResponseMessage> SendMessage(MessageCustomModel model) { try { Message email = new Message(); string fromName = ""; var docsender = (from doc in db.Doctors where doc.email == model.@from select new DoctorModel { firstName = doc.firstName, lastName = doc.lastName }).FirstOrDefault(); var patsender = (from pat in db.Patients where pat.email == model.@from select new PatientModel { firstName = pat.firstName, lastName = pat.lastName }).FirstOrDefault(); if (docsender != null) { fromName = docsender.firstName + " " + docsender.lastName; } if (patsender != null) { fromName = patsender.firstName + " " + patsender.lastName; } if (model.to == "0") { model.to = "*****@*****.**"; } if (model.to == "" || model.to == null) { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ApiResultModel { ID = 0, message = "Reciever's email address is invalid." }); return(response); } if (!(IsValid(model.to))) { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ApiResultModel { ID = 0, message = "Reciever's email address is invalid." }); return(response); } if (model.from == null || model.from == "" || !(IsValid(model.from))) { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ApiResultModel { ID = 0, message = "Sender's email address is invalid." }); return(response); } if (model.message == null || model.message == "") { response = Request.CreateResponse(HttpStatusCode.BadRequest, new ApiResultModel { ID = 0, message = "Empty message is not allowed." }); return(response); } email.cd = System.DateTime.Now; email.senderName = fromName; email.subject = model.subject; email.mesage = model.message; email.from = model.from; email.to = model.to; email.isRead = false; email.status = "1"; email.replyLink = model.replyLink; if (model.msgFile != null) { email.hasAttachment = true; } if (model.msgFile == null) { email.hasAttachment = false; } db.Messages.Add(email); await db.SaveChangesAsync(); if (model.msgFile != null) { foreach (var item in model.msgFile) { MessageFile emailattch = new MessageFile(); emailattch.msgID = email.msgID; emailattch.fileContent = item.fileContent; emailattch.fileName = item.fileName; db.MessageFiles.Add(emailattch); await db.SaveChangesAsync(); } } response = Request.CreateResponse(HttpStatusCode.OK, new ApiResultModel { ID = email.msgID, message = "" }); return(response); } catch (Exception ex) { return(ThrowError(ex, "SendMessage in MessagesController.")); } }
public TicketCustomModel Send(MessageCustomModel model) { int ticketId = 0, messageId = 0; using (UserService uservice = new UserService()) using (TicketService tservice = new TicketService()) using (MessageService mservice = new MessageService()) using (TransactionScope scope = new TransactionScope()) { uservice.CurrentUser = uservice.GetUser(model.Email); baseC.LogWriter.WriteLine(); baseC.LogWriter.WriteLine($"BEGIN: Creating chat @{DateTime.Now} by {uservice.CurrentUser.Email}"); #region Determine Receiver int?receiverId = model.ReceiverUserId; if (!receiverId.HasValue) { List <User> users = uservice.ListAvalaibleSupport(); // => Can Receive if (users.NullableAny(a => ( OnlineStatus )a.ChatStatus == OnlineStatus.Online)) { receiverId = users.FirstOrDefault(a => ( OnlineStatus )a.ChatStatus == OnlineStatus.Online).Id; } else if (users.NullableAny()) { receiverId = users.FirstOrDefault().Id; } } model.ReceiverUserId = receiverId; #endregion int status = model.IsClose ? 1 : 0; #region Ticket Ticket t = (model.TicketId > 0) ? tservice.GetById(model.TicketId) : null; string number = tservice.GetSha1Md5String(DateTime.Now.Ticks.ToString()); if (t == null) { t = new Ticket() { Status = status, UID = Guid.NewGuid(), OwnerUserId = model.SenderUserId, Number = number.Substring(0, 5), DepartmentId = model.DepartmentId, SupportUserId = model.ReceiverUserId, }; tservice.Create(t); } else if (t != null && model.IsClose) { t.Rating = model.Rating; t.DateClosed = DateTime.Now; t.ClosedByUserId = model.SenderUserId; tservice.Update(t); } ticketId = t.Id; #endregion #region Message Message m = new Message() { TicketId = t.Id, Status = status, UID = Guid.NewGuid(), Details = model.Details, IsClose = model.IsClose, IsSupport = model.IsSupport, SenderUserId = model.SenderUserId, ReceiverUserId = model.ReceiverUserId, }; m = mservice.Create(m); messageId = m.Id; #endregion baseC.LogWriter.WriteLine(); baseC.LogWriter.WriteLine($"FINISH: Creating chat @{DateTime.Now} by {uservice.CurrentUser.Email}"); scope.Complete(); } SendMobileNotification(model.ReceiverUserId ?? 0, model.Details, ticketId, messageId, model.Email); List <TicketCustomModel> tickets = List(model.Email, model.APIKey); return(tickets?.FirstOrDefault()); }