示例#1
0
        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);
                }
            }
        }
示例#2
0
        public async Task <IActionResult> SuaKhuyenMai(KhuyenMaiUpdateVM khuyenMaiChinhSua)
        {
            dynamic result = await _khuyenMaiRepository.suaKhuyenMai(khuyenMaiChinhSua);

            return(Ok(result));
        }