예제 #1
0
 public BetfairServerResponse<AccountStatementReport> GetAccountStatement(
     int? fromRecord = null,
     int? recordCount = null,
     TimeRange itemDateRange = null,
     IncludeItem? includeItem = null,
     Wallet? wallet = null)
 {
     return client.GetAccountStatement(
         fromRecord,
         recordCount,
         itemDateRange,
         includeItem,
         wallet).Result;
 }
 public IncludeItem(AASourceFile current, int listIndex, IncludeItem parent, List<Item> children)
     : base(parent, children)
 {
     Current = current;
     ListIndex = listIndex;
 }
        private static IncludeItem MakeTree(AASourceFile node, Dictionary<AASourceFile, List<AASourceFile>> dependancies, List<Item> allItems, IncludeItem mainFile)
        {
            IncludeItem includeItem = new IncludeItem(node, allItems.Count, null, new List<Item>());

            //Ensure that each include is only included one place
            IncludeItem item2 = includeItem;
            bool removed = false;
            for (int i = 0; i < allItems.Count; i++)
            {

                IncludeItem item1 = (IncludeItem)allItems[i];
                if (item1.Current == item2.Current)
                {
                    List<Item> path1 = item1.Path;
                    List<Item> path2 = item2.Path;

                    for (int k = 0; k < Math.Min(path1.Count, path2.Count); k++)
                    {
                        if (path1[k] != path2[k])
                        {

                            int insertAt;
                            IncludeItem insertIn;
                            if (k != 0)
                            {
                                int index1 = path1[k - 1].Children.IndexOf(path1[k]);
                                int index2 = path2[k - 1].Children.IndexOf(path2[k]);
                                if (index2 == -1)
                                    index2 = path2[k - 1].Children.Count;
                                insertAt = Math.Min(index1, index2);
                                insertIn = (IncludeItem) path1[k - 1];
                            }
                            else
                            {

                                if (path1[0] == mainFile)
                                {
                                    int index1 = mainFile.Children.IndexOf(path1[1]);
                                    if (path2[0] == mainFile)
                                    {
                                        int index2 = mainFile.Children.IndexOf(path2[1]);
                                        if (index2 == -1)
                                        {
                                            index2 = mainFile.Children.Count;
                                            if (path1.Count == 2)
                                                index2--;//Since item1 will be removed
                                        }
                                        insertAt = Math.Min(index1, index2);
                                    }
                                    else
                                        insertAt = index1;
                                }
                                else if (path2[0] == mainFile)
                                {
                                    int index2 = mainFile.Children.IndexOf(path2[1]);
                                    if (index2 == -1)
                                        index2 = mainFile.Children.Count;
                                    insertAt = index2;
                                }
                                else
                                    insertAt = mainFile.Children.Count;
                                insertIn = mainFile;
                            }

                            if (item1.Parent != insertIn || insertIn.Children.IndexOf(item1) != insertAt)
                            {
                                item1.Parent.Children.Remove(item1);
                                insertIn.Children.Insert(insertAt, item1);
                                item1.Parent = insertIn;
                            }
                            removed = true;

                            break;
                        }
                    }

                }
            }
            if (removed)
                return null;

            allItems.Add(includeItem);
            if (node != null)
                foreach (AASourceFile file in dependancies[node])
                {
                    IncludeItem child = MakeTree(file, dependancies, allItems, mainFile ?? includeItem);
                    if (child == null)
                        continue;
                    child.Parent = includeItem;
                    includeItem.Children.Add(child);
                }
            return includeItem;
        }