コード例 #1
0
 /// <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));
     }
 }
コード例 #2
0
 /// <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));
     }
 }
コード例 #3
0
        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);
                    }
                }
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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
            });
        }
コード例 #6
0
 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);
 }
コード例 #7
0
 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);
 }
コード例 #8
0
        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."));
            }
        }
コード例 #9
0
        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());
        }