public List <Territory> SaveAs(string fileName)
        {
            var resultString = client.DownloadString(RelativeUrlBuilder.GetAllTerritories());

            AllTerritories = TerritoryResultParser.Parse(resultString);

            var assignmentsResultString = client.DownloadString(
                RelativeUrlBuilder.GetTerritoryAssignments());

            string assignmentsHtml = TerritoryAssignmentParser.Parse(assignmentsResultString);

            var assignments = new DownloadTerritoryAssignments(client).GetAssignments(assignmentsHtml);

            foreach (var t in AllTerritories)
            {
                var assignment = assignments.FirstOrDefault(a => string.Equals(a.Number, t.Number, StringComparison.OrdinalIgnoreCase));

                if (assignment != null)
                {
                    int monthsAgoCompleted = assignment.MonthsAgoCompleted ?? 0;
                    int yearsAgoCompleted  = monthsAgoCompleted / 12;

                    t.Status             = assignment.Status;
                    t.MobileLink         = assignment.MobileLink;
                    t.SignedOutTo        = assignment.SignedOutTo;
                    t.SignedOut          = assignment.SignedOut;
                    t.LastCompletedBy    = assignment.LastCompletedBy;
                    t.LastCompleted      = assignment.LastCompleted;
                    t.MonthsAgoCompleted = assignment.MonthsAgoCompleted;
                    t.YearsAgoCompleted  = assignment.LastCompleted == null
                        ? 99
                        : yearsAgoCompleted;
                    t.NeverCompleted = assignment.LastCompleted == null;
                }
            }

            var filteredTerritories = Filter(AllTerritories);

            foreach (var t in filteredTerritories)
            {
                t.FillColor = FillColorFor(t);
            }

            var kml = new TerritoryToKmlConverter().KmlFrom(filteredTerritories);

            new KmlGateway().Save(fileName, kml);

            return(filteredTerritories.ToList());
        }
Пример #2
0
        public void Convert_WithSmallTerritory_IsNotNull()
        {
            var territories = new List <Territory>()
            {
                new Territory("test id")
                {
                    Number = "test number",
                    Border = new Border()
                    {
                        Vertices = new List <Vertex>()
                        {
                            new Vertex(1.23, 4.56),
                            new Vertex(2.34, 6.78)
                        }
                    }
                }
            };

            var kml = new TerritoryToKmlConverter().KmlFrom(territories);

            Assert.IsNotNull(kml);
        }
Пример #3
0
        public void Convert_WithSmallTerritory_DescriptionIsSet()
        {
            var territories = new List <Territory>()
            {
                new Territory("test id")
                {
                    Number      = "test number",
                    Description = "test description",
                    Border      = new Border()
                    {
                        Vertices = new List <Vertex>()
                        {
                            new Vertex(1.23, 4.56),
                            new Vertex(2.34, 6.78)
                        }
                    }
                }
            };

            var kml = new TerritoryToKmlConverter().KmlFrom(territories);

            Assert.AreEqual("test description", kml.Document.Folder[0].Placemark[0].description);
        }