Esempio n. 1
0
        public IActionResult RegisterOrder([FromBody] RegisterOrderModel registerOrderInfo)
        {
            try
            {
                var registerOrder = new RegisterOrder()
                {
                    Amount         = registerOrderInfo.Amount,
                    CardHolderName = registerOrderInfo.CardHolderName,
                    CardNumber     = registerOrderInfo.CardNumber,
                    ExpiryDate     = registerOrderInfo.ExpiryDate,
                    Address        = registerOrderInfo.Address,
                    Email          = registerOrderInfo.Email,
                    Name           = registerOrderInfo.Name
                };


                using (var bus = RabbitMqConnectionHelper.Get())
                {
                    bus.Publish(registerOrder, cfg => cfg.WithQueueName(RabbitMqServer.Registration.OrderQueue));

                    return(Ok());
                }
            }
            catch (Exception exception)
            {
                return(BadRequest(exception.Message));
            }
        }
Esempio n. 2
0
 public async Task <IActionResult> Post([FromBody] RegisterOrderModel model)
 {
     /* var unitOfWork = new OrderUnityOfWork();
      *
      *
      *
      * var order = new Order(orderDate: model.OrderDate,
      *   OrderItem: OrderItem(quantidade:));
      *
      * var invoiceRepository = new InvoiveRepository(unitOfWork);
      *
      * await invoiceRepository.Add(invoice);
      *
      * unitOfWork.BeginTansaction();
      * await invoiceRepository.Add(invoice);
      * await unitOfWork.Commit();
      */
     return(Ok());
 }
Esempio n. 3
0
        public ActionResult Register(RegisterOrderModel model)
        {
            var result = new Dictionary<string, object>
            {
                ["isSuccess"] = false,
                ["error"] = "Something was wrong. Order has not been added to the database"
            };

            if (this.ModelState.IsValid)
            {
                var helper = new HelperRepository();

                var insertedOrderId = helper.InsertOrder(
                    model.CustomerId,
                    model.ProductId,
                    model.Count);
                
                result["success"] = "Product has been sold";
                result["model"] = HelperConverter.GetOrderRowJsonString(insertedOrderId);
                result["isSuccess"] = true;
            }
            return this.Json(result, JsonRequestBehavior.DenyGet);
        }
Esempio n. 4
0
        public void Post([FromBody] RegisterOrderModel model)
        {
            Guard.AgainstNull(model, "model");
            Guard.AgainstNull(model.TargetSystem, "model.TargetSystem");
            Guard.Against <Exception>(model.ProductIds.Count == 0, "No products have been selected.");

            var message = new RegisterOrderProcessCommand
            {
                CustomerName  = model.CustomerName,
                CustomerEMail = model.CustomerEMail,
                TargetSystem  = model.TargetSystem
            };

            switch (model.TargetSystem.ToLower(CultureInfo.InvariantCulture))
            {
            case "custom":
            {
                message.TargetSystemUri = "msmq://./process-custom-server";

                break;
            }

            case "custom / event-source":
            {
                message.TargetSystemUri = "msmq://./process-custom-es-server";

                break;
            }

            case "event-source / module":
            {
                message.TargetSystemUri = "msmq://./process-es-module-server";

                break;
            }

            default:
            {
                throw new ApplicationException(string.Format("Unknown target system '{0}'.", model.TargetSystem));
            }
            }

            foreach (var productIdValue in model.ProductIds)
            {
                Guid productId;

                if (!Guid.TryParse(productIdValue, out productId))
                {
                    throw new ArgumentException(string.Format("Product id '{0}' is not a valid guid.", productIdValue));
                }

                var productRow = _productQuery.Get(productId);

                message.QuotedProducts.Add(new QuotedProduct
                {
                    ProductId   = productId,
                    Description = ProductColumns.Description.MapFrom(productRow),
                    Price       = ProductColumns.Price.MapFrom(productRow)
                });
            }

            _bus.Send(message, c =>
            {
                c.WithRecipient(message.TargetSystemUri);
                c.Headers.Add(new TransportHeader
                {
                    Key   = "TargetSystem",
                    Value = message.TargetSystem
                });
            });
        }