Exemplo n.º 1
0
        public async Task ReceiveNewMessage(Message message, string sender = "", bool unread = true, bool save = true)
        {
            var chat = await FindFirstAsync(c => c.GroupName == message.GroupName && c.Online);

            if (chat != null)
            {
                var role = MessageRoles.System;
                if (!string.IsNullOrWhiteSpace(message.Sender))
                {
                    role = message.Sender == chat.Owner ? MessageRoles.Self : MessageRoles.Other;
                }

                var record = new ChatRecord
                {
                    Content = message.Content,
                    Data    = message.Data?.ToString(),
                    Time    = message.Time,
                    Unread  = unread,
                    Type    = message.Type,
                    Who     = (int)role,
                    Chat    = chat
                };
                await _dbContext.ChatRecords.AddAsync(record);

                if (save)
                {
                    await _dbContext.SaveChangesAsync();
                }
            }
        }
Exemplo n.º 2
0
        public HttpResponseMessage SendMessage(long UserId1, long UserId2, string Content)
        {
            ChatRecord chatRecord = new ChatRecord()
            {
                UserId1     = UserId1,
                UserId2     = UserId2,
                ChatContent = Content,
                ChatTime    = DateTime.Now
            };

            try
            {
                db.ChatRecords.Add(chatRecord);
                db.SaveChanges();
            }
#pragma warning disable CS0168 // 声明了变量“ex”,但从未使用过
            catch (Exception ex)
#pragma warning restore CS0168 // 声明了变量“ex”,但从未使用过
            {
                return(ApiResponse.BadRequest("发送失败!"));
            }
            return(ApiResponse.Ok(new
            {
                chatRecord.Id,
                chatRecord.UserId1,
                chatRecord.UserId2,
                chatRecord.ChatContent,
                chatRecord.ChatTime
            }));
        }
Exemplo n.º 3
0
        public IActionResult GetChatList(long UserId)
        {
            List <ChatRecord>           allChatRecords = db.ChatRecords.Where(s => s.UserId1 == UserId || s.UserId2 == UserId).OrderByDescending(s => s.ChatTime).ToList();
            Dictionary <long, string[]> result         = new Dictionary <long, string[]>(); //key为对方用户的Id即UserId2

            for (int i = 0; i < allChatRecords.Count; i++)
            {
                ChatRecord temp    = allChatRecords[i];
                long       UserId2 = temp.UserId1 == UserId ? temp.UserId2 : temp.UserId1;
                if (result.Keys.Contains(UserId2))
                {
                    continue;
                }
                result.Add(UserId2, new string[] { db.Users.FirstOrDefault(s => s.Id == UserId2).Username, temp.ChatContent, temp.ChatTime.Date == DateTime.Today ? "今天 " + temp.ChatTime.ToString("HH:mm") : temp.ChatTime.ToString("yyyy-MM-dd hh:mm") });
            }
            return(Json(new
            {
                data = result.Select(s => new
                {
                    UserId = s.Key,
                    Username = s.Value[0],
                    LatestChatContent = s.Value[1],
                    LatestDatetime = s.Value[2],
                })
            }));
        }
Exemplo n.º 4
0
        /// <summary>
        /// 发送信息
        /// </summary>
        /// <param name="username"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public async Task SendMessage(ChatRecord chatRecord)
        {
            try
            {
                string sender   = chatRecord.Sender;
                string receiver = chatRecord.Receiver;
                chatRecord.IsSend = false;

                if (receiver != "广播聊天室")
                {
                    string receiverId = await _accountService.GetConnectIdAsync(receiver);

                    await Clients.Client(receiverId).ReceiveMessage(chatRecord);
                }
                else
                {
                    await Clients.Others.ReceiveMessage(chatRecord);
                }
            }catch (ApplicationException e)
            {
                await Clients.Client(Context.ConnectionId).ReceiveMessage(new ChatRecord
                {
                    Sender   = "SYSTEM",
                    Receiver = chatRecord.Receiver,
                    Message  = "对方已离线",
                    Date     = chatRecord.Date
                });

                _logger.LogWarning($"SignalR获取connectId异常,异常信息{e.Message}");
            }
        }
 //Add message to chat window.
 void addMessage(JsonObject messge)
 {
     System.Object msg = null, fromName = null;
     if (messge.TryGetValue("msg", out msg) && messge.TryGetValue("from", out fromName))
     {
         ChatRecord cobj = new ChatRecord(fromName.ToString(), msg.ToString());
         //if(!chatRecords.Contains(cobj))
         chatRecords.Add(cobj);
     }
 }
