Beispiel #1
0
        // Handles all insert operations. Can insert a new user, portfolio, or holding.
        public static string Insert(UDMRequest obj)
        {
            var context = new userDBContext();

            switch (obj.RequestType)
            {
            case UDMRequestType.User:
                context.Add(ConvertToUser(obj.User));
                context.SaveChanges();
                break;

            case UDMRequestType.Portfolio:
                foreach (UDMPortfolio p in obj.Portfolio)
                {
                    context.Add(ConvertToPortfolio(p));
                }
                context.SaveChanges();
                break;

            case UDMRequestType.Holding:
                context.Add(ConvertToHolding(obj.Holding));
                context.SaveChanges();
                break;
            }
            string returnMessage = $"Performed {obj.Operation} on {obj.RequestType}";

            return(returnMessage);
        }
        public IActionResult PostUserDataForm(UDMUser userDataForm)
        {
            UDMUser User = new UDMUser
            {
                Email            = userDataForm.Email,
                FirstName        = userDataForm.FirstName,
                LastName         = userDataForm.LastName,
                BrokerageAccount = userDataForm.BrokerageAccount
            };

            UDMRequest request = new UDMRequest
            {
                RequestType = UDMRequestType.User,
                Operation   = UDMOperation.Insert,
                User        = User
            };

            try
            {
                string  result = RMQService.ExecuteRequest(request, "", "", "rpc_queue");
                UDMUser info   = JsonConvert.DeserializeObject <UDMUser>(result, new JsonSerializerSettings()
                {
                    TypeNameHandling = TypeNameHandling.All, PreserveReferencesHandling = PreserveReferencesHandling.All
                });
                return(new JsonResult(info));
            }
            catch (Exception ex)
            {
                return(new JsonResult(null));
            }
        }
Beispiel #3
0
        // Reads a user from the db
        public static string ReadUser(UDMRequest obj)
        {
            var context = new userDBContext();

            if (!(obj.Email is null)) // If user included an email in the request, read the user that the email belongs to.
            {
                var user = context.User.FirstOrDefault(a => a.Email == obj.Email);
                return(serialize(ConvertToUDMUser(user)));
            }
 private void onReceive(object sender, BasicDeliverEventArgs ea)
 {
     if (MessageReceived != null)
     {
         var        body    = ea.Body.ToArray();
         var        message = Encoding.UTF8.GetString(body);
         UDMRequest obj     = JsonConvert.DeserializeObject <UDMRequest>(message, new JsonSerializerSettings()
         {
             PreserveReferencesHandling = PreserveReferencesHandling.All, TypeNameHandling = TypeNameHandling.All
         });
         RequestHandler.MainHandler(obj);
         MessageReceived.Invoke(this, obj);
     }
 }
Beispiel #5
0
        // Main read method that calls accesory read methods. Can read a user, portfolio, or porfoltio history.
        public static string Read(UDMRequest obj)
        {
            switch (obj.RequestType)
            {
            case UDMRequestType.User:
                return(ReadUser(obj));

            case UDMRequestType.Portfolio:
                return(ReadPortfolio(obj));

            case UDMRequestType.PortfolioHistory:
                return(ReadPortfolioHistory(obj));
            }
            string returnMessage = $"Performed {obj.Operation} on {obj.RequestType}";

            return(returnMessage);
        }
Beispiel #6
0
        // Calls method that will perform the operation listed in the request. Valid operations include Insert, Read, Update, and Delete.
        public static string MainHandler(UDMRequest obj)
        {
            switch (obj.Operation)
            {
            case UDMOperation.Insert:
                return(Insert(obj));

            case UDMOperation.Read:
                return(Read(obj));

            case UDMOperation.Update:
                return(Update(obj));

            case UDMOperation.Delete:
                return(Delete(obj));
            }
            return(null);
        }
        public async Task <JsonResult> GetPortfolioInfo(string email = "")
        {
            UDMRequest request = new UDMRequest()
            {
                Operation = UDMOperation.Read, RequestType = UDMRequestType.Portfolio, Email = null
            };

            try
            {
                string result            = RMQService.ExecuteRequest(request, "backtestTrigger", "backtestTrigger", "rpc_queue");
                List <UDMPortfolio> info = JsonConvert.DeserializeObject <List <UDMPortfolio> >(result, new JsonSerializerSettings()
                {
                    TypeNameHandling = TypeNameHandling.All, PreserveReferencesHandling = PreserveReferencesHandling.All
                });
                return(new JsonResult(info));
            }
            catch (Exception ex)
            {
                return(new JsonResult(null));
            }
        }
Beispiel #8
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Starting demo server...");
            var factory = new ConnectionFactory()
            {
                HostName = "localhost"
            };

            using (var connection = factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue: "rpc_queue", durable: false, exclusive: false, autoDelete: true, arguments: null);
                    channel.BasicQos(0, 1, false);
                    var consumer = new EventingBasicConsumer(channel);
                    channel.BasicConsume(queue: "rpc_queue", autoAck: false, consumer: consumer);
                    Console.WriteLine(" [x] Awaiting RPC requests");


                    consumer.Received += (model, ea) =>
                    {
                        string response = null;

                        var body       = ea.Body;
                        var props      = ea.BasicProperties;
                        var replyProps = channel.CreateBasicProperties();
                        replyProps.CorrelationId = props.CorrelationId;

                        try
                        {
                            var message = Encoding.UTF8.GetString(body.ToArray());
                            Console.WriteLine(string.Format(" [.] Received message: {0}", message));
                            UDMRequest obj = JsonConvert.DeserializeObject <UDMRequest>(message, new JsonSerializerSettings()
                            {
                                TypeNameHandling = TypeNameHandling.All, PreserveReferencesHandling = PreserveReferencesHandling.All
                            });
                            response = RequestHandler.MainHandler(obj);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(" [.] " + ex.Message);
                            response = "";
                        }
                        finally
                        {
                            var responseBytes = Encoding.UTF8.GetBytes(response);
                            channel.BasicPublish(exchange: "", routingKey: props.ReplyTo, basicProperties: replyProps, body: responseBytes);
                            channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false);
                            Console.WriteLine(" [.] Response Sent");
                        }
                    };

                    Console.WriteLine(" Type 'exit' or 'quit' to exit.");
                    string input;
                    while (true)
                    {
                        input = Console.ReadLine();
                        if (input.ToLower() == "quit" || input.ToLower() == "exit")
                        {
                            break;
                        }
                        else
                        {
                            Console.WriteLine(" Type 'exit' or 'quit' to exit.");
                        }
                    }
                }
        }