Beispiel #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));
            }
        }
Beispiel #2
0
        public RegisterOrderUnitTest()
        {
            _mockIOrderGateway      = new Mock <IOrderGateway>();
            _mockIRestaurantGateway = new Mock <IRestaurantGateway>();

            _registerOrder = new RegisterOrder(_mockIOrderGateway.Object, _mockIRestaurantGateway.Object);
        }
 /// <summary>
 /// Converts two ModbusRegisters to 32 Bit Integer Value - Registers can be swapped
 /// </summary>
 /// <param name="registers">Two Register values received from Modbus</param>
 /// <param name="registerOrder">Desired Word Order (Low Register first or High Register first</param>
 /// <returns>Connecteds 32 Bit Integer value</returns>
 public static Int32 ConvertRegistersToInt(int[] registers, RegisterOrder registerOrder)
 {
     int[] swappedRegisters = { registers[0], registers[1] };
     if (registerOrder == RegisterOrder.HighLow)
     {
         swappedRegisters = new int[] { registers[1], registers[0] }
     }
     ;
     return(ConvertRegistersToInt(swappedRegisters));
 }
 /// <summary>
 /// Converts 64 Bit double prec. Value to four ModbusRegisters - Registers can be swapped
 /// </summary>
 /// <param name="doubleValue">double value which has to be converted into four registers</param>
 /// <param name="registerOrder">Desired Word Order (Low Register first or High Register first</param>
 /// <returns>Register values</returns>
 public static int[] ConvertDoubleToRegisters(double doubleValue, RegisterOrder registerOrder)
 {
     int[] registerValues = ConvertDoubleToRegisters(doubleValue);
     int[] returnValue    = registerValues;
     if (registerOrder == RegisterOrder.HighLow)
     {
         returnValue = new int[] { registerValues[3], registerValues[2], registerValues[1], registerValues[0] }
     }
     ;
     return(returnValue);
 }
 /// <summary>
 /// Converts 64 Bit Value to four ModbusRegisters - Registers can be swapped
 /// </summary>
 /// <param name="longValue">long value which has to be converted into four registers</param>
 /// <param name="registerOrder">Desired Word Order (Low Register first or High Register first</param>
 /// <returns>Register values</returns>
 public static int[] ConvertLongToRegisters(Int64 longValue, RegisterOrder registerOrder)
 {
     int[] registerValues = ConvertLongToRegisters(longValue);
     int[] returnValue    = registerValues;
     if (registerOrder == RegisterOrder.HighLow)
     {
         returnValue = new int[] { registerValues[3], registerValues[2], registerValues[1], registerValues[0] }
     }
     ;
     return(returnValue);
 }
 /// <summary>
 /// Converts 32 Bit Value to two ModbusRegisters Registers - Registers can be swapped
 /// </summary>
 /// <param name="intValue">Double value which has to be converted into two registers</param>
 /// <param name="registerOrder">Desired Word Order (Low Register first or High Register first</param>
 /// <returns>Register values</returns>
 public static int[] ConvertIntToRegisters(Int32 intValue, RegisterOrder registerOrder)
 {
     int[] registerValues = ConvertIntToRegisters(intValue);
     int[] returnValue    = registerValues;
     if (registerOrder == RegisterOrder.HighLow)
     {
         returnValue = new Int32[] { registerValues[1], registerValues[0] }
     }
     ;
     return(returnValue);
 }
Beispiel #7
0
        private async Task HandleFinalizeOrderAsync(BasicDeliverEventArgs args, FinalizeOrder finalizeOrder)
        {
            using var scope = ServiceProvider.CreateScope();
            var command = scope.ServiceProvider.GetRequiredService <FinalizeOrderCommand>();

            command.Dishes = finalizeOrder.Dishes;
            command.Order  = finalizeOrder.Order;

            var     errors = command.Validate();
            Message finalMessage;

            if (errors.Count == 0)
            {
                var registrationMessage = new RegisterOrder
                {
                    OrderId = finalizeOrder.Order.Id,
                };
                var registrationMessageProps =
                    CreateProperties(args.BasicProperties.CorrelationId, MessageType.RegisterOrder);
                Channel.BasicPublish(string.Empty, args.BasicProperties.ReplyTo, registrationMessageProps,
                                     registrationMessage.GetSerialized());

                try
                {
                    await command.HandleAsync();
                }
                catch
                {
                    PublishErrorMessage(finalizeOrder.Order.Id, args);
                    return;
                }

                finalMessage = new FinalizingSuccess
                {
                    OrderId          = finalizeOrder.Order.Id,
                    DeliveryDateTime = DateTime.Now.AddMinutes(new Random().Next(30, 120)),
                };
            }
            else
            {
                finalMessage = new FinalizingError
                {
                    OrderId      = finalizeOrder.Order.Id,
                    ErrorMessage = errors.Values.ToList().First(),
                };
            }

            var replyProps = CreateProperties(args.BasicProperties.CorrelationId, finalMessage.MessageType);

            Channel.BasicPublish(string.Empty,
                                 args.BasicProperties.ReplyTo,
                                 replyProps,
                                 finalMessage.GetSerialized());
        }
