private byte[] requestImage(SID sid) { ensureLoggedIn(); var getResponse = WebSession.Get(string.Format("https://intranet.avegagroup.se/templates/UserDetails.aspx?id=1105&SID={0}", sid.Value)); var contentHtml = getResponse.TextContent; HtmlTagReader tagReader = new HtmlTagReader(contentHtml, "img"); while (tagReader.GetNextTag()) { var hrefValue = HtmlTagReader.GetAttributeValueInTag(tagReader.CurrentTag.Content, "src"); if (hrefValue != null && hrefValue.Contains("/upload/Medarbetarbilder/")) { var imgResponse = WebSession.Get("https://intranet.avegagroup.se" + hrefValue); return imgResponse.RawResponse; } } return null; }
/// <summary> /// Parses HTML-content and returns a KeyValueCollection with values from the HTMLs Input-fields /// </summary> /// <param name="html"></param> /// <returns></returns> public static KeyValueCollection ParseInputFieldsFromHtmlResponse(string html) { if (string.IsNullOrEmpty(html)) { return new KeyValueCollection(); } var dictionary = new KeyValueCollection(); HtmlTagReader htmlTagReader = new HtmlTagReader(html, "input"); while (htmlTagReader.GetNextTag()) { string tagHtml = htmlTagReader.CurrentTag.Content; string name = HtmlTagReader.GetAttributeValueInTag(tagHtml, "name"); ; string value = HtmlTagReader.GetAttributeValueInTag(tagHtml, "value"); if (!string.IsNullOrEmpty(name)) { dictionary.Add(name, value ?? string.Empty); } } return dictionary; }
private int countTotalContact(string contactListHtml) { int count = 0; HtmlTagReader tagReader = new HtmlTagReader(contactListHtml, "a"); while (tagReader.GetNextTag()) { var hrefValue = HtmlTagReader.GetAttributeValueInTag(tagReader.CurrentTag.Content, "href"); if (hrefValue.Contains("templates/vcard.aspx")) { count++; } } return count; }
private IList<AvegaContact> getContactsRequest(int start, int contactsToGet) { ensureLoggedIn(); IList<AvegaContact> contacts = new List<AvegaContact>(); string uri = "https://intranet.avegagroup.se/templates/UserList.aspx?id=105"; var listGet = WebSession.Get(uri); string listResponse = listGet.TextContent; HtmlTagReader tagReader = new HtmlTagReader(listResponse, "a"); int totalContactInList = countTotalContact(listResponse); int totalContactToFetch = Math.Min(contactsToGet - start, totalContactInList); int count = 0; OnContactDataFetched(new ContactDataFetchedEventArgs(count, totalContactInList, totalContactToFetch, DataFetchedType.ListIndex)); while (tagReader.GetNextTag()) { var hrefValue = HtmlTagReader.GetAttributeValueInTag(tagReader.CurrentTag.Content, "href"); if (hrefValue.Contains("templates/vcard.aspx")) { var sid = SID.Find(hrefValue); if (start <= count && contactsToGet + start > count) { AvegaContact contact = new AvegaContact(sid); contact.Merge(requestVCard(sid)); OnContactDataFetched(new ContactDataFetchedEventArgs(count + 1, totalContactInList, totalContactToFetch, DataFetchedType.ContactInformation)); contact.SetImage(requestImage(sid)); OnContactDataFetched(new ContactDataFetchedEventArgs(count + 1, totalContactInList, totalContactToFetch, DataFetchedType.Image)); contacts.Add(contact); count++; } } } return contacts; }