Example #1
0
        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);
        }
Example #2
0
        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("Ö", "&Ouml;");
                    areaName = areaName.Replace("ö", "&ouml;");
                    areaName = areaName.Replace("ä", "&auml;");

                    // 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);
        }