Beispiel #8
0
        public IActionResult RegisterOrder(OrderViewModel model)
        {
            var registerOrderCommand = new RegisterOrder(model);

            //Send RegisterOrderCommand
            using (var rabbitMqManager = new RabbitMqManager())
            {
                rabbitMqManager.SendRegisterOrderCommand(registerOrderCommand);
            }

            return(View("Thanks"));
        }
 /// <summary>
 /// Convert four 16 Bit Registers to 64 Bit double prec. value - Registers can be swapped
 /// </summary>
 /// <param name="registers">four Register values received from Modbus</param>
 /// <param name="registerOrder">Desired Word Order (Low Register first or High Register first</param>
 /// <returns>Connected double prec. float value</returns>
 public static double ConvertRegistersToDouble(int[] registers, RegisterOrder registerOrder)
 {
     if (registers.Length != 4)
     {
         throw new ArgumentException("Input Array length invalid - Array langth must be '4'");
     }
     int[] swappedRegisters = { registers[0], registers[1], registers[2], registers[3] };
     if (registerOrder == RegisterOrder.HighLow)
     {
         swappedRegisters = new int[] { registers[3], registers[2], registers[1], registers[0] }
     }
     ;
     return(ConvertRegistersToDouble(swappedRegisters));
 }
Beispiel #10
0
        public async Task <IActionResult> AddCard()
        {
            Uri domain = new Uri(Request.GetDisplayUrl());
            Uri uri    = new Uri(domain.Scheme + "://" + domain.Host + (domain.IsDefaultPort ? "" : ":" + domain.Port));

            host = uri.ToString();
            int id = Int32.Parse(User.Claims.First(c => c.Type == "UserId").Value);

            try
            {
                string        desc          = "Card registration";
                RegisterOrder registerOrder = new RegisterOrder(id, 10 * 100, host, desc);
                OrderModel    orderModel    = await PaymentManager.RegisterOrder(registerOrder);

                UserManager.AddOrder(orderModel.OrderId);
                string url = orderModel.FormUrl.Replace("_binding", "").Replace("  ", " ");
                return(Ok(url));
            }
            catch
            {
                return(BadRequest());
            }
        }
Beispiel #11
0
        public async static Task <OrderModel> RegisterOrder(RegisterOrder registerOrder)
        {
            registerOrder.OrderNumber = (UserManager.CheckLastOrder() + 1) + "poasdrder11";

            using (HttpClient http = new HttpClient())
            {
                string uri = $"https://ipay.arca.am/payment/rest/register.do?" +
                             $"description={registerOrder.Description}&userName={PaymentSettings.UserName}&password={PaymentSettings.Password}&amount={registerOrder.Amount}&language=ru&orderNumber={registerOrder.OrderNumber}&language=en&clientId={registerOrder.ClientId}&returnUrl={registerOrder.ReturnUrl}";
                HttpResponseMessage response = await http.GetAsync(uri);

                if (response.IsSuccessStatusCode)
                {
                    string s = await response.Content.ReadAsStringAsync();

                    OrderModel orderModel = JsonConvert.DeserializeObject <OrderModel>(s);
                    return(orderModel);
                }
                else
                {
                    return(null);
                }
            }
        }
Beispiel #12
0
        public async Task <IActionResult> Pay(Payment payment)
        {
            int    id  = Int32.Parse(User.Claims.First(c => c.Type == "UserId").Value);
            string api = "api/profile/addActivity";

            try
            {
                string desc   = "Payment with new card";
                Uri    domain = new Uri(Request.GetDisplayUrl());
                Uri    uri    = new Uri(domain.Scheme + "://" + domain.Host + (domain.IsDefaultPort ? "" : ":" + domain.Port));
                host = uri.ToString();
                RegisterOrder registerOrder = new RegisterOrder(id, payment.Amount * 100, host, desc, api);
                OrderModel    orderModel    = await PaymentManager.RegisterOrder(registerOrder);

                UserManager.AddOrder(orderModel.OrderId);
                string url = orderModel.FormUrl.Replace("_binding", "").Replace("  ", " ");

                return(Ok(url));
            }
            catch
            {
                return(BadRequest());
            }
        }
Beispiel #13
0
        public async Task <IActionResult> PayWithBinging(Payment payment)
        {
            int id = Int32.Parse(User.Claims.First(c => c.Type == "UserId").Value);

            try
            {
                string        desc          = "Payment with binding";
                RegisterOrder registerOrder = new RegisterOrder(id, payment.Amount * 100, host, desc);
                OrderModel    orderModel    = await PaymentManager.RegisterOrder(registerOrder);

                UserManager.AddOrder(orderModel.OrderId);
                string result = await PaymentManager.Pay(payment, orderModel.OrderId);

                OrderStatusModel orderStatus = await PaymentManager.GetOrderStatus(orderModel.OrderId);

                orderStatus.Date = DateTime.Now.ToString();
                ActivityManager.AddActivity(orderStatus, id);
                return(Ok());
            }
            catch
            {
                return(BadRequest());
            }
        }
Beispiel #14
0
 public OrderController(RegisterOrder registerOrder)
 {
     this._registerOrder = registerOrder;
 }