public async Task <dynamic> suaKhuyenMai(KhuyenMaiUpdateVM khuyenMai) { using (var connection = new SqlConnection(connectionstr)) { await connection.OpenAsync(); var transaction = connection.BeginTransaction(); try { var updateKMQuery = @"UPDATE DBO.KHUYENMAI SET Code= @Code, NgayBD= @NgayBD, NgayKT= @NgayKT, MaNV= @MaNV, MoTa= @MoTa WHERE MaKM = @MaKM DELETE FROM DBO.CHITIETKHUYENMAI WHERE MaKM = @MaKM "; var p = new DynamicParameters(); p.Add("@Code", khuyenMai.Code); p.Add("@NgayBD", khuyenMai.NgayBD); p.Add("@NgayKT", khuyenMai.NgayKT); p.Add("@MaKM", khuyenMai.MaKM); p.Add("@MoTa", khuyenMai.MoTa); p.Add("@MaNV", khuyenMai.MaNV); await connection.ExecuteScalarAsync(updateKMQuery, p, transaction); foreach (var item in khuyenMai.dsSanPhamKM) { var p2 = new DynamicParameters(); p2.Add("@MaSP", item.MaSP); p2.Add("@MaKM", khuyenMai.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(); dynamic chiTietKM = await this.layThongTinKhuyenMai(khuyenMai.MaKM); return(chiTietKM); } 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(response2.Content); } } }
public async Task <IActionResult> SuaKhuyenMai(KhuyenMaiUpdateVM khuyenMaiChinhSua) { dynamic result = await _khuyenMaiRepository.suaKhuyenMai(khuyenMaiChinhSua); return(Ok(result)); }