Exemplo n.º 6
0
        private void SendMessageHandler(SendMessage sendMessage)
        {
            var record = new ChatRecord()
            {
                UserName     = sendMessage.UserName,
                Content      = sendMessage.Content,
                SendDateTime = sendMessage.SendDateTime
            };

            ChatRecords.Add(record);
        }
Exemplo n.º 7
0
        public async Task <string> SendMessage(int groupId, int type, string content)
        {
            bool hasUserId = ConnectionIdToUserId.TryGetValue(Context.ConnectionId, out int userId);

            if (!hasUserId)
            {
                return("当前未确客户端用户身份");
            }
            if (type == (int)ChatMessage.MessageTypeEnum.Image && !CheckImageExist(content))
            {
                return("找不到消息的图片资源,请先上传图片资源");
            }
            var group = await GroupService.GroupFromId(groupId);

            if (group.State != ServiceResultEnum.Exist)
            {
                return(group.Detail);
            }
            var user = await AccountService.UserFromId(userId);

            if (user.State != ServiceResultEnum.Exist)
            {
                return(user.Detail);
            }
            var userInGroup = await GroupService.HasMemberShip(user.ExtraData, group.ExtraData);

            if (!userInGroup.ExtraData)
            {
                return(userInGroup.Detail);
            }
            var targets = Clients.Group(groupId.ToString());
            var message = new ChatMessage
            {
                MessageOrImageKey = content,
                Type = (ChatMessage.MessageTypeEnum)type
            };
            ChatRecord chatRecord = new ChatRecord
            {
                Sender      = user.ExtraData,
                CreatedTime = DateTime.Now,
                Group       = group.ExtraData,
                Message     = message
            };

            XueLeMeContext.ChatMessages.Add(message);
            XueLeMeContext.ChatRecords.Add(chatRecord);
            await XueLeMeContext.SaveChangesAsync();

            await targets.SendAsync("OnReceiveMessage", userId, groupId, type, content, chatRecord.CreatedTime);

            return("发送成功");
        }
Exemplo n.º 8
0
        public void Add(SendMessageInput input)
        {
            var chatRecord = new ChatRecord
            {
                Id       = input.Id,
                Body     = input.Body,
                Sender   = input.Sender,
                Receiver = input.Receiver,
                SendOn   = input.SendOn,
                Type     = input.Type
            };

            _chatRecordRepository.Insert(chatRecord);
        }
