예제 #1
0
        public WarZones GetWarZones()
        {
            var data = _anspiritSheetsService.GetWarPlacementValues();

            var warZones = new WarZones();

            for (int column = 0; column < data.Count; column += 2)
            {
                for (int row = 1; row < data[column].Count; row++)
                {
                    var player = (string)data[column][row];
                    var team   = (string)data[column + 1][row];

                    if (string.IsNullOrWhiteSpace(player))
                    {
                        throw new Exception($"Player name is null or whitespace, at column {0}, row {row}");
                    }
                    if (string.IsNullOrWhiteSpace(team))
                    {
                        throw new Exception($"Team name is null or whitespace, at column {0 + 1}, row {row}");
                    }

                    warZones[column].Add(new Deployment
                    {
                        Player = player,
                        Team   = team
                    });
                }
            }

            return(warZones);
        }
예제 #2
0
        public List <Tuple <string, Deployment> > GetWarOrdersSortedByZone(WarZones orders)
        {
            PropertyInfo[] properties = typeof(WarZones).GetProperties(BindingFlags.Public | BindingFlags.Instance);

            var allOrders = new List <Tuple <string, Deployment> >();

            foreach (PropertyInfo p in properties)
            {
                // Only work with strings
                if (p.PropertyType == typeof(List <Deployment>) && p.CanRead && p.CanWrite)
                {
                    var zone = (List <Deployment>)p.GetValue(orders);
                    var data = zone.Select(x => new Tuple <string, Deployment>(p.Name, x));
                    allOrders.AddRange(data);
                }
            }

            return(allOrders);
        }