public ActionResult Details(string id)
        {
            while (id.Length < 10)
            {
                id += " ";
            }
            DBModels db     = new DBModels();
            var      listsp = new List <CartItem>();
            var      px     = db.PhieuXuats.Find(id);

            ViewBag.ngaydat  = px.NgayDat;
            ViewBag.ngayship = px.NgayShip;
            foreach (var item in db.CTPhieuXuats)
            {
                if (item.PhieuXuat.MaPX == px.MaPX)
                {
                    var ci = new CartItem();
                    ci.SanPham  = db.SanPhams.Find(item.MaSP);
                    ci.Quantity = item.SoLuong;
                    listsp.Add(ci);
                }
            }
            return(View(listsp));
        }
Ejemplo n.º 2
0
 public TipoUsuarioRepository()
 {
     db = new DBModels();
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Public Constructor,initializes privately declared local variables.
 /// </summary>
 /// <param name="context"></param>
 public GenericRepository(DBModels context)
 {
     this.Context = context;
     this.DbSet   = context.Set <TEntity>();
 }
Ejemplo n.º 4
0
        public async Task <IActionResult> Post([FromBody] NewQRReq reqForm)
        {
            _logger.LogInformation("start request new QR service");
            DBModels dbModel = new DBModels();
            //validate TransId

            string transIdResult = await dbModel.checkTransId(reqForm.UserID, reqForm.TransId);

            if (transIdResult != "")
            {
                return(Ok(new NewQR_Fail()
                {
                    Msg = transIdResult
                }));
            }

            //TODO: Check promotion code
            List <ProductDetail> prodDetail = await dbModel.GetProductDetailFromProductList(reqForm.Company, reqForm.Product);

            if (prodDetail.Count == 0)
            {
                return(Ok(new NewQR_Fail()
                {
                    Msg = "Invalid Company or/and Product"
                }));
            }

            if (reqForm.NewQty <= 0)
            {
                return(Ok(new NewQR_Fail()
                {
                    Msg = "Invalid new quantity"
                }));
            }

            Double discount = 0;

            if (reqForm.PromotionCode.ToUpper() == "50% OFF")
            {
                discount = 0.5;
            }

            double   ttlAmt    = System.Math.Round(prodDetail[0].UnitPrice * reqForm.NewQty * (1 - discount), 2);//String.Format("{0:0.00}", 123.4567);  -->123.45
            DateTime transTime = DateTime.Now;

            //getToken
            var s = await authService.getToken();

            var    data1 = JsonConvert.DeserializeObject <Dictionary <string, string> >(await authService.getToken());
            string token = (data1["access_token"] ?? "").ToString();

            if (token == "")
            {
                return(Unauthorized());
            }

            //check balance
            if (!(await eWalletAPI.checkEWalletBalanceAsync(token, reqForm.UserID, ttlAmt)))
            {
                return(Ok(new NewQR_Fail()
                {
                    Msg = "Not enough balance"
                }));
            }

            string newQR = "";

            if (reqForm.ReqType == "Submit")
            {
                //deduct balance
                if (!(await eWalletAPI.deductEWalletBalanceAsync(token, reqForm.UserID, ttlAmt, reqForm.TransId, reqForm.Product, reqForm.Company, reqForm.Remark)))
                {
                    return(Ok(new NewQR_Fail()
                    {
                        Msg = "Deduct amount fail"
                    }));
                }

                await dbModel.InitNewQRCode(reqForm.UserID, reqForm.TransId, transTime, reqForm.NewQty, ttlAmt, reqForm.PromotionCode);

                //get new QR
                string reqResult = await iJoozAPI.reqQR("New", reqForm.TransId, reqForm.TransTime, "member", reqForm.UserID, "-", prodDetail[0].Currency, prodDetail[0].UnitPrice, reqForm.NewQty, DateTime.Now.AddMonths(24));

                if (reqResult == "")
                {
                    return(Ok(new NewQR_Fail()
                    {
                        Msg = "Get QR Code from iJooz Fail"
                    }));
                }
                else
                {
                    var data = JsonConvert.DeserializeObject <Dictionary <string, string> >(reqResult);
                    if (data["result"] == "Success")
                    {
                        newQR = data["qrCode"];
                    }
                    else
                    {
                        return(Ok(new NewQR_Fail()
                        {
                            Msg = "Get QR Code from iJooz Fail2"
                        }));
                    }
                }

                await dbModel.SaveNewQRCode(reqForm.UserID, reqForm.TransId, newQR, reqForm.Company, reqForm.NewQty, reqForm.Product, prodDetail[0].Currency, prodDetail[0].UnitPrice, DateTime.Now.AddYears(10));
            }
            else if (reqForm.ReqType != "Preview")
            {
                return(Ok(new NewQR_Fail()
                {
                    Msg = "Invalid Request Type"
                }));
            }

            List <NewQRDetail> detailList = new List <NewQRDetail> {
                new NewQRDetail()
                {
                    TransId     = reqForm.TransId,
                    ReqType     = reqForm.ReqType,
                    Company     = reqForm.Company,
                    Product     = reqForm.Product,
                    QRCode      = newQR,
                    TtlQty      = reqForm.NewQty,
                    Currency    = prodDetail[0].Currency,
                    Amt         = ttlAmt,
                    ExpiredDate = DateTime.Now.AddYears(10)
                }
            };

            return(Ok(new NewQR_OK()
            {
                QrDetail = detailList
            }));
        }
Ejemplo n.º 5
0
        public ActionResult AddItem(string id, int quantity)
        {
            var SanPham = new SanPhamDAO().ViewDetail(id);
            var cart    = Session[CommomConstants.CartSession];

            // lấy về người đăng nhập hiện tại
            var sessnd = Session[CommomConstants.NguoiDungSession];
            var nd     = new NguoiDungLogin();

            nd = (NguoiDungLogin)sessnd;

            // nếu chưa đăng nhập
            if (sessnd == null)
            {
                if (cart != null)
                {
                    var list = (List <CartItem>)cart;           //ép kiểu về list cartitem lấy từ session(dữ liệu trong session là kiểu list
                    if (list.Exists(x => x.SanPham.MaSP == id)) //nếu list chứa productid truyền vào
                    {
                        foreach (var item in list)
                        {
                            if (item.SanPham.MaSP == id) // nếu đã tồn tại id mà thêm một id => tăng thêm số lượng
                            {
                                item.Quantity += quantity;
                            }
                        }
                    }
                    else // add mới một sản phẩm
                    {
                        //tạo mới đối tượng cart item
                        var item = new CartItem();
                        item.SanPham  = SanPham;
                        item.Quantity = quantity;
                        list.Add(item);
                    }
                    //Gán vào session
                    Session[CommomConstants.CartSession] = list;
                }
                else
                {
                    //tạo mới đối tượng cart item
                    var item = new CartItem();
                    item.SanPham  = SanPham;
                    item.Quantity = quantity;
                    var list = new List <CartItem>();
                    list.Add(item);
                    //Gán vào Session
                    Session[CommomConstants.CartSession] = list;
                }
            }
            else //đã đăng nhập
            {
                DBModels db = new DBModels();
                // kiểm tra giỏ hàng trong db
                var gh = new GioHang();
                gh = db.GioHangs.SingleOrDefault(x => x.MaND == nd.ID); // lấy giỏ hàng của người dùng hiện tại

                var item = db.CTGioHangs.Find(gh.MaGH, SanPham.MaSP);
                if (item != null)
                {
                    item.SoLuong += quantity;
                    db.SaveChanges();
                }
                else
                {
                    var tem = new CTGioHang();
                    tem.MaGH    = gh.MaGH;
                    tem.MaSP    = SanPham.MaSP;
                    tem.SoLuong = quantity;
                    db.CTGioHangs.Add(tem);
                    db.SaveChanges();
                }
            }


            return(RedirectToAction("Index"));
        }
Ejemplo n.º 6
0
 public ProductOperations()
 {
     _databaseEntities = new DBModels();
 }
 public NhaCCDAO()
 {
     db = new DBModels();
 }
Ejemplo n.º 8
0
 public CategoryOperations()
 {
     _databaseEntities = new DBModels();
 }
Ejemplo n.º 9
0
        public async Task <IActionResult> Post([FromBody] TopUpQRReq reqForm)
        {
            _logger.LogInformation("start share QR balance");

            DBModels dbModel = new DBModels();

            //validate TransId
            string transIdResult = await dbModel.checkTransId(reqForm.UserID, reqForm.TransId);

            if (transIdResult != "")
            {
                return(Ok(new TopUpQR_Fail()
                {
                    Msg = transIdResult
                }));
            }

            //get product info based on QR
            List <QrBalance> prodDetail = await dbModel.GetProductDetailFromQR_Status(reqForm.UserID, reqForm.QRCode);

            if (prodDetail.Count == 0)
            {
                return(Ok(new TopUpQR_Fail()
                {
                    Msg = "Invalid QR Code"
                }));
            }

            if (reqForm.TopUpQty <= 0)
            {
                return(Ok(new TopUpQR_Fail()
                {
                    Msg = "Invalid new quantity"
                }));
            }

            //TODO: update promotion
            Double discount = 0;

            if (reqForm.PromotionCode.ToUpper() == "50% OFF")
            {
                discount = 0.5;
            }

            double ttlAmt = System.Math.Round(prodDetail[0].UnitPrice * reqForm.TopUpQty * (1 - discount), 2);//String.Format("{0:0.00}", 123.4567);  -->123.45

            //getToken
            var s = await authService.getToken();

            var    data1 = JsonConvert.DeserializeObject <Dictionary <string, string> >(await authService.getToken());
            string token = (data1["access_token"] ?? "").ToString();

            if (token == "")
            {
                return(Unauthorized());
            }

            //check balance
            if (!(await eWalletAPI.checkEWalletBalanceAsync(token, reqForm.UserID, ttlAmt)))
            {
                return(Ok(new NewQR_Fail()
                {
                    Msg = "Not enough balance"
                }));
            }

            DateTime transTime        = DateTime.Now;
            int      ttlQtyAfterTopUp = reqForm.TopUpQty + prodDetail[0].Qty;
            DateTime ExpiryDate       = DateTime.Now.AddYears(10);

            if (reqForm.ReqType == "Submit")
            {
                await dbModel.InitTopUpQRCode(reqForm.UserID, reqForm.QRCode, reqForm.TransId, transTime, reqForm.TopUpQty, ttlAmt, reqForm.PromotionCode);

                //deduct balance
                if (!(await eWalletAPI.deductEWalletBalanceAsync(token, reqForm.UserID, ttlAmt, reqForm.TransId, prodDetail[0].Product, prodDetail[0].Company, reqForm.Remark)))
                {
                    return(Ok(new NewQR_Fail()
                    {
                        Msg = "Deduct amount fail"
                    }));
                }

                //topup QR (need to get new ttl qty & new expirydate)
                string reqResult = await iJoozAPI.reqQR("TopUp", reqForm.TransId, reqForm.TransTime, "member", reqForm.UserID, reqForm.QRCode, prodDetail[0].Currency, prodDetail[0].UnitPrice, reqForm.TopUpQty, DateTime.Now.AddMonths(24));

                if (reqResult == "")
                {
                    return(Ok(new NewQR_Fail()
                    {
                        Msg = "Get QR Code from iJooz Fail"
                    }));
                }
                else
                {
                    var data = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, string> >(reqResult);
                    if (data["result"] == "Success")
                    {
                        ttlQtyAfterTopUp = Convert.ToInt16(data["balanceQty"]);
                    }
                    else
                    {
                        return(Ok(new NewQR_Fail()
                        {
                            Msg = "Get QR Code from iJooz Fail2"
                        }));
                    }
                }

                await dbModel.SaveTopUpQRCode(reqForm.UserID, reqForm.TransTime, reqForm.QRCode, ttlQtyAfterTopUp, ExpiryDate);
            }
            else if (reqForm.ReqType != "Preview")
            {
                return(Ok(new TopUpQR_Fail()
                {
                    Msg = "Invalid Request Type"
                }));
            }

            List <TopUpQrDetail> detailList = new List <TopUpQrDetail> {
                new TopUpQrDetail()
                {
                    TransId    = reqForm.TransId,
                    ReqType    = reqForm.ReqType,
                    Company    = prodDetail[0].Company,
                    Product    = prodDetail[0].Product,
                    QRCode     = prodDetail[0].QRCode,
                    TopUpQty   = reqForm.TopUpQty,
                    TtlQty     = ttlQtyAfterTopUp,
                    Currency   = prodDetail[0].Currency,
                    Amt        = ttlAmt,
                    ExpiryDate = ExpiryDate
                }
            };

            return(Ok(new TopUpQR_OK()
            {
                QrDetail = detailList
            }));
        }
Ejemplo n.º 10
0
        public async Task<IActionResult> Post([FromBody] RegenQRReq reqForm)
        {
            _logger.LogInformation("start gen QR"); 

            DBModels dbModel = new DBModels();
            
            //validate TransId
            string transIdResult = await dbModel.checkTransId(reqForm.UserID, reqForm.TransId);
            if (transIdResult != "")
            {
                return Ok(new RegenQR_Fail() { Msg = transIdResult });
            }
            List<QrBalance> prodDetail = await dbModel.GetProductDetailFromQR_Status(reqForm.UserID, reqForm.QRCode);

            if (prodDetail.Count == 0)
            {
                return Ok(new RegenQR_Fail() { Msg = "Invalid QR Code" });
            }

            DateTime transTime = DateTime.Now;

            await dbModel.InitRegenQRCode(reqForm.UserID, reqForm.QRCode, reqForm.TransId, transTime);

            //Regen QR (need to get new ttl qty & new expirydate)
            string NewQRCode = "";
            int balanceQty = 0;
            string reqResult = await iJoozAPI.reqQR("Regen", reqForm.TransId, transTime.ToString("yyyy-MM-dd HH:mm:ss"), "member", reqForm.UserID, reqForm.QRCode, prodDetail[0].Currency, prodDetail[0].UnitPrice, 0, transTime.AddMonths(24));
            if (reqResult == "")
            {
                return Ok(new RegenQR_Fail() { Msg = "Get QR Code from iJooz Fail" });
            }
            else
            {
                var data = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(reqResult);
                if (data["result"] == "Success")
                {
                    NewQRCode = data["qrCode"];
                    balanceQty = Convert.ToInt16(data["balanceQty"]);
                }
                else
                {
                    return Ok(new RegenQR_Fail() { Msg = "Get QR Code from iJooz Fail2" });
                }
            }

             await dbModel.SaveRegenQRCode(reqForm.UserID, reqForm.TransId, reqForm.QRCode, NewQRCode, balanceQty);

            List<QrDetail> detailList = new List<QrDetail> {
                new QrDetail()
                {
                    TransId=reqForm.TransId,
                    NewQRCode=NewQRCode,
                    TtlQty=balanceQty,
                    ExpiryDate=prodDetail[0].ExpiryDate
                }
            };

            return Ok(new RegenQR_OK()
            {
                QrDetail = detailList
            });
        }
Ejemplo n.º 11
0
        public ActionResult Login(User_LoginClass userModel, tbl_order o)
        {
            using (DBModels db = new DBModels())
            {
                var userDetails = db.User_Login.Where(x => x.Email == userModel.Email && x.Password == userModel.Password).FirstOrDefault();
                var admin       = db.User_Login.Where(x => x.Email == "*****@*****.**" && x.Password == "12345").FirstOrDefault();


                if (userDetails == null)
                {
                    userModel.LoginErrorMessage = "*Wrong User Name Or Password.";
                    return(View("Login", userModel));
                }
                else if (userDetails == admin)
                {
                    Session["Login_id"] = userDetails.Login_id;
                    ViewData["Message"] = "User Record" + userModel.Email + "Is Login Successfully!";

                    return(RedirectToAction("ViewRegisterFood"));
                }
                else
                {
                    Session["Login_id"] = userDetails.Login_id;
                    List <card> li = TempData["card"] as List <card>;
                    tbl_invoice iv = new tbl_invoice();
                    iv.in_fk_Login_id = Convert.ToInt32(Session["Login_id"].ToString());
                    if (TempData["card"] != null)
                    {
                        iv.in_Date_Time  = System.DateTime.Now;
                        iv.in_total_bill = (float)TempData["total"];
                        db.tbl_invoice.Add(iv);
                        db.SaveChanges();
                        foreach (var item in li)
                        {
                            tbl_order od = new tbl_order();
                            od.o_fk_pro_Food_id = item.pro_product_id;
                            od.o_fk_in_id       = iv.in_id;
                            od.o_Date_Time      = System.DateTime.Now;
                            od.o_Quantity       = item.qty;
                            od.o_unitprice      = (int)item.pro_product_Price;
                            od.o_bill           = item.pro_product_Bill;
                            db.tbl_order.Add(od);
                            db.SaveChanges();
                        }
                        TempData.Remove("total");

                        TempData.Remove("card");
                        TempData["msg"] = "Transaction Completed....";

                        TempData.Keep();



                        return(RedirectToAction("EveryDayValue", "Home", userModel));
                    }
                    else
                    {
                        userModel.LoginErrorMessage = "*Cart is Empty";

                        return(View("Login", userModel));
                    }
                }
            }
        }
Ejemplo n.º 12
0
        // GET: User
        public ActionResult Index()
        {
            //Passes values to populate customer landing page
            ApplicationDbContext context = new ApplicationDbContext();
            var             UserManager  = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context));
            ApplicationUser currentUser  = UserManager.FindById(User.Identity.GetUserId());


            using (DBModels dBModel = new DBModels())
            {
                //Retrieve customer's next appointment time (if exists)
                var nextAppointment = dBModel.userevents.Where(x => x.UserID == currentUser.Id).FirstOrDefault();

                if (nextAppointment != null)
                {
                    var appointment = nextAppointment.Start.ToShortDateString();
                    ViewData["nextAppointment"] = appointment;
                }
                else
                {
                    ViewData["nextAppointment"] = "No upcoming appointments.";
                }


                //Retrieve customer's last appointment (if exists)
                var lastAppointment = dBModel.servicehistories.Where(x => x.CustomerID == currentUser.Id).FirstOrDefault();

                if (lastAppointment != null)
                {
                    var appointment = lastAppointment.Start.Value;
                    var daysAgo     = DateTime.Now.Subtract(appointment).Days.ToString();
                    ViewData["daysAgo"] = daysAgo + " days ago";
                }
                else
                {
                    ViewData["daysAgo"] = "No appointment history.";
                }

                //Retrieve customer's service reminders
                var serviceList = dBModel.servicehistories.Where(x => x.CustomerID == currentUser.Id).ToList();

                if (serviceList != null)
                {
                    foreach (var service in serviceList)
                    {
                        var type        = service.ServiceType;
                        int serviceDays = 0;
                        switch (type)
                        {
                        case "Sound Testing":
                            break;

                        case "Airtightness Testing":
                            break;

                        case "Solar Electricity":
                            serviceDays = 365;
                            break;

                        case "Solar Hot Water":
                            serviceDays = 548;
                            break;

                        case "Heat Recovery and Ventilation":
                            break;

                        case "Heat Pump":
                            serviceDays = 730;
                            break;

                        default:
                            serviceDays = 0;
                            break;
                        }

                        var serviceDate = service.Start.Value.AddDays(serviceDays);
                        var daysLeft    = serviceDate.Subtract(System.DateTime.Now).Days.ToString();

                        ViewData["equipment"]   = type.ToString();
                        ViewData["serviceDate"] = serviceDate.ToShortDateString();
                        ViewData["daysLeft"]    = daysLeft;
                    }
                }
                else
                {
                    ViewData["serviceDate"] = null;
                }
            }
            return(View(currentUser));
        }
 public LoaiNDDAO()
 {
     db = new DBModels();
 }
        // lọc sp theo loại sp, hãng sản xuất, bán chạy hoặc hạ giá
        public ActionResult Loc(string id, int?loai, int?page, string searchString = "")
        {
            DBModels db = new DBModels();

            // 2. Nếu page = null thì đặt lại là 1.
            if (page == null)
            {
                page = 1;
            }

            List <SanPham> list = new List <SanPham>();


            //var items = db.SanPhams.ToList();
            if (searchString != string.Empty)
            {
                list = db.SanPhams.ToList();
                list = list.Where(x => x.TenSP.Contains(searchString)).ToList();
            }
            else
            {
                if (id != null)
                {
                    while (id.Length < 10)
                    {
                        id += " ";
                    }
                }

                foreach (var item in db.SanPhams)
                {
                    if (loai > 4)
                    {
                        list = db.SanPhams.ToList();
                        break;
                    }

                    switch (loai)
                    {
                    case 1:
                        if (item.MaLoaiSP == id)
                        {
                            list.Add(item);
                        }
                        break;

                    case 2:
                        if (item.MaNCC == id)
                        {
                            list.Add(item);
                        }
                        break;

                    case 3:
                        if (item.SoLuong <= 14)
                        {
                            list.Add(item);
                        }
                        break;

                    case 4:
                        if (item.MaKM != null)
                        {
                            list.Add(item);
                        }
                        break;
                    }
                }
            }
            // 3. Tạo truy vấn, lưu ý phải sắp xếp theo trường nào đó, ví dụ OrderBy
            // theo LinkID mới có thể phân trang.
            var links = (from l in list select l).OrderBy(x => x.MaSP);

            // 4. Tạo kích thước trang (pageSize) hay là số Link hiển thị trên 1 trang
            int pageSize = 12;

            // 4.1 Toán tử ?? trong C# mô tả nếu page khác null thì lấy giá trị page, còn
            // nếu page = null thì lấy giá trị 1 cho biến pageNumber.
            int pageNumber = (page ?? 1);

            ViewBag.lsp = db.LoaiSPs;
            ViewBag.ncc = db.NhaCCs;

            return(View(links.ToPagedList(pageNumber, pageSize)));
        }
 // GET: Customer
 public ActionResult Index()
 {
     using (DBModels db = new DBModels())
         return(View(db.Customers.ToList()));
 }
