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); }
private double ComputeAllocation(string visitorId, OnDeviceDecisioningRule rule, string salt = "0") { return(AllocationUtils.CalculateAllocation(this.clientConfig.Client, rule.ActivityId, visitorId, salt)); }