Ejemplo n.º 1
0
    public async Task Create(CarbonClient cc_, string [] basePortfolioNames_)
    {
      ClearUp();

      m_cc = cc_;

      setupGrid();

      foreach(var basePortfolioName_ in basePortfolioNames_)
      {
        var basePortfolio = new Portfolio(basePortfolioName_, null, DisplayOptions.PnlMultiplier);

        await addPortfolio(parentPortfolio_: null, newPortfolio_: basePortfolio, isInitialLoad_:true);

        await basePortfolio.GetChildren(cc_: cc_, recurse_: true, isInitialLoad_:true);
      }

      setupTimer();
    }
    private async Task addPortfolio(Portfolio p_, IList<SeriesConfig> list_, ICarbonClient cc_)
    {
      if (p_ == null) return;

      var children = await p_.GetChildren(cc_);

      var adjustedMoniker = p_.RootName.Replace("ssys.portfolio.",string.Empty);

      var split = adjustedMoniker.Split('.');

      list_.Add(DataFrameSumColumns.CreateConfig(
        dataframeMoniker_: p_.PnlMoniker,
        treePath_: string.Format(@"Systematic Strategy Pnl\{0}", string.Join(@"\", split)),
        moniker_: string.Format("ssys.{0}.pnl", string.Join(".", split)),
        sourceName_: SourceName));

      if(children!=null)
        foreach (var child in children)
          await addPortfolio(child, list_, cc_);
    }