Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> ThemKhuyenMai(KhuyenMaiInsertVM khuyenMai)
        {
            dynamic result = await _khuyenMaiRepository.themKhuyenMai(khuyenMai);

            return(Ok(result));
        }