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()); }
public void Parse_WithTestFile_ReturnsCorrectIdCountAndVertices() { string json = TestFileProvider.ContentOfTestFile("AllTerritories.json.txt"); var territories = TerritoryResultParser.Parse(json); Assert.AreEqual("36950", territories[0].Id); Assert.AreEqual("17", territories[0].CountOfAddresses); VerticesAreEqual(new Vertex(47.566613, -122.276787), territories[0].Border.Vertices[0]); VerticesAreEqual(new Vertex(47.557899, -122.274213), territories[0].Border.Vertices[1]); Assert.AreEqual("67186", territories[1].Id); Assert.AreEqual("19", territories[1].CountOfAddresses); }