Exemplo n.º 9
0
        /// <summary>
        /// 添加用户的会话记录(用户之间仅一条)
        /// </summary>
        /// <returns></returns>
        public async Task AddChatRecord(Guid receiverId)
        {
            //查询当前用户会话是否已经存在
            var chatRecord = _chatRecordRepository.GetAll()
                             .FirstOrDefault(x => x.SenderId == GetThisUserId && x.ReceiverId == receiverId || x.SenderId == receiverId && x.ReceiverId == GetThisUserId);

            if (chatRecord == null)
            {
                chatRecord = new ChatRecord
                {
                    SenderId   = GetThisUserId,
                    ReceiverId = receiverId
                };
                await _chatRecordRepository.AddOrEditAndSaveAsyn(chatRecord);
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// 发送通知消息给客服
        /// </summary>
        /// <param name="content"></param>
        /// <param name="csUserId"></param>
        /// <returns></returns>
        public async Task SendNoticeToCustomerServiceAsync(string content, string csUserId)
        {
            var message = new ChatRecord
            {
                Content = content,
                Type    = MessageTypes.Notice,
                Who     = 0,
                Time    = DateTime.Now
            };
            var server = await _redis.HGetAsync(Constants.RedisKey.AllOnlineCustomerService, csUserId);

            if (!string.IsNullOrEmpty(server))
            {
                await _hub.Clients.Client(server).SendAsync("receiveMessage", message);
            }
        }
Exemplo n.º 11
0
 /// <summary>
 /// Adds new contact to friend list.
 /// </summary>
 /// <param name="login">username of the contact to be added</param>
 /// <param name="status">status of the contact to be added</param>
 /// <param name="isFriend">true if the contact is friend of the player</param>
 private void AddContactToList(string login, Status status, bool isFriend = true)
 {
     PlayerHelper.GetAvatar(login,
                            texture => { FriendListController.SetAvatar(login, texture); },
                            error =>
     {
         Debug.LogWarning("Could not get avatar for user " + login +
                          ". Default avatar will be used.");
     });
     FriendListController.AddItem(login, status, isFriend);
     if (isFriend)
     {
         chatRecords[login] = new ChatRecord();
     }
     ChatTip.text = "Select a player to challenge or chat with a friend";
 }
Exemplo n.º 12
0
        private void pic_Click(object sender, RoutedEventArgs e)
        {
            string filePath   = null;
            string fileName   = null;
            double fileLength = 0;

            System.Windows.Forms.OpenFileDialog dialog = new System.Windows.Forms.OpenFileDialog();
            dialog.Filter = "图像文件|*.jpg;*.jpeg;*.png;*.bmp";
            if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                fileName = dialog.SafeFileName;
                filePath = dialog.FileName;
            }
            if (!string.IsNullOrEmpty(filePath))
            {
                fileLength  = new FileInfo(filePath).Length;
                fileLength /= 1024;
                fileLength /= 1024;

                int failtime = 0;
                cs.SendMessage(ChatMessageType.PICTURE, fileName + "~" + filePath + "~" + fileLength.ToString("0.00"));
                //等待对方开启照片接收线程
                Thread.Sleep(1000);
                while (true)
                {
                    try
                    {
                        FileSend fs = new FileSend(ip, filePath, fileName);
                        fs.SendFile();
                        break;
                    }
                    catch (Exception ex)
                    {
                        Thread.Sleep(200);
                        failtime++;
                        if (failtime == 10)
                        {
                            break;
                        }
                    }
                }
                Show_Time();
                ChatRecord.Document.Blocks.Add(Function.ToShow(TextAlignment.Right, new BitmapImage(new Uri(filePath, UriKind.Relative)), 1, Main.myheader));
                ChatRecord.ScrollToEnd();
            }
        }
Exemplo n.º 13
0
        public async Task <ServiceResult <object> > SendMessage(User user, ChatGroup chatGroup, ChatMessage.MessageTypeEnum messageType, string content)
        {
            if (messageType == ChatMessage.MessageTypeEnum.Image)
            {
                if (Context.BinaryFiles.FirstOrDefault(f => f.MD5 == content) == null)
                {
                    return(NotFound("找不到消息的图片资源,请先上传图片资源"));
                }
            }
            ChatMessage chatMessage = new ChatMessage
            {
                MessageOrImageKey = content,
                Type = messageType,
            };
            ChatRecord chatRecord = new ChatRecord
            {
                Sender      = user,
                CreatedTime = DateTime.Now,
                Group       = chatGroup,
                Message     = chatMessage,
            };

            Context.ChatMessages.Add(chatMessage);
            Context.ChatRecords.Add(chatRecord);
            await Context.SaveChangesAsync();

            ChatMessageDetail messageDetail = new ChatMessageDetail
            {
                Id    = chatRecord.Id,
                User  = user.ToDetail(),
                Group = new GroupBrief {
                    Id   = chatGroup.Id,
                    Name = chatGroup.GroupName,
                },
                MessageType = messageType,
                Content     = content,
                CreatedTime = chatRecord.CreatedTime,
            };
            await NotificationService.NotifyGroupMembers(chatGroup.Id, messageDetail.ToJson(), NotificationTypeEnum.ChatMessage);

            return(Success("发送成功"));
        }
Exemplo n.º 14
0
        //read in the log file csv format into a chatlog object
        public static ChatRecord FromCSV(string record)
        {
            // {date, userid, [word1:2, word3:7...]}
            ChatRecord crecord = new ChatRecord();

            string[] fields = record.Split(',');
            DateTime timestamp;

            try
            {
                timestamp = Convert.ToDateTime(fields[0]);
            }
            catch
            {
                timestamp = DateTime.Now;
            }

            string userid = fields[1];


            crecord.User      = userid;
            crecord.TimeStamp = timestamp;

            List <string> msgwords = fields.ToList().GetRange(2, fields.Length - 2);

            //count the number of instances of this word in the record
            foreach (string word in msgwords)
            {
                if (crecord.Words.ContainsKey(word.ToLower()))
                {
                    crecord.Words[word.ToLower()] += 1;
                }
                else
                {
                    crecord.Words.Add(word.ToLower(), 1);
                }
            }

            return(crecord);
        }
Exemplo n.º 15
0
        public void Save(string groupName, string name, string message)
        {
            // Save message to DB
            using (var conn = new dbEntities())
            {
                var id = Int32.Parse(groupName);

                this.lesson = conn.Lessons.FirstOrDefault(a => a.ID == id);
                if (this.lesson == null)
                {
                    throw new Exception("Lesson does not exist.");
                }

                this.chatRecord = new ChatRecord()
                {
                    Lesson_ID    = id,
                    Chat_User    = name,
                    Char_Message = message,
                    DateTime     = DateTime.Now.ToUniversalTime(),
                };
                conn.ChatRecords.Add(this.chatRecord);
                conn.SaveChanges();
            }
        }
Exemplo n.º 16
0
        private void OnScreenCaputred(object sender, RisCaptureLib.ScreenCaputredEventArgs e)
        {
            //set last size
            lastSize = new Size(e.Bmp.Width, e.Bmp.Height);


            m.Dispatcher.Invoke(new Action(delegate
            {
                m.Show();
                System.Drawing.Bitmap bmpImg = e.BmpImg;
                string fileName = new Random().NextDouble().ToString() + ".jpg";
                string filePath = "./ChatImageSend/" + new Random().NextDouble().ToString() + ".jpg";
                bmpImg.Save(filePath);
                FileInfo f        = new FileInfo(filePath);
                double fileLength = f.Length;
                Show_Time();
                ChatRecord.Document.Blocks.Add(Function.ToShow(TextAlignment.Right, e.Bmp, 1, Main.myheader));
                ChatRecord.ScrollToEnd();
                cs.SendMessage(ChatMessageType.PICTURE, fileName + "~" + filePath + "~" + fileLength.ToString("0.00"));
                //等待对方开启照片接收线程
                Thread.Sleep(2000);
                while (true)
                {
                    try
                    {
                        FileSend fs = new FileSend(ip, filePath, fileName);
                        fs.SendFile();
                        break;
                    }
                    catch (Exception ex)
                    {
                        Thread.Sleep(200);
                    }
                }
            }));
        }
 private void SaveSentResponse(IncomingRequest request, ChatRecord userlastRecordDb, string incomingMessage, string lastSentFormat)
 {
     if (userlastRecordDb == null)
     {
         var newRecord = new ChatRecord()
         {
             LastReceivedMessage = incomingMessage,
             SentOn          = DateTime.Now,
             LastSentFormat  = lastSentFormat,
             LastSentMessage = request.body,
             MobileNumber    = request.to
         };
         _dbContext.ChatRecords.Add(newRecord);
     }
     else
     {
         userlastRecordDb.LastSentMessage     = request.body;
         userlastRecordDb.MobileNumber        = request.to;
         userlastRecordDb.SentOn              = DateTime.Now;
         userlastRecordDb.LastReceivedMessage = incomingMessage;
         userlastRecordDb.LastSentFormat      = lastSentFormat;
     }
     _dbContext.SaveChanges();
 }
Exemplo n.º 18
0
        private void Send_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                cs.ConnectFriend();
            }
            catch { }
            try
            {
                cs.SendMessage(ChatMessageType.CHAT, Tosend.Text);
            }
            catch (Exception ex)
            {
                Thread.Sleep(200);
            }

            //判断一下是否需要更新时间

            Show_Time();
            //在窗口显示内容、清空输入框、确保窗口自动滚动至下方
            ChatRecord.Document.Blocks.Add(Function.ToShow(TextAlignment.Right, Tosend.Text, 1, Main.myheader));
            Tosend.Clear();
            ChatRecord.ScrollToEnd();
        }
        private IncomingRequest ReOrder(IncomingRequest request, string orderOptionNumber, ChatRecord userlastRecordDb, string incomingMessage)
        {
            try
            {
                var url = "/getValidatedOrder";
                // var validatedOrders = WebGETSync<List<OrderResponse>>(url);

                var validatedOrders = new List <OrderResponse>()
                {
                    new OrderResponse {
                        Name = "Order1", Id = 111111, ValidatedOn = DateTime.Now
                    },
                    new OrderResponse {
                        Name = "Order2", Id = 222222, ValidatedOn = DateTime.Now
                    },
                    new OrderResponse {
                        Name = "Order3", Id = 333333, ValidatedOn = DateTime.Now
                    },
                    new OrderResponse {
                        Name = "Order4", Id = 444444, ValidatedOn = DateTime.Now
                    },
                    new OrderResponse {
                        Name = "Order5", Id = 555555, ValidatedOn = DateTime.Now
                    },
                };

                string reOrderUrl = "";

                if (orderOptionNumber == "1")
                {
                    reOrderUrl = $"/reorder?orderId={validatedOrders[0].Id}";
                }
                if (orderOptionNumber == "2")
                {
                    reOrderUrl = $"/reorder?orderId={validatedOrders[1].Id}";
                }
                if (orderOptionNumber == "3")
                {
                    reOrderUrl = $"/reorder?orderId={validatedOrders[2].Id}";
                }
                if (orderOptionNumber == "4")
                {
                    reOrderUrl = $"/reorder?orderId={validatedOrders[3].Id}";
                }
                if (orderOptionNumber == "5")
                {
                    reOrderUrl = $"/reorder?orderId={validatedOrders[4].Id}";
                }

                // var response = WebGETSync<ReorderResponse>(reOrderUrl);
                var response = new ReorderResponse {
                    Step = "Review", OrderId = "123"
                };

                if (response.Step == OrderingStep.Review.ToString())
                {
                    string OrderId = response.OrderId;

                    string orderMessage = $"Order (Order id :{OrderId}) has been succesfully placed.";

                    request.body = orderMessage;

                    SaveSentResponse(request, userlastRecordDb, incomingMessage, Constants.ReOrderSuceessMessage);
                }
                else
                {
                    request.body = Constants.ReOrderFailureMessage;
                    SaveSentResponse(request, userlastRecordDb, incomingMessage, Constants.ReOrderFailureMessage);
                }

                return(request);
            }
            catch
            {
                request.body = Constants.ApiExceptionMessage;
                SaveSentResponse(request, userlastRecordDb, incomingMessage, Constants.ApiExceptionMessage);
                return(request);
            }
        }
