public static string GetUserEmail(HttpContext httpContext, CookieFailKeyInfo keyInfo, AppSettings appSettings) { var assignments = AvailableAssignmentsHelper.GetAvailableAssignments(httpContext, null); for (int assignmentIndex = 0; assignmentIndex < assignments.Count; assignmentIndex++) { var currentAssignment = assignments[assignmentIndex]; if (currentAssignment != null) { var assignmentDetail = AssignmentDetailHelper.GetAssignmentDetail(httpContext, keyInfo, appSettings, currentAssignment); if (assignmentDetail != null) { var matchingPairs = assignmentDetail.InterestsValues.Where(pair => pair.Key == "login").ToList(); if (matchingPairs.Count > 0) { // We have found email return(matchingPairs[0].Value); } } } assignmentIndex++; } return(string.Empty); }
public static string GetReportUrl(HttpClientHandler handler, NavigationInfo navigationInfo, int areaIndex) { HttpClient client = new HttpClient(handler); client.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "VolontarPortal/1.0"); using (var response = client.GetAsync("http://volontar.polisen.se/" + navigationInfo.MyAssignmentsReportTypesUrl).Result) { using (var responseContent = response.Content) { var content = responseContent.ReadAsStringAsync().Result; var areas = AvailableAssignmentsHelper.GetAreas(); var areaCount = areas.Count; if (areaIndex < 0 || areaIndex >= areaCount) { return(null); } var areaName = areas[areaIndex]; // Korrigera "area" namnet, eftersom webbplatsen inte har samma namn som i uppdragen switch (areaName) { case "Gränspolisenheten": areaName = "Arlanda"; break; case "Övrig": areaName = "Övriga"; break; } areaName = areaName.Replace("Ö", "Ö"); areaName = areaName.Replace("ö", "ö"); areaName = areaName.Replace("ä", "ä"); // Get person name //<span class="Inloggad"><strong><strong>(.*)<\/strong><\/strong> var linkNameIndex = content.IndexOf(areaName, System.StringComparison.Ordinal); if (linkNameIndex == -1) { return(null); } content = content.Substring(0, linkNameIndex); var linkStartTagIndex = content.LastIndexOf("<a", System.StringComparison.Ordinal); if (linkStartTagIndex == -1) { return(null); } content = content.Substring(linkStartTagIndex); var urlMatch = System.Text.RegularExpressions.Regex.Match(content, "<a href=\"(?<url>[^\"]+)\""); if (urlMatch.Success) { var urlGroup = urlMatch.Groups["url"]; if (urlGroup.Success) { return("http://volontar.polisen.se/" + urlGroup.Value.Replace("../", "")); } } } } return(null); }