Пример #1
0
        private OrderAfter GetOrder(Guid clientOrderId)
        {
            using (var conn = new SqlConnection(_connectionString))
            {
                conn.Open();

                using (var tx = conn.BeginTransaction())
                    using (var cmd = new SqlCommand("SELECT OrderId, Name, Amount, Success, ClientOrderId FROM OrdersPlaced WHERE ClientOrderId = @ClientOrderId", conn, tx))
                    {
                        cmd.Parameters.AddWithValue("ClientOrderId", clientOrderId);

                        using (var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                        {
                            if (reader.Read())
                            {
                                var order = new OrderAfter
                                {
                                    OrderId       = (int)reader[0],
                                    Name          = (string)reader[1],
                                    Amount        = (decimal)reader[2],
                                    Success       = (bool)reader[3],
                                    ClientOrderId = (Guid)reader[4],
                                };

                                return(order);
                            }
                        }
                    }
            }

            return(null);
        }
Пример #2
0
        private void SaveOrder(OrderAfter order)
        {
            using (var conn = new SqlConnection(_connectionString))
            {
                conn.Open();

                using (var tx = conn.BeginTransaction())
                    using (var cmd = new SqlCommand("INSERT OrdersPlaced (OrderId, Name, Amount, Success, ClientOrderId) VALUES (@OrderId, @Name, @Amount, @Success, @ClientOrderId)", conn, tx))
                    {
                        cmd.Parameters.AddWithValue("OrderId", order.OrderId);
                        cmd.Parameters.AddWithValue("Name", order.Name);
                        cmd.Parameters.AddWithValue("Amount", order.Amount);
                        cmd.Parameters.AddWithValue("Success", order.Success);
                        cmd.Parameters.AddWithValue("ClientOrderId", order.ClientOrderId);
                        cmd.ExecuteNonQuery();

                        tx.Commit();
                    }
            }
        }
Пример #3
0
        public ActionResult New(OrderForm form)
        {
            var order = new OrderAfter
            {
                Name          = form.Name,
                Amount        = form.Amount,
                ClientOrderId = Guid.NewGuid()
            };

            SaveOrder(order);

            var message = new PlaceOrder
            {
                Name          = order.Name,
                Amount        = order.Amount,
                ClientOrderId = order.ClientOrderId
            };

            MvcApplication.Bus.Send(message);

            return(RedirectToAction("Show", new { order.ClientOrderId }));
        }