using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.IO; using System.Net; using System.Text; using System.Net.Mail; using System.Diagnostics; namespace WillemsWeerWachter { public class Tools { public static string monthStr(System.DateTime date, bool shortVersion) { switch (date.Month) { case 1: if (!shortVersion) { return "januari"; } else { return "jan"; } case 2: if (!shortVersion) { return "februari"; } else { return "feb"; } case 3: if (!shortVersion) { return "maart"; } else { return "mrt"; } case 4: if (!shortVersion) { return "april"; } else { return "apr"; } case 5: return "mei"; case 6: if (!shortVersion) { return "juni"; } else { return "jun"; } case 7: if (!shortVersion) { return "juli"; } else { return "jul"; } case 8: if (!shortVersion) { return "augustus"; } else { return "aug"; } case 9: if (!shortVersion) { return "september"; } else { return "sep"; } case 10: if (!shortVersion) { return "oktober"; } else { return "okt"; } case 11: if (!shortVersion) { return "november"; } else { return "nov"; } case 12: if (!shortVersion) { return "december"; } else { return "dec"; } default: goto case 1; } } #region Imported from TeamConnect // It is always nice when one can reuse interesting pieces of programming // technology. Original code came from "Laulem.cs", the former version of this // Tools.cs. Translated to English public static string getHumanDateString(DateTime date, bool relativeDates, bool includeTime, bool shortVersion) { string retstr; if (relativeDates) { int t, h, v, vmn; h = Tools.dayOfWeek(System.DateTime.Now); t = 0 - h; v = 7 - h; //CALCULATE difference with now DateTime dayDate = new System.DateTime(date.Year, date.Month, date.Day); TimeSpan difference = dayDate.Subtract(DateTime.Now.Date); vmn = difference.Days; //Convert to days //FUTURE if (vmn == 1) { if (includeTime) { retstr = "morgen om " + date.ToString("t"); } else { retstr = "morgen"; } } else if (vmn == 2) { if (includeTime) { retstr = "overmorgen om " + date.ToString("t"); } else { retstr = "overmorgen"; } } else if ((vmn < v || v == 1) && vmn > 2 && vmn < (v + 7)) { if (includeTime) { retstr = "aankomende " + dayOfWeekStr(date, shortVersion) + " om " + date.ToString("t"); } else { retstr = "aankomende " + dayOfWeekStr(date, shortVersion); } } else if (vmn >= v && vmn <= (v + 7)) { if (includeTime) { retstr = "volgende week " + dayOfWeekStr(date, shortVersion) + " om " + date.ToString("t"); } else { retstr = "volgende week " + dayOfWeekStr(date, shortVersion); } } else if (vmn >= (v + 7)) { if (includeTime) { retstr = dayOfWeekStr(date, shortVersion) + " " + date.Day.ToString() + " " + monthStr(date, shortVersion) + " om " + date.ToString("t"); } else { retstr = dayOfWeekStr(date, shortVersion) + " " + date.Day.ToString() + " " + monthStr(date, shortVersion); } //PRESENT } else if (vmn == 0) { if (includeTime) { retstr = "vandaag om " + date.ToString("t"); } else { retstr = "vandaag"; } //PAST } else if (vmn == -1) { if (includeTime) { retstr = "gisteren om " + date.ToString("t"); } else { retstr = "gisteren"; } } else if (vmn == -2) { if (includeTime) { retstr = "eergisteren om " + date.ToString("t"); } else { retstr = "eergisteren"; } } else if (vmn > (t - 2)) { if (includeTime) { retstr = "afgelopen " + dayOfWeekStr(date, shortVersion) + " om " + date.ToString("t"); } else { retstr = "afgelopen " + dayOfWeekStr(date, shortVersion); } } else if (vmn >= (t - 7)) { if (includeTime) { retstr = "vorige week " + dayOfWeekStr(date, shortVersion) + " om " + date.ToString("t"); } else { retstr = "vorige week " + dayOfWeekStr(date, shortVersion); } } else { if (includeTime) { retstr = dayOfWeekStr(date, shortVersion) + " " + date.Day.ToString() + " " + monthStr(date, shortVersion) + " om " + date.ToString("t"); } else { retstr = dayOfWeekStr(date, shortVersion) + " " + date.Day.ToString() + " " + monthStr(date, shortVersion); } } } else { if (includeTime) { retstr = dayOfWeekStr(date, shortVersion) + " " + date.Day.ToString() + " " + monthStr(date, shortVersion) + " om " + date.ToString("t"); } else { retstr = dayOfWeekStr(date, shortVersion) + " " + date.Day.ToString() + " " + monthStr(date, shortVersion); } } return retstr; } public static string dayOfWeekStr(DateTime date, bool shortVersion) { if (shortVersion) { switch (date.DayOfWeek) { case DayOfWeek.Monday: return "ma"; case DayOfWeek.Tuesday: return "di"; case DayOfWeek.Wednesday: return "wo"; case DayOfWeek.Thursday: return "do"; case DayOfWeek.Friday: return "vr"; case DayOfWeek.Saturday: return "za"; case DayOfWeek.Sunday: return "zo"; default: goto case DayOfWeek.Monday; } } else { switch (date.DayOfWeek) { case DayOfWeek.Monday: return "maandag"; case DayOfWeek.Tuesday: return "dinsdag"; case DayOfWeek.Wednesday: return "woensdag"; case DayOfWeek.Thursday: return "donderdag"; case DayOfWeek.Friday: return "vrijdag"; case DayOfWeek.Saturday: return "zaterdag"; case DayOfWeek.Sunday: return "zondag"; default: goto case DayOfWeek.Monday; } } } public static int dayOfWeek(DateTime date) { switch (date.DayOfWeek) { case DayOfWeek.Monday: return 0; case DayOfWeek.Tuesday: return 1; case DayOfWeek.Wednesday: return 2; case DayOfWeek.Thursday: return 3; case DayOfWeek.Friday: return 4; case DayOfWeek.Saturday: return 5; case DayOfWeek.Sunday: return 6; default: goto case 0; } } #endregion public static bool sendMessage(string toName, string toAddress, string subject, string messageBody, bool isHighPriority) { try { MailMessage mail = new MailMessage(); mail.BodyEncoding = System.Text.Encoding.UTF8; mail.SubjectEncoding = System.Text.Encoding.UTF8; mail.To.Add(new MailAddress(toAddress, toName)); if (isHighPriority) { mail.Priority = MailPriority.High; } mail.Subject = subject; mail.Body = messageBody; mail.IsBodyHtml = false; mail.From = new MailAddress("info@wmit.nl", "Willem's Weerwachter"); SmtpClient client = new SmtpClient("localhost"); client.Send(mail); Trace.WriteLine("Sent [" + subject + "] to " + toAddress + "."); return true; // the operation was a success } catch (Exception error) { return false; // not so good... not so good } } public static string getStringInBetween(string startStr, string endStr, string source, ref int iterator) { // first try to find the first string int startIndex = source.IndexOf(startStr, iterator, StringComparison.CurrentCultureIgnoreCase); if (startIndex != -1) { // whoopie! we've found something int startPosition = startIndex + startStr.Length; int endIndex = source.IndexOf(endStr, startPosition, StringComparison.CurrentCultureIgnoreCase); if (endIndex != -1) { int length = endIndex - startPosition; if (length <= 0) { return null; } iterator = endIndex; string returnString = source.Substring(startPosition, length); return returnString; } else { return null; } } else { // nothing found, return null to give that signal return null; } } /// /// Makes a request and returns the response in a string. /// /// URL to fetch. /// public static string getInternetResponse(string url) { try { // used to build entire input System.Text.StringBuilder sb = new System.Text.StringBuilder(); // used on each read operation byte[] buf = new byte[8192]; // prepare the web page we will be asking for HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Referer = null; request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.2; nl; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)"; // execute the request HttpWebResponse response = (HttpWebResponse) request.GetResponse(); // we will read data via the response stream Stream resStream = response.GetResponseStream(); string tempString = null; int count = 0; do { // fill the buffer with data count = resStream.Read(buf, 0, buf.Length); // make sure we read some data if (count != 0) { // translate from bytes to ASCII text tempString = System.Text.Encoding.ASCII.GetString(buf, 0, count); // continue building the string sb.Append(tempString); } } while (count > 0); // any more data to read? return sb.ToString(); } catch (Exception error) { return error.Message; } } } }