public async Task <dynamic> themKhuyenMai(KhuyenMaiInsertVM khuyenMai) { int?maKM = null; using (var connection = new SqlConnection(connectionstr)) { await connection.OpenAsync(); var transaction = connection.BeginTransaction(); try { var insertKMQuery = @"INSERT INTO DBO.KHUYENMAI (Code, NgayBD, NgayKT,MaNV, MoTa, TrangThai) VALUES (@Code, @NgayBD, @NgayKT,@MaNV, @MoTa, @TrangThai ); SELECT CAST(SCOPE_IDENTITY() as int)"; var p = new DynamicParameters(); p.Add("@Code", khuyenMai.Code); p.Add("@NgayBD", khuyenMai.NgayBD); p.Add("@NgayKT", khuyenMai.NgayKT); p.Add("@TrangThai", khuyenMai.TrangThai); p.Add("@MoTa", khuyenMai.MoTa); p.Add("@MaNV", khuyenMai.MaNV); maKM = await connection.ExecuteScalarAsync <int>(insertKMQuery, p, transaction); foreach (var item in khuyenMai.dsSanPhamKM) { var p2 = new DynamicParameters(); p2.Add("@MaSP", item.MaSP); p2.Add("@MaKM", maKM); p2.Add("@GiamGia", item.GiamGia); var insertCTKM = @"INSERT INTO DBO.CHITIETKHUYENMAI (MaKM, MaSP, GiamGia) VALUES (@MaKM, @MaSP, @GiamGia);" ; await connection.ExecuteAsync(insertCTKM, p2, transaction); } transaction.Commit(); return("success"); } catch (Exception ex) { //Log the exception (ex) System.Diagnostics.Debug.WriteLine(ex); try { transaction.Rollback(); } catch (Exception ex2) { // Handle any errors that may have occurred // on the server that would cause the rollback to fail, such as // a closed connection. // Log the exception ex2 var response = await tbl.TBLoi(ThongBaoLoi.Loi500, "Can not Rollback!"); return(response.Content); } var response2 = await tbl.TBLoi(ThongBaoLoi.Loi500, "Value is wrong! Insert discount fail"); return(ex); } } }
public async Task <IActionResult> ThemKhuyenMai(KhuyenMaiInsertVM khuyenMai) { dynamic result = await _khuyenMaiRepository.themKhuyenMai(khuyenMai); return(Ok(result)); }