Exemplo n.º 20
0
        private void ProcessDisplayResponse(MemoryStream ms)
        {
            // Process the lines
            using (StreamReader sr = new StreamReader(ms))
            {
                List <ChatRecord> chat_records = new List <ChatRecord>();
                {
                    string     line;
                    ChatRecord last_chat_record = null;
                    while (null != (line = sr.ReadLine()))
                    {
                        string[] items = line.Split('\t');
                        {
                            last_chat_record           = new ChatRecord();
                            last_chat_record.Timestamp = items[0];
                            last_chat_record.Forum     = items[1];
                            last_chat_record.Username  = items[2];
                            last_chat_record.Comment   = items[3];
                        }
                        chat_records.Add(last_chat_record);
                    }

                    // Record the last epoch
                    if (null != last_chat_record)
                    {
                        last_epoch = last_chat_record.Timestamp;
                    }
                }

                // If there has been new chat, poll frequently
                if (0 < chat_records.Count)
                {
                    current_sleep_backoff_seconds = 1;
                    next_autopoll_datetime        = DateTime.UtcNow.AddSeconds(current_sleep_backoff_seconds);
                }
                else
                {
                    current_sleep_backoff_seconds = Math.Min(MAX_SLEEP_BACKOFF_SECONDS, 2 * current_sleep_backoff_seconds);
                    next_autopoll_datetime        = DateTime.UtcNow.AddSeconds(current_sleep_backoff_seconds);
                }

                // Update GUI
                Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    bool is_currently_at_scroll_bottom = ObjChatFlowDocumentScroll.VerticalOffset == ObjChatFlowDocumentScroll.ScrollableHeight;

                    foreach (ChatRecord chat_record in chat_records)
                    {
                        // Is this a different user chatting?
                        if (null == previous_chat_record || chat_record.Username != previous_chat_record.Username || null == previous_paragraph)
                        {
                            previous_paragraph = new Paragraph();
                            ObjChatFlowDocument.Blocks.Add(previous_paragraph);

                            previous_paragraph.TextAlignment = ToggleTextAlignment();

                            Run username_run        = new Run(chat_record.Username);
                            username_run.ToolTip    = String.Format("{0} ({1})", chat_record.Username, chat_record.Timestamp);
                            username_run.FontSize   = 12;
                            username_run.FontStyle  = FontStyles.Italic;
                            username_run.Foreground = ThemeColours.Background_Brush_Blue_VeryVeryDark;
                            username_run.Cursor     = Cursors.Pen;
                            username_run.MouseDown += username_run_MouseDown;

                            previous_paragraph.Inlines.Add(username_run);
                        }

                        previous_paragraph.Inlines.Add(new LineBreak());
                        previous_paragraph.Inlines.Add(new Run(chat_record.Comment));

                        previous_chat_record = chat_record;
                    }

                    if (is_currently_at_scroll_bottom)
                    {
                        ObjChatFlowDocumentScroll.ScrollToEnd();
                    }
                }
                                                                      ));
            }
        }
