public IResponseMessageBase GetResponseMessage(IRequestMessageBase requestMessage)
        {
            var request = requestMessage as RequestMessageImage;
            WeixinDbContext db = new WeixinDbContext();

            //WeixinUser user = new WeixinUser();
            //user.OpenId = Guid.NewGuid().ToString();
            //Random r = new Random();
            //user.NickName = "测试A" + r.Next();
            //user.AvatarUrl = request.PicUrl;
            //db.WeixinUsers.Add(user);

            WeixinUser user = db.WeixinUsers.Where(u => u.OpenId == requestMessage.FromUserName).FirstOrDefault<WeixinUser>();
            RequestMessage message = new RequestMessage()
            {
                MessageType = Convert.ToString(requestMessage.MsgType),
                FromUserId = user.UserId,
                RequestTime = requestMessage.CreateTime,
                Content = request.PicUrl
            };
            db.RequestMessages.Add(message);
            db.SaveChanges();

            return null;
        }
        public ActionResult Detail(string userName, int num)
        {
            WeixinDbContext db = new WeixinDbContext();
            WeixinUser user = db.WeixinUsers.Where(u => u.OpenId == userName).FirstOrDefault<WeixinUser>();
            db.Entry(user).Collection(u => u.RequestMessages).Load();
            List<string> avatarUrls = db.WeixinUsers.Where(u => !string.IsNullOrEmpty(u.AvatarUrl)).Select(u => u.AvatarUrl).Distinct().Take(num).ToList<string>();

            //Dictionary<string, string> comments = new Dictionary<string, string>();

            //comments.Add(avatarUrls[2], "这个必须赞!");
            //comments.Add(avatarUrls[7], "嗯,狂赞!");
            //comments.Add(avatarUrls[9], "牛叉!");
            //comments.Add(avatarUrls[11], "是真的吗?!");

            MomentDetail moment = new MomentDetail()
            {
                NickName = user.NickName,
                AwesomeNumber = num,
                AvatarUrl = user.AvatarUrl,
                AwesomeAvatars = avatarUrls,
                //Comments = comments
            };
            foreach (var message in user.RequestMessages)
            {
                RequestMsgType msgType = (RequestMsgType)Enum.Parse(typeof(RequestMsgType), message.MessageType);
                //获取帮我点赞与帮我点()个赞之间用户发送的朋友圈信息
                switch (msgType)
                {
                    case RequestMsgType.Text:

                        if (string.IsNullOrEmpty(moment.Title))
                        {
                            moment.Title = message.Content;
                        }
                        break;
                    case RequestMsgType.Image:

                        moment.Pictures.Add(message.Content);
                        break;
                    case RequestMsgType.Link:
                        ShareDetail share = new ShareDetail()
                        {
                            Title = message.LinkTitle,
                            Url = message.LinkUrl,
                            SmallPic = GetSharePic(message.LinkUrl)
                        };
                        moment.Share = share;
                        break;
                    default:
                        break;
                }
            }
            return View(moment);
        }
        public IResponseMessageBase GetResponseMessage(IRequestMessageBase requestMessage)
        {
            var request = requestMessage as RequestMessageLink;

            WeixinDbContext db = new WeixinDbContext();
            WeixinUser user = db.WeixinUsers.Where(u => u.OpenId == requestMessage.FromUserName).FirstOrDefault<WeixinUser>();

            RequestMessage message = new RequestMessage()
            {
                MessageType = Convert.ToString(requestMessage.MsgType),
                FromUserId = user.UserId,
                RequestTime = requestMessage.CreateTime,
                LinkTitle=request.Title,
                LinkUrl=request.Url
            };
            db.RequestMessages.Add(message);
            db.SaveChanges();

            return null;
        }
        public IResponseMessageBase GetResponseMessage(IRequestMessageBase requestMessage)
        {
            IResponseMessageBase response = null;
            var request = requestMessage as RequestMessageText;
            WeixinDbContext db = new WeixinDbContext();
            WeixinUser user = db.WeixinUsers.Where(u => u.OpenId == requestMessage.FromUserName).FirstOrDefault<WeixinUser>();

            if (request.Content.Equals("帮我点赞"))
            {
                if (user == null)
                {
                    var responseText = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);

                    responseText.Content = "请先告诉我您的朋友圈昵称!";

                    return responseText;
                }
                else
                {
                    //每次点赞先清空之前的点赞记录
                    db.Entry(user).Collection(u => u.RequestMessages).Load();
                    user.RequestMessages.ToList().ForEach(entity => db.Entry(entity).State = System.Data.Entity.EntityState.Deleted);
                    db.RequestMessages.RemoveRange(user.RequestMessages);
                    db.SaveChanges();
                }

                var responseNews = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageNews>(requestMessage);
                responseNews.Articles.Add(new Article()
                {
                    Title = "好嘞,点赞君收到!",
                    Description = "请发送您要点赞的图文或分享链接!不知道怎么操作?点进来看看,有详细步骤!",
                    PicUrl = "http://www.shisheng.wang/images/qr.jpg",
                    Url = "http://www.shisheng.wang/moment/help"
                });

                return responseNews;
            }
            else if (request.Content.Contains("点") && request.Content.Contains("个赞"))
            {
                var responseNew = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageNews>(requestMessage);
                string numStr = string.Empty;
                if (request.Content.Contains("帮我点"))
                {
                    numStr = request.Content.Substring(3, request.Content.Length - 5);
                }
                else
                {
                    numStr = request.Content.Substring(1, request.Content.Length - 3);
                }
                int num = 36;
                Int32.TryParse(numStr, out num);
                responseNew.Articles.Add(new Article()
                {
                    Title = string.Format("报告掌柜的,你要的{0}个赞,已点赞完毕!!!", num),
                    Description = "最后一步啦,请打开网页截图即可!",
                    PicUrl = "http://www.shisheng.wang/images/qr.jpg",
                    Url = string.Format("http://www.shisheng.wang/moment/detail?username={0}&num={1}", requestMessage.FromUserName, num)
                });

                return responseNew;
            }
            else if(request.Content.Contains("修改昵称"))
            {
                var responseText = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);

                responseText.Content = "请告诉我您的新昵称!";

                return responseText;
            }
            else if (request.Content.Contains("修改头像"))
            {
                var responseText = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(requestMessage);

                responseText.Content = "请上传您的新头像!";

                return responseText;
            }
            else
            {
                RequestMessage message = new RequestMessage()
                {
                    MessageType = Convert.ToString(requestMessage.MsgType),
                    FromUserId = user.UserId,
                    RequestTime = requestMessage.CreateTime,
                    Content = request.Content
                };
                db.RequestMessages.Add(message);
                db.SaveChanges();
            }

            return response;
        }