private void SendDba(Apartment apartment) { try { CookieContainer cookies = new CookieContainer(); HttpWebRequest initial_request = (HttpWebRequest)WebRequest.Create(apartment.Link); initial_request.CookieContainer = cookies; HttpWebResponse initial_response = (HttpWebResponse)initial_request.GetResponse(); // Get the stream associated with the response. Stream receiveStream = initial_response.GetResponseStream(); // Pipes the stream to a higher level stream reader with the required encoding format. StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8); var currentHtml = readStream.ReadToEnd(); HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(currentHtml); var input = doc.DocumentNode .Descendants("input") .First(n => n.Attributes["name"].Value == "__RequestVerificationToken").GetAttributeValue("value", ""); var payload = string.Format( "__RequestVerificationToken={0}&SendEmailAnalyticsLabel=SendEmailPrivate&ExternalListingId={1}&IsCas=False&PayPalEnabledByClassification=False&Name={2}&Email={3}&PhoneNumber={4}&Message={5}&BccToSender=true", input, apartment.DbaId, Dba_name, Dba_email, Dba_phone, Dba_message); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://dba.dk/ajax/vip/ContactForm/SendEmail"); request.Method = "POST"; request.CookieContainer = cookies; request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36"; request.Headers.Add("Accept-Language", "en-GB,en;q=0.8,en-US;q=0.6,da;q=0.4"); request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); byte[] buf = Encoding.UTF8.GetBytes(payload); request.ContentLength = buf.Length; Stream newStream = request.GetRequestStream(); newStream.Write(buf, 0, buf.Length); using (var context = new Context()) { var the_apartment = context.Apartments.FirstOrDefault(c => c.Id == apartment.Id); the_apartment.ContactStatus = ContactStatus.Contacted; var send = new SendMessage() { DbaId = apartment.DbaId, DateSent = DateTime.Now, Email = Dba_email, Message = Dba_message, Name = Dba_name, Phone = Dba_phone }; context.SendMessages.Add(send); context.SaveChanges(); } var HttpWebResponse = (HttpWebResponse)request.GetResponse(); } catch (Exception) { Console.WriteLine("Could not sent to ", apartment.Link); } }
private Apartment SaveApartment(Apartment apartment) { int id = 0; using (var context = new Context()) { if (!context.Apartments.Any(c => c.Link == apartment.Link)) { context.Apartments.Add(apartment); context.SaveChanges(); id = apartment.Id; return context.Apartments.FirstOrDefault(c => c.Id == id); } else { var existing_apartment = context.Apartments.FirstOrDefault(c => c.Link == apartment.Link); return existing_apartment; } } }