public IActionResult Upsert(string id) { ViewBag.PhanLoaiList = GetSelectItemsPhanLoai(); ViewBag.SanPhamList = GetSelectItemsMatHang(); var vm = new MagiamgiaViewModel(); ViewBag.Id = ""; if (id != null) { ViewBag.Id = "has"; var parameter = new DynamicParameters(); parameter.Add("@MAGG", id); var result = _unitOfWork.SP_Call.Excute(SD.Giam_Gia.GET, parameter); if (result.success) { var objString = result.message.Substring(8, result.message.Length - 9); var obj = JArray.Parse(objString); vm.Id = id; vm.Name = obj[0]["TEN"].ToString(); vm.DateStart = DateTime.Parse(obj[0]["NGAYBD"].ToString()); vm.DateEnd = DateTime.Parse(obj[0]["NGAYKT"].ToString()); vm.Percent = int.Parse(obj[0]["PT_GIAM"].ToString()); vm.MaxDisCount = int.Parse(obj[0]["TIENGIAM"].ToString()); vm.MaxTimeUse = int.Parse(obj[0]["LANSUDUNGMAX"].ToString()); } } return(View(vm)); }
public IActionResult Upsert(MagiamgiaViewModel vm) { // đầu vào là name của các "Đối tượng html" trong view Upserts muốn truyền cho HttpPost để upload dữ liệu lên cho server if (ModelState.IsValid) // nếu các trường nhập vào cho view Upsert không bị sai quy tắc { var parameter = new DynamicParameters(); // tạo 1 dynamic parameters để lưu các tham số truyền vào parameter.Add("@MAGG", vm.Id); // dùng hàm add để thêm tham số truyền vào cho parameter var result = _unitOfWork.SP_Call.Excute(SD.Giam_Gia.IS_EXIST, parameter).message; // hàm kiểm tra mã giảm giá còn tồn tại không // _unitOfWork.Sp_Call.Excute là hàm excute 1 hàm SQL, với đầu vào gồm 2 biến(biến thứ nhất kiểu string là tên stored procedure, // biến thứ 2 kiểu Dynamic Parameters là tham số truyền vào cho stored procedure) result = result.Substring(8, result.Length - 9); // loại bỏ chữ data ở đầu var obj = JArray.Parse(result); // biến result thành dạng Jarray(mảng Json) var isExist = obj[0]["IS_EXIST"].ToString(); // truy xuất vào phần tử thứ 0 cột is _exist parameter.Add("@TEN", vm.Name); // các properties của view model Vm được truyền vào, đem gán cho parameter parameter.Add("@NGAYBD", vm.DateStart); parameter.Add("@NGAYKT", vm.DateEnd); parameter.Add("@PT_GIAM", vm.Percent); parameter.Add("@TIENGIAM", vm.MaxDisCount); parameter.Add("@LANSUDUNGMAX", vm.MaxTimeUse); if (isExist != "1") // nếu mã giảm giá không tồn tại { //add var res = _unitOfWork.SP_Call.Excute(SD.Giam_Gia.CREATE, parameter); // add thông tin mã giảm giá đó vào bảng Giảm Giá if (res.success) // nếu add thành công { return(RedirectToAction("index")); // quay về view của action Index } ModelState.AddModelError("", res.message); // nếu không add thành công thì in ra lỗi } else // nếu mã giảm gía đã tồn tại { //update mã giảm giá đó var res = _unitOfWork.SP_Call.Excute(SD.Giam_Gia.UPDATE, parameter); // gọi hàm update, với tham số truyền vào là parameter ở trên if (res.success) // nếu add thành công { return(RedirectToAction("index")); // quay về view của action Index } ModelState.AddModelError("", res.message); // nếu không add thành công thì in ra lỗi } } return(View(vm)); }