public static void Run([TimerTrigger("0 */10 * * * *")] TimerInfo myTimer, ILogger log, ExecutionContext context) { var config = new ConfigurationBuilder() .SetBasePath(context.FunctionAppDirectory) .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables() .Build(); var tripItUrl = config["TripItiCalUrl"]; var result = string.Empty; using (var webClient = new System.Net.WebClient()) { result = webClient.DownloadString(tripItUrl); } vCalendar vcalendar = new vCalendar(result); List <CalendarEvent> calendarList = new List <CalendarEvent>(); foreach (var item in vcalendar.vEvents) { var newEvent = new CalendarEvent { Title = item.ContentLines["SUMMARY"].Value, Location = item.ContentLines["LOCATION"].Value, Start = item.ContentLines["DTSTART"].Value, End = item.ContentLines["DTEND"].Value, Body = item.ContentLines["DESCRIPTION"].Value }; calendarList.Add(newEvent); } log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}"); }
private void saveAsButton_Click(object sender, EventArgs e) { this.savevCalendarDialog.ShowDialog(); vCalendar calendar = new vCalendar(); vEvent newEvent = new vEvent(); newEvent.Summary = this.objectTextbox.Text; newEvent.Location = this.placeTextbox.Text; newEvent.Start = DateTime.Now; newEvent.End = DateTime.Now; calendar.Events.Add(newEvent); calendar.SaveToFile(this.savevCalendarDialog.FileName); }
private void btnReadCard_Click_1(object sender, EventArgs e) { DialogResult dresult = dlgOpen.ShowDialog(); System.Threading.Thread.Sleep(0); if (dresult != DialogResult.Cancel) { string FileName = dlgOpen.FileName; cal = vCalendar.LoadFromFile(FileName); if (cal.Events.Count > 0) { txtDescription.Text = cal.Events[0].Description; txtName.Text = cal.Events[0].Summary; dtStart.Value = cal.Events[0].Start; dtEnd.Value = cal.Events[0].End; } } }
private void LoadvCalendar(string p) { ClearForm(); try { StreamReader streamReader = new StreamReader(p); string content = streamReader.ReadToEnd(); streamReader.Close(); vCalendar calendar = ActiveUp.Net.Groupware.vCalendar.Parser.Parse(content); if (calendar.Events.Count > 0) { vEvent fEvent = calendar.Events[0]; this.objectTextbox.Text = fEvent.Summary; this.placeTextbox.Text = fEvent.Location; this.startDate.Value = this.startTime.Value = fEvent.Start; this.endDate.Value = this.endTime.Value = fEvent.End; } else { MessageBox.Show("No events found in the vCalendar file."); } this.rawDataTextbox.Text = content; } catch (Exception ex) { ClearForm(); throw ex; MessageBox.Show("Error while loading the vCard. Please ensure this is a compatible format."); } finally { } }
public frmVcalendar() { InitializeComponent(); cal = new vCalendar(); }
protected internal override void Work() { HttpWebRequest today_cal_request = (HttpWebRequest)HttpWebRequest.Create(Main.TODAY_URL); today_cal_request.AllowAutoRedirect = true; today_cal_request.AllowWriteStreamBuffering = true; today_cal_request.KeepAlive = false; today_cal_request.SendChunked = false; today_cal_request.ContentType = "text/calendar"; today_cal_request.Method = "GET"; today_cal_request.UseDefaultCredentials = true; today_cal_request.Proxy = null; HttpWebResponse today_cal_response = (HttpWebResponse)today_cal_request.GetResponse(); Stream today_cal_response_stream = today_cal_response.GetResponseStream(); byte[] today_cal_response_bytes = Main.readStream(today_cal_response_stream); string today_cal_response_str = System.Text.Encoding.UTF8.GetString(today_cal_response_bytes); vCalendar today_cal = new vCalendar(today_cal_response_str); CultureInfo en_us = new CultureInfo("en-US", true); char[] comma_delimiter = { ',' }; char[] semi_colon_delimiter = { ';' }; char[] equal_sign_delimiter = { '=' }; foreach (vEvent cal_event in today_cal.vEvents) { //START EVENT CODE DateTime cal_event_start = DateTime.MinValue; DateTime cal_event_end = DateTime.MinValue; string cal_event_summary = ""; string cal_event_description = ""; string cal_event_location = ""; bool cal_event_is_all_day = false; List <string> cal_event_repeat_days = new List <string>(); DateTime cal_event_repeat_end = DateTime.MinValue; string cal_event_repeat_frequency = ""; List <string> cal_event_tags = new List <string>(); bool cal_event_start_long = true; try{ cal_event_start = DateTime.ParseExact(cal_event.GetContentLine("DTSTART").Value, "yyyyMMddTHHmmss", en_us); }catch (Exception e) { cal_event_start_long = false; cal_event_is_all_day = true; } if (!cal_event_start_long) { try{ cal_event_start = DateTime.ParseExact(cal_event.GetContentLine("DTSTART").Value, "yyyyMMdd", en_us); }catch (Exception e) { } } bool cal_event_end_long = true; try{ cal_event_end = DateTime.ParseExact(cal_event.GetContentLine("DTEND").Value, "yyyyMMddTHHmmss", en_us); }catch (Exception e) { cal_event_end_long = false; } if (!cal_event_end_long) { try{ cal_event_end = DateTime.ParseExact(cal_event.GetContentLine("DTEND").Value, "yyyyMMdd", en_us); }catch (Exception e) { } } try{ cal_event_summary = cal_event.GetContentLine("SUMMARY").Value; }catch (Exception e) { } try{ cal_event_description = cal_event.GetContentLine("DESCRIPTION").Value; }catch (Exception e) { } try{ cal_event_location = cal_event.GetContentLine("LOCATION").Value; }catch (Exception e) { } try{ cal_event_tags = new List <string>(cal_event.GetContentLine("X-TAGS").Value.Split(comma_delimiter)); }catch (Exception e) { } cal_event_summary = normalize_ical_string(cal_event_summary); cal_event_description = normalize_ical_string(cal_event_description); cal_event_location = normalize_ical_string(cal_event_location); for (int i = 0; i < cal_event_tags.Count; i++) { cal_event_tags[i] = normalize_ical_string(cal_event_tags[i]); } cal_event_description = HtmlToText.ConvertHtml(cal_event_description); cal_event_description = Regex.Replace(cal_event_description, "<[^>]*>", ""); today_events.Add(new TodayEvent(cal_event_start, cal_event_end, cal_event_summary, cal_event_description, cal_event_location, cal_event_is_all_day, cal_event_tags)); //END EVENT CODE //START REPEAT CODE try{ List <string> repeat_parts = new List <string>(cal_event.GetContentLine("RRULE").Value.Split(semi_colon_delimiter)); foreach (string repeat_part in repeat_parts) { if (repeat_part.Contains("BYDAY")) { List <string> byday_part = new List <string>(repeat_part.Split(equal_sign_delimiter)); cal_event_repeat_days = new List <string>(byday_part[1].Split(comma_delimiter)); } else if (repeat_part.Contains("FREQ")) { List <string> repeat_frequency_part = new List <string>(repeat_part.Split(equal_sign_delimiter)); cal_event_repeat_frequency = repeat_frequency_part[1]; } else if (repeat_part.Contains("UNTIL")) { List <string> repeat_end_part = new List <string>(repeat_part.Split(equal_sign_delimiter)); cal_event_repeat_end = DateTime.ParseExact(repeat_end_part[1], "yyyyMMddTHHmmss", en_us); } } }catch (Exception e) { } if (cal_event_repeat_end == DateTime.MinValue) { try{ List <string> repeat_parts = new List <string>(cal_event.GetContentLine("RRULE").Value.Split(semi_colon_delimiter)); foreach (string repeat_part in repeat_parts) { if (repeat_part.Contains("UNTIL")) { List <string> repeat_end_part = new List <string>(repeat_part.Split(equal_sign_delimiter)); cal_event_repeat_end = DateTime.ParseExact(repeat_end_part[1], "yyyyMMdd", en_us); } } } catch (Exception e) { } } foreach (string repeat_day in cal_event_repeat_days) { if (cal_event_repeat_frequency == "WEEKLY") { for (int i = 0; i < WEEKS_LOADED; i++) { int offset = WEEK_DAYS_SHORT[repeat_day] - WEEK_DAYS[cal_event_start.DayOfWeek.ToString()]; if (i == 0) { if (offset <= 0) { continue; } } DateTime adjusted_start = cal_event_start.AddDays(i * 7 + offset); if (DateTime.Compare(adjusted_start, cal_event_repeat_end) > 0) { continue; } DateTime adjusted_end = (cal_event_end != DateTime.MinValue)?cal_event_end.AddDays(i * 7 + offset):DateTime.MinValue; today_events.Add(new TodayEvent(adjusted_start, adjusted_end, cal_event_summary, cal_event_description, cal_event_location, cal_event_is_all_day, cal_event_tags)); } } else if (cal_event_repeat_frequency == "MONTHLY") { for (int i = 1; i < MONTHS_LOADED; i++) { DateTime adjusted_start = cal_event_start.AddMonths(i); if (DateTime.Compare(adjusted_start, cal_event_repeat_end) > 0) { continue; } DateTime adjusted_end = (cal_event_end != DateTime.MinValue)?cal_event_end.AddMonths(i):DateTime.MinValue; today_events.Add(new TodayEvent(adjusted_start, adjusted_end, cal_event_summary, cal_event_description, cal_event_location, cal_event_is_all_day, cal_event_tags)); } } else if (cal_event_repeat_frequency == "YEARLY") { for (int i = 1; i < YEARS_LOADED; i++) { DateTime adjusted_start = cal_event_start.AddYears(i); if (DateTime.Compare(adjusted_start, cal_event_repeat_end) > 0) { continue; } DateTime adjusted_end = (cal_event_end != DateTime.MinValue)?cal_event_end.AddYears(i):DateTime.MinValue; today_events.Add(new TodayEvent(adjusted_start, adjusted_end, cal_event_summary, cal_event_description, cal_event_location, cal_event_is_all_day, cal_event_tags)); } } } //END REPEAT CODE } today_events.Sort((a, b) => a.CompareTo(b)); }