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