public OrderProduct AddItemWithSeatToCart(CartAdd newOrderProduct) { using (SqlConnection connection = new SqlConnection(_connectionString)) { var cart = GetCartId(connection, newOrderProduct.UserId); var queryString = @"MERGE OrderProduct AS Target USING (SELECT @ProductId ProductId, @OrderId OrderId, @Quantity Quantity, @SeatId SeatId) AS Source ON Target.ProductId = Source.ProductId and Target.Orderid = Source.OrderId and Target.SeatId = Source.SeatId WHEN MATCHED THEN UPDATE SET Target.Quantity = Target.Quantity + Source.Quantity WHEN NOT MATCHED THEN INSERT (ProductId, OrderId, Quantity, SeatId) VALUES (Source.ProductId, Source.OrderId, Source.Quantity, Source.SeatId) OUTPUT inserted.*;"; var parameters = new { ProductId = newOrderProduct.ProductId, OrderId = cart.Id, Quantity = newOrderProduct.OrderQuantity, SeatId = newOrderProduct.SeatId }; var product = connection.QueryFirstOrDefault <OrderProduct>(queryString, parameters); if (product != null) { return(product); } } throw new Exception("Can't add a new order product"); }
public static void Initialize(TestContext context) { var config = new TestConfig { ResetHttpContext = true }; var cartAdd = new BaseIntegrationTest <CartAdd, CartResponse>(config); var cartAddRequest = RequestBuilder.GetCartAddRequestForShoes(); var cartAddResponse = (Response <CartResponse>)cartAdd.TestObject.Execute(cartAddRequest); cartAdd = new BaseIntegrationTest <CartAdd, CartResponse>(); cartAddRequest = RequestBuilder.GetCartAddRequestForGiftCard(); cartAddResponse = (Response <CartResponse>)cartAdd.TestObject.Execute(cartAddRequest); cartAdd = new BaseIntegrationTest <CartAdd, CartResponse>(); cartAddRequest = RequestBuilder.GetCartAddRequestForAccessories(); _result = (Response <CartResponse>)cartAdd.TestObject.Execute(cartAddRequest); _testObject = cartAdd.TestObject; }
public ActionResult AddItemWithSeat(CartAdd Id) { var order = _connections.AddItemWithSeatToCart(Id); return(Accepted(order)); }