public rs goitinhtien(GoiTinhTienForm model)
        {
            rs r;

            using (var __db = new vuong_cms_context())
            {
                if (ModelState.IsValid)
                {
                    var entity = __db.DonHangs.Find(model.DonHangID);
                    if (model.TienKhachDua < entity.TongTienHang)
                    {
                        throw new Exception("Tiền khách đưa không đủ!");
                    }
                    entity.SoLanGoiTinhTien++;
                    entity.TienKhachDua       = model.TienKhachDua;
                    entity.LanCuoiGoiTinhTien = DateTime.Now;
                    __db.SaveChanges();
                    r = rs.T("Quán đã nhận được yêu cầu gọi tính tiền!", DonHangVM.map(entity));
                    IHubContext context = GlobalHost.ConnectionManager.GetHubContext <UsersOnLine>();
                    context.Clients.All.notify_goitinhtien(entity.BaseUserId, "Yêu cầu tính tiền bàn: " + entity.Ban);
                }
                else
                {
                    //all error
                    r = rs.F("Lỗi, vui lòng thử lại. " + string.Join(";", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage).Distinct()));
                }
            }
            return(r);
        }
        public ListPagingJson <DonHangVM> layds(int userid, string token, int page, int pageSize)
        {
            vuong_cms_context __db = new vuong_cms_context();
            //initial
            var paging = new ListPagingJson <DonHangVM>();

            paging.Paging.RecordsPerPage = pageSize;
            paging.Paging.CurrentPage    = page;
            //calculator
            var query = __db.DonHangs.Where(w => w.UserId == userid);

            paging.Number1             = query.Count(c => c.TrangThaiThanhToanId == 1);
            paging.Paging.TotalRecords = query.Count();
            paging.List = DonHangVM.map(query.OrderByDescending(o => o.Id).Skip((page - 1) * pageSize).Take(pageSize));
            return(paging);
        }
        public ListPagingJson <DonHangVM> laydsdevice(string uniqueID, int trangthaithanhtoanid, int page, int pageSize)
        {
            //initial
            var paging = new ListPagingJson <DonHangVM>();

            paging.Paging.RecordsPerPage = pageSize;
            paging.Paging.CurrentPage    = page;

            vuong_cms_context __db = new vuong_cms_context();

            //calculator
            var query = __db.DonHangs.Where(w => w.UniqueID == uniqueID);

            paging.Number1 = query.Count(c => c.TrangThaiThanhToanId == 1);
            if (trangthaithanhtoanid != -1)
            {
                query = query.Where(w => w.TrangThaiThanhToanId == trangthaithanhtoanid);
            }
            paging.Paging.TotalRecords = query.Count();
            paging.List = DonHangVM.map(query.OrderByDescending(o => o.Id).Skip((page - 1) * pageSize).Take(pageSize));
            //so don hang chua thanh toan
            return(paging);
        }
        public rs gopy(GopYDonHangForm model)
        {
            rs r;

            using (var __db = new vuong_cms_context())
            {
                if (ModelState.IsValid)
                {
                    var  entity = __db.DonHangs.Find(model.DonHangID);
                    GopY gop    = new GopY();
                    gop.DonHangId   = model.DonHangID;
                    gop.NoiDungGopY = model.NoiDung;
                    gop.CreatedDate = DateTime.Now;
                    __db.GopY.Add(gop);
                    __db.SaveChanges();
                    r = rs.T("Chúng tôi đã ghi nhận góp ý của bạn, xin cám ơn!", DonHangVM.map(entity));

                    IHubContext context = GlobalHost.ConnectionManager.GetHubContext <UsersOnLine>();
                    if (entity.HinhThucMuaHangId == 1)
                    {
                        context.Clients.All.notify_gopy(entity.BaseUserId, "Nhận được góp ý tại bàn: " + entity.Ban);
                    }
                    else
                    {
                        context.Clients.All.notify_gopy(entity.BaseUserId, "Nhận được góp ý *" + entity.HinhThucMuaHang.Ten + "*");
                    }
                }
                else
                {
                    //all error
                    r = rs.F("Lỗi, vui lòng thử lại. " + string.Join(";", ModelState.Values
                                                                     .SelectMany(x => x.Errors)
                                                                     .Select(x => x.ErrorMessage).Distinct()));
                }
            }
            return(r);
        }