Exemplo n.º 21
0
 public void Post([FromBody] ChatRecord value)
 {
     _chatRecords.Add(value);
 }
        private IncomingRequest GetAllOrders(IncomingRequest request, ChatRecord userlastRecordDb, string incomingMessage)
        {
            try
            {
                //var response = WebGETSync<List<OrderResponse>>(url);

                var response = new List <OrderResponse>()
                {
                    new OrderResponse {
                        Name = "Order1", Id = 111111, ValidatedOn = DateTime.Now
                    },
                    new OrderResponse {
                        Name = "Order2", Id = 222222, ValidatedOn = DateTime.Now
                    },
                    new OrderResponse {
                        Name = "Order3", Id = 333333, ValidatedOn = DateTime.Now
                    },
                    new OrderResponse {
                        Name = "Order4", Id = 444444, ValidatedOn = DateTime.Now
                    },
                    new OrderResponse {
                        Name = "Order5", Id = 555555, ValidatedOn = DateTime.Now
                    },
                };

                var text = Constants.AllOrdersMessage;

                string firstOrder  = "";
                string secondOrder = "";
                string thirdOrder  = "";
                string fourthOrder = "";
                string fifthOrder  = "";

                if (response.Any())
                {
                    if (response[0] != null)
                    {
                        firstOrder = $"1.OrderName : {response[0].Name}, OrderId : {response[0].Id}, ValidatedOn : {response[0].ValidatedOn}";
                    }
                    if (response[1] != null)
                    {
                        secondOrder = $"2.OrderName : {response[1].Name}, OrderId : {response[1].Id}, ValidatedOn : {response[1].ValidatedOn}";
                    }
                    if (response[2] != null)
                    {
                        thirdOrder = $"3.OrderName : {response[2].Name}, OrderId : {response[2].Id}, ValidatedOn : {response[2].ValidatedOn}";
                    }
                    if (response[3] != null)
                    {
                        fourthOrder = $"4.OrderName : {response[3].Name}, OrderId : {response[3].Id}, ValidatedOn : {response[3].ValidatedOn}";
                    }
                    if (response[4] != null)
                    {
                        fifthOrder = $"5.OrderName : {response[4].Name}, OrderId : {response[4].Id}, ValidatedOn : {response[4].ValidatedOn}";
                    }

                    var ordersList = text + "@" + firstOrder + "@" + secondOrder + "@" + thirdOrder + "@" + fourthOrder + "@" + fifthOrder;
                    ordersList = ordersList.Replace("@", System.Environment.NewLine);

                    request.body = ordersList;

                    SaveSentResponse(request, userlastRecordDb, incomingMessage, Constants.AllOrdersMessage);
                    return(request);
                }
                else
                {
                    request.body = Constants.NoOrderMessage;
                    SaveSentResponse(request, userlastRecordDb, incomingMessage, Constants.NoOrderMessage);
                    return(request);
                }
            }
            catch
            {
                request.body = Constants.ApiExceptionMessage;
                SaveSentResponse(request, userlastRecordDb, incomingMessage, Constants.ApiExceptionMessage);
                return(request);
            }
        }