Ejemplo n.º 16
0
 public UnitOfWork()
 {
     _context = new DBModels();
 }
 // GET: Customer/Delete/5
 public ActionResult Delete(int id)
 {
     using (DBModels db = new DBModels())
         return(View(db.Customers.Where(x => x.CustomerId == id).FirstOrDefault()));
 }
Ejemplo n.º 18
0
        public ActionResult Check()
        {
            //lấy về giỏ hàng hiện tại
            var cart = Session[CommomConstants.CartSession];
            var list = new List <CartItem>();

            list = (List <CartItem>)cart;
            DBModels db = new DBModels();

            // lấy về người đăng nhập hiện tại
            var sessnd = Session[CommomConstants.NguoiDungSession];
            var nd     = new NguoiDungLogin();

            nd = (NguoiDungLogin)sessnd;

            if (nd == null)
            {
                var px = new PhieuXuat();
                px.MaND = (DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds.ToString();
                while (px.MaND.Length > 10)
                {
                    px.MaND = px.MaND.Substring(1, px.MaND.Length - 2);
                }
                px.MaPX     = px.MaND;
                px.NgayDat  = DateTime.Now;
                px.NgayShip = DateTime.Now;
                db.PhieuXuats.Add(px);

                var kvl = new NguoiDung();
                kvl.MaND = px.MaND;
                db.NguoiDungs.Add(kvl);



                db.SaveChanges();
                //Gán vào session
                Session[CommomConstants.CartSession] = null;
                return(RedirectToAction("Success", "Card"));
            }
            else
            {
                var px = new PhieuXuat();
                px.MaPX = (DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds.ToString();
                while (px.MaPX.Length > 10)
                {
                    px.MaPX = px.MaPX.Substring(1, px.MaPX.Length - 2);
                }
                px.MaND     = nd.ID;
                px.NgayDat  = DateTime.Now.Date;
                px.NgayShip = DateTime.Now.Date;
                db.PhieuXuats.Add(px);

                foreach (var i in list)                 //list cac san pham trong gio hang
                {
                    db.CTPhieuXuats.Add(new CTPhieuXuat //them tuong ung vao phieu xuat
                    {
                        MaPX    = px.MaPX,
                        MaSP    = i.SanPham.MaSP,
                        SoLuong = i.Quantity
                    });
                }
                //list.Clear();
                db.SaveChanges();
                //Gán vào session
                Session[CommomConstants.CartSession] = list;
                return(RedirectToAction("Success", "Card"));
            }
            //return RedirectToAction("Index", "Card");
        }
        // GET: Product
        public ActionResult Index()
        {
            DBModels db = new DBModels();

            return(View(db));
        }
Ejemplo n.º 20
0
 public LoaiSanPhamDAO()
 {
     db = new DBModels();
 }
Ejemplo n.º 21
0
        public async Task <IActionResult> Post([FromBody] ShareQRReq reqForm)
        {
            _logger.LogInformation("start share QR balance");

            DBModels dbModel = new DBModels();

            //validate TransId
            string transIdResult = await dbModel.checkTransId(reqForm.UserID, reqForm.TransId);

            if (transIdResult != "")
            {
                return(Ok(new ShareQR_Fail()
                {
                    Msg = transIdResult
                }));
            }

            //get product info based on QR
            List <QrBalance> prodDetail = await dbModel.GetProductDetailFromQR_Status(reqForm.UserID, reqForm.QRCode);

            if (prodDetail.Count == 0)
            {
                return(Ok(new ShareQR_Fail()
                {
                    Msg = "Invalid QR Code"
                }));
            }

            if (reqForm.SharedQty <= 0)
            {
                return(Ok(new ShareQR_Fail()
                {
                    Msg = "Invalid shared quantity"
                }));
            }
            else if (reqForm.SharedQty > prodDetail[0].Qty)
            {
                return(Ok(new ShareQR_Fail()
                {
                    Msg = "Shared quantity can't be higher than available quantity"
                }));
            }

            DateTime transTime        = DateTime.Now;
            int      ttlQtyAfterShare = prodDetail[0].Qty - reqForm.SharedQty;
            DateTime ExpiryDate       = prodDetail[0].ExpiryDate;

            await dbModel.InitShareQRCode(reqForm.UserID, reqForm.QRCode, reqForm.TransId, transTime, reqForm.SharedQty);

            //Share QR (need to get new ttl qty & new expirydate)
            string SharedQRCode = "";
            string reqResult    = await iJoozAPI.reqQR("Share", reqForm.TransId, reqForm.TransTime, "member", reqForm.UserID, reqForm.QRCode, prodDetail[0].Currency, prodDetail[0].UnitPrice, reqForm.SharedQty, DateTime.Now.AddMonths(24));

            if (reqResult == "")
            {
                return(Ok(new ShareQR_Fail()
                {
                    Msg = "Get QR Code from iJooz Fail"
                }));
            }
            else
            {
                var data = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, string> >(reqResult);
                if (data["result"] == "Success")
                {
                    SharedQRCode     = data["qrCode"];
                    ttlQtyAfterShare = Convert.ToInt16(data["balanceQty"]);
                }
                else
                {
                    return(Ok(new ShareQR_Fail()
                    {
                        Msg = "Get QR Code from iJooz Fail2"
                    }));
                }
            }

            await dbModel.SaveShareQRCode(reqForm.UserID, reqForm.TransId, reqForm.QRCode, ttlQtyAfterShare, SharedQRCode, reqForm.SharedQty, reqForm.Remark);

            List <QrDetail> detailList = new List <QrDetail> {
                new QrDetail()
                {
                    TransId      = reqForm.TransId,
                    QRCode       = prodDetail[0].QRCode,
                    RemainQty    = ttlQtyAfterShare,
                    SharedQRCode = SharedQRCode,
                    SharedQty    = reqForm.SharedQty,
                    ExpiryDate   = prodDetail[0].ExpiryDate,
                    Remark       = reqForm.Remark
                }
            };

            return(Ok(new ShareQR_OK()
            {
                QrDetail = detailList
            }));
        }
Ejemplo n.º 22
0
 public NguoiDungDao()
 {
     db = new DBModels();
 }
 public BangKhuyenMaiDAO()
 {
     db = new DBModels();
 }