Ejemplo n.º 1
0
        public ActionResult Reply(int FromUser, int ToUser)
        {
            if (!CurrentUser.IsAdmin)
            {
                if (CurrentUser.CustomerId != FromUser && CurrentUser.CustomerId != ToUser)
                {
                    throw new ArgumentException("not authorized");
                }
            }
            var linq = Context.Set<PMessageEntity>()
                .Where(l => (l.FromUser == FromUser && l.ToUser == ToUser) ||
                        (l.FromUser == ToUser && l.ToUser == FromUser))
                .Join(Context.Set<UserEntity>(),o=>o.FromUser,i=>i.Id,(o,i)=>new {P=o,FromUser=i})
                .Join(Context.Set<UserEntity>(),o=>o.P.ToUser,i=>i.Id,(o,i)=>new {P=o.P,FromUser=o.FromUser,ToUser=i})
                .OrderByDescending(l => l.P.Id)
                .ToList()
                .Select(l=>new PMessageViewModel().FromEntity<PMessageViewModel>(l.P,p=>{
                    p.FromUserModel = new CustomerViewModel().FromEntity<CustomerViewModel>(l.FromUser);
                    p.ToUserModel = new CustomerViewModel().FromEntity<CustomerViewModel>(l.ToUser);
                }));
            var model = new PMessageViewModel() { 
                 FromUser = FromUser,
                 FromUserModel = new CustomerViewModel().FromEntity<CustomerViewModel>(Context.Set<UserEntity>().Find(FromUser)),

                  ToUser = ToUser,
                 ToUserModel = new CustomerViewModel().FromEntity<CustomerViewModel>(Context.Set<UserEntity>().Find(ToUser)),

            };
            ViewBag.RecentMsg = linq;
            ViewBag.ReplyList = replyBuild(model);
            return View(model);
        }
Ejemplo n.º 2
0
 public ActionResult Reply(PMessageViewModel model)
 {
     if (!ModelState.IsValid)
     {
         return RedirectToAction("Reply",new {FromUser=model.FromUser,ToUser=model.ToUser});
     }
     var fromUser = CurrentUser.CustomerId;
     _pmessageRepo.Insert(new PMessageEntity() { 
          FromUser = fromUser,
          ToUser = model.ToUser,
           CreateDate = DateTime.Now,
            IsAuto = false,
             IsVoice = false,
              TextMsg = model.TextMsg
     });
     return RedirectToAction("reply", new { FromUser = fromUser, ToUser = model.ToUser });
 }
Ejemplo n.º 3
0
 private IEnumerable< SelectListItem > replyBuild(PMessageViewModel model)
  {
      if (CurrentUser.CustomerId != model.FromUser)
              yield return  new SelectListItem() {
                  Text =model.FromUserModel.Nickname,
                   Value = model.FromUser.ToString()
              };
      if (CurrentUser.CustomerId != model.ToUser)
             yield return new SelectListItem()
             {
                 Text = model.ToUserModel.Nickname,
                 Value = model.ToUser.ToString()
             };
     }