Exemplo n.º 23
0
        /// <summary>
        /// 存储过程
        /// </summary>
        /// <param name="chatRecord"></param>
        /// <returns></returns>
        private bool AdddChatRecord(ChatRecord chatRecord)
        {
            conn.Execute("usp_insertChatRecord", param: chatRecord, commandType: System.Data.CommandType.StoredProcedure);

            return(true);
        }
        private IncomingRequest GetOrderStatus(IncomingRequest request, string orderOptionNumber, ChatRecord userlastRecordDb, string incomingMessage)
        {
            try
            {
                var url = "/getAllOrders";
                // var orders = WebGETSync<IList<OrderResponse>>(url);

                var orders = new List <OrderResponse>()
                {
                    new OrderResponse {
                        Name = "Order1", Id = 111111, ValidatedOn = DateTime.Now
                    },
                    new OrderResponse {
                        Name = "Order2", Id = 222222, ValidatedOn = DateTime.Now
                    },
                    new OrderResponse {
                        Name = "Order3", Id = 333333, ValidatedOn = DateTime.Now
                    },
                    new OrderResponse {
                        Name = "Order4", Id = 444444, ValidatedOn = DateTime.Now
                    },
                    new OrderResponse {
                        Name = "Order5", Id = 555555, ValidatedOn = DateTime.Now
                    },
                };

                string orderStatusUrl = "";
                string orderName      = "";
                string orderId        = "";

                if (orderOptionNumber == "1")
                {
                    orderStatusUrl = $"/getOrderStatusById?orderId={orders[0].Id}";

                    orderName = orders[0].Name;
                    orderId   = orders[0].Id.ToString();
                }
                if (orderOptionNumber == "2")
                {
                    orderStatusUrl = $"/getOrderStatusById?orderId={orders[1].Id}";

                    orderName = orders[1].Name;
                    orderId   = orders[1].Id.ToString();
                }
                if (orderOptionNumber == "3")
                {
                    orderStatusUrl = $"/getOrderStatusById?orderId={orders[2].Id}";

                    orderName = orders[2].Name;
                    orderId   = orders[2].Id.ToString();
                }
                if (orderOptionNumber == "4")
                {
                    orderStatusUrl = $"/getOrderStatusById?orderId={orders[3].Id}";

                    orderName = orders[3].Name;
                    orderId   = orders[3].Id.ToString();
                }
                if (orderOptionNumber == "5")
                {
                    orderStatusUrl = $"/getOrderStatusById?orderId={orders[4].Id}";

                    orderName = orders[4].Name;
                    orderId   = orders[4].Id.ToString();
                }

                // var response = WebGETSync<OrderStatusResponse>(orderStatusUrl);
                var response = new OrderStatusResponse {
                    Status = "LO"
                };

                if (response.Status == "LO")
                {
                    string orderStatus = $"Order {orderName} (Order id :{orderId}) has been locked." +
                                         $"\n Locked : Your order has been confirmed by the laboratory";

                    request.body = orderStatus;

                    SaveSentResponse(request, userlastRecordDb, incomingMessage, Constants.OrderStatusMessage);

                    return(request);
                }

                if (response.Status == "OI")
                {
                    string orderStatus = $"Order {orderName} (Order id :{orderId}) has been imported by lab." +
                                         $"\n Imported : Your order has successfully reached laboratory";

                    request.body = orderStatus;

                    SaveSentResponse(request, userlastRecordDb, incomingMessage, Constants.OrderStatusMessage);

                    return(request);
                }

                if (response.Status == "CV")
                {
                    string orderStatus = $"Order {orderName} (Order id :{orderId}) has been validated." +
                                         $"\n Validated: Your order is confirmed and yet to be received by laboratory.";

                    request.body = orderStatus;

                    SaveSentResponse(request, userlastRecordDb, incomingMessage, Constants.OrderStatusMessage);

                    return(request);
                }

                else
                {
                    string orderStatus = $"Order {orderName} (Order id :{orderId}) is pending order." +
                                         $"\n Pending Order: Your order is not yet submitted and it is still in pending state.";

                    request.body = orderStatus;

                    SaveSentResponse(request, userlastRecordDb, incomingMessage, Constants.OrderStatusMessage);

                    request.body = orderStatus;

                    SaveSentResponse(request, userlastRecordDb, incomingMessage, Constants.ReOrderSuceessMessage);
                }

                return(request);
            }
            catch
            {
                request.body = Constants.ApiExceptionMessage;
                SaveSentResponse(request, userlastRecordDb, incomingMessage, Constants.ApiExceptionMessage);
                return(request);
            }
        }