示例#1
0
        static void Main(string[] args)
        {
            try
            {
                if (args.Length < 3)
                {
                    Console.WriteLine("ERROR: Invalid Args");
                    Console.WriteLine("PortfolioManager.exe [TargetAllocationFile] [VanguardFile] [OutputFile]");
                    return;
                }

                string targetAllocationfile = args[0];
                if (!File.Exists(targetAllocationfile))
                {
                    Console.WriteLine("ERROR: Invalid TargetAllocationFile");
                    return;
                }

                string vanguardFile = args[1];
                if (!File.Exists(vanguardFile))
                {
                    Console.WriteLine("ERROR: Invalid VanguardFile");
                    return;
                }

                string outputFile = args[2];


                List <Allocation> allocations = TargetPortfolioUtils.Load(targetAllocationfile);
                List <Account>    accounts    = VanguardUtils.Load(vanguardFile);
                Dictionary <string, List <Reallocation> > reallocations = AllocationUtils.ReallocateAccounts(accounts,
                                                                                                             allocations, outputFile);

                ReportUtils.Write(outputFile, accounts, reallocations);

                Console.WriteLine("Done");
            }
            catch (Exception e)
            {
                Console.WriteLine("ERROR: {0}", e);
            }
        }
        public void AllocationUtils_CalculateAllocation()
        {
            var result = AllocationUtils.CalculateAllocation(
                "someClientId",
                "123456",
                "ecid123",
                "salty");

            Assert.Equal(29.06, result);

            result = AllocationUtils.CalculateAllocation(
                "someClientId",
                "123456",
                "tntId123",
                "salty");
            Assert.Equal(21.94, result);

            result = AllocationUtils.CalculateAllocation(
                "someClientId",
                "123456",
                "tntId123.28_0",
                "salty");
            Assert.Equal(21.94, result);
        }
示例#3
0
 private double ComputeAllocation(string visitorId, OnDeviceDecisioningRule rule, string salt = "0")
 {
     return(AllocationUtils.CalculateAllocation(this.clientConfig.Client, rule.ActivityId, visitorId, salt));
 }