public void ListEventAsAsked()
 {
     EventManager eventManager = new EventManager();
     DateTime dateOne = new DateTime(2000, 01, 01, 00, 00, 00);
     DateTime dateTwo = new DateTime(2010, 12, 31, 23, 59, 59);
     DateTime dateThree = new DateTime(2019, 05, 16, 13, 30, 00);
     CalendarEvent calendarEventOne =
         new CalendarEvent(dateOne, "party", "somewhere");
     CalendarEvent calendarEventTwo =
         new CalendarEvent(dateTwo, "exam", "somewhere");
     CalendarEvent calendarEventThree =
         new CalendarEvent(dateThree, "party", "club");
     CalendarEvent calendarEventFour =
         new CalendarEvent(dateOne, "exam", "academy");
     CalendarEvent calendarEventFive =
         new CalendarEvent(dateTwo, "sleep", null);
     CalendarEvent calendarEventSix =
         new CalendarEvent(dateThree, "sleep", null);
     CalendarEvent calendarEventSeven =
         new CalendarEvent(dateTwo, "party", null);
     eventManager.AddEvent(calendarEventOne);
     eventManager.AddEvent(calendarEventTwo);
     eventManager.AddEvent(calendarEventThree);
     eventManager.AddEvent(calendarEventFour);
     eventManager.AddEvent(calendarEventFive);
     eventManager.AddEvent(calendarEventSix);
     eventManager.AddEvent(calendarEventSeven);
     IEnumerable<CalendarEvent> list = eventManager.ListEvents(dateOne, 5);
     Assert.AreEqual(5, list.Count());
 }
Exemplo n.º 2
0
 private Exception AddSession(CalendarEvent entity)
 {
     if (!CanSave(entity))
         return new ConstraintException();
     _calendarEventRepository.MakePersistent(entity);
     return null;
 }
 public void AddEventDuplicate()
 {
     EventManager eventManager = new EventManager();
     DateTime dateOne = new DateTime(2000, 01, 01, 00, 00, 00);
     DateTime dateTwo = new DateTime(2010, 12, 31, 23, 59, 59);
     DateTime dateThree = new DateTime(2019, 05, 16, 13, 30, 00);
     CalendarEvent calendarEventOne =
         new CalendarEvent(dateOne, "party", "somewhere");
     CalendarEvent calendarEventTwo =
         new CalendarEvent(dateTwo, "exam", "academy");
     CalendarEvent calendarEventThree =
         new CalendarEvent(dateThree, "sleep", null);
     CalendarEvent calendarEventFour =
         new CalendarEvent(dateTwo, "party", null);
     eventManager.AddEvent(calendarEventOne);
     eventManager.AddEvent(calendarEventTwo);
     eventManager.AddEvent(calendarEventThree);
     eventManager.AddEvent(calendarEventFour);
     eventManager.AddEvent(calendarEventTwo);
     eventManager.AddEvent(calendarEventTwo);
     eventManager.AddEvent(calendarEventOne);
     Assert.AreEqual(3, eventManager.CalendarByDate.Count);
     Assert.AreEqual(3, eventManager.CalendarByTitle.Count);
     Assert.IsTrue(eventManager.CalendarByTitle.ContainsKey("exam"));
     Assert.IsTrue(eventManager.CalendarByTitle.ContainsKey("party"));
     Assert.IsTrue(eventManager.CalendarByTitle.ContainsKey("sleep"));
 }
Exemplo n.º 4
0
        public static int addEvent(ImproperCalendarEvent improperEvent)
        {
            CalendarEvent cevent = new CalendarEvent()
                {
                    title = improperEvent.title,
                    description = improperEvent.description,
                    purpose = improperEvent.purpose,
                    start = DateTime.ParseExact(improperEvent.start, "dd-MM-yyyy hh:mm:ss tt", CultureInfo.InvariantCulture),
                    end = DateTime.ParseExact(improperEvent.end, "dd-MM-yyyy hh:mm:ss tt", CultureInfo.InvariantCulture),
                    contactNumber = improperEvent.contactNumber,
                    CPAID=int.Parse(System.Web.HttpContext.Current.Session["userID"].ToString()),
                    interval = 30
                };

            if (CheckAlphaNumeric(cevent.title) && CheckAlphaNumeric(cevent.description))
            {
                int key = EventDAO.addEvent(cevent);

                List<int> idList = (List<int>)System.Web.HttpContext.Current.Session["idList"];

                if (idList != null)
                {
                    idList.Add(key);
                }

                return key;//return the primary key of the added cevent object

            }

            return -1;//return a negative number just to signify nothing has been added
        }
Exemplo n.º 5
0
        public void DatePropertyWithValidDataTest()
        {
            DateTime date = new DateTime(2002, 01, 02, 02, 02, 02);
            CalendarEvent singleEvent = new CalendarEvent(date, "Title", null);

            Assert.AreEqual(date, singleEvent.Date);
        }
Exemplo n.º 6
0
	//this method retrieves all events within range start-end
    public static List<CalendarEvent> getEvents(DateTime start, DateTime end)
    {   
        List<CalendarEvent> events = new List<CalendarEvent>();
        SqlConnection con = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand("SELECT event_id, description, title, event_start, event_end, all_day FROM ECICalendarEvent_Test where event_start>=@start AND event_end<=@end", con);
        cmd.Parameters.Add("@start", SqlDbType.DateTime).Value = start;
        cmd.Parameters.Add("@end", SqlDbType.DateTime).Value = end;
        
        using (con)
        {
            con.Open();
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                CalendarEvent cevent = new CalendarEvent();
                cevent.id = (int)reader["event_id"];
                cevent.title = (string)reader["title"];
                cevent.description = (string)reader["description"];
                cevent.start = (DateTime)reader["event_start"];
                cevent.end = (DateTime)reader["event_end"];
                cevent.allDay = (bool)reader["all_day"];
                events.Add(cevent);
            }
        }
        return events;
        //side note: if you want to show events only related to particular users,
        //if user id of that user is stored in session as Session["userid"]
        //the event table also contains an extra field named 'user_id' to mark the event for that particular user
        //then you can modify the SQL as:
        //SELECT event_id, description, title, event_start, event_end FROM event where user_id=@user_id AND event_start>=@start AND event_end<=@end
        //then add paramter as:cmd.Parameters.AddWithValue("@user_id", HttpContext.Current.Session["userid"]);
    }
Exemplo n.º 7
0
    //this method adds events to the database
    public static int addEvent(CalendarEvent cevent)
    {
        //add event to the database and return the primary key of the added event row

        //insert
        SqlConnection con = new SqlConnection(connectionString);

        int key = 0;
        using (con)
        {
            con.Open();

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "[OpenAppointments]";
            cmd.Parameters.AddWithValue("@start", cevent.start.ToUniversalTime());
            cmd.Parameters.AddWithValue("@end", cevent.end.ToUniversalTime());
            cmd.Parameters.AddWithValue("@interval", cevent.interval);
            cmd.Parameters.AddWithValue("@CPAID", cevent.CPAID);
            cmd.Parameters.AddWithValue("@customerName", cevent.title);
            cmd.Parameters.AddWithValue("@purposeOfVisit", cevent.purpose);
            cmd.Parameters.AddWithValue("@contactNumber", cevent.contactNumber);
            cmd.Parameters.AddWithValue("@note", cevent.description);
            cmd.Parameters.AddWithValue("@isOpen", string.IsNullOrEmpty(cevent.title));
            cmd.ExecuteNonQuery();

        }

        return key;
    }
Exemplo n.º 8
0
            public void Example()
            {
                // Model
                var calendarEvent = new CalendarEvent
                    {
                        EventDate = new DateTime(2008, 12, 15, 20, 30, 0),
                        Title = "Company Holiday Party"
                    };

                var config = new MapperConfiguration(cfg =>
                {
                    // Configure AutoMapper
                    cfg.CreateMap<CalendarEvent, CalendarEventForm>()
                        .ForMember(dest => dest.EventDate, opt => opt.MapFrom(src => src.EventDate.Date))
                        .ForMember(dest => dest.EventHour, opt => opt.MapFrom(src => src.EventDate.Hour))
                        .ForMember(dest => dest.EventMinute, opt => opt.MapFrom(src => src.EventDate.Minute));
                });

                // Perform mapping
                var mapper = config.CreateMapper();
                CalendarEventForm form = mapper.Map<CalendarEvent, CalendarEventForm>(calendarEvent);

                form.EventDate.ShouldEqual(new DateTime(2008, 12, 15));
                form.EventHour.ShouldEqual(20);
                form.EventMinute.ShouldEqual(30);
                form.Title.ShouldEqual("Company Holiday Party");
            }
Exemplo n.º 9
0
        private string ProccessAddEventCommand(Command command, string result)
        {
            if ((command.Name == "AddEvent"))
            {
                if (command.Parameters.Length == 2)
                {
                    DateTime date = DateTime.ParseExact(
                        command.Parameters[0], DATE_FORMAT, CultureInfo.InvariantCulture);
                    CalendarEvent calendarEvent =
                        new CalendarEvent(date, command.Parameters[1], null);
                    this.EventManager.AddEvent(calendarEvent);
                    result = "Event added";
                }
                else if (command.Parameters.Length == 3)
                {
                    DateTime date = DateTime.ParseExact(
                        command.Parameters[0], DATE_FORMAT, CultureInfo.InvariantCulture);
                    CalendarEvent calendarEvent =
                        new CalendarEvent(date, command.Parameters[1], command.Parameters[2]);
                    this.EventManager.AddEvent(calendarEvent);
                    result = "Event added";
                }
            }

            return result;
        }
Exemplo n.º 10
0
    //this method adds events to the database
    public static int addEvent(CalendarEvent cevent)
    {
        //add event to the database and return the primary key of the added event row

        //insert
        SqlConnection con = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand("INSERT INTO ECICalendarEvent_Test(title, description, event_start, event_end, all_day) VALUES(@title, @description, @event_start, @event_end, @all_day)", con);
        cmd.Parameters.Add("@title", SqlDbType.VarChar).Value = cevent.title;
        cmd.Parameters.Add("@description", SqlDbType.VarChar).Value = cevent.description;
        cmd.Parameters.Add("@event_start", SqlDbType.DateTime).Value = cevent.start;
        cmd.Parameters.Add("@event_end", SqlDbType.DateTime).Value = cevent.end;
        cmd.Parameters.Add("@all_day", SqlDbType.Bit).Value = cevent.allDay;

        int key = 0;
        using (con)
        {
            con.Open();
            cmd.ExecuteNonQuery();

            //get primary key of inserted row
            cmd = new SqlCommand("SELECT max(event_id) FROM ECICalendarEvent_Test where title=@title AND description=@description AND event_start=@event_start AND event_end=@event_end AND all_day=@all_day", con);
            cmd.Parameters.Add("@title", SqlDbType.VarChar).Value = cevent.title;
            cmd.Parameters.Add("@description", SqlDbType.VarChar).Value = cevent.description;
            cmd.Parameters.Add("@event_start", SqlDbType.DateTime).Value = cevent.start;
            cmd.Parameters.Add("@event_end", SqlDbType.DateTime).Value = cevent.end;
            cmd.Parameters.Add("@all_day", SqlDbType.Bit).Value = cevent.allDay;

            key = (int)cmd.ExecuteScalar();
        }

        return key;
    }
 public void DeleteEventMultiple()
 {
     EventManager eventManager = new EventManager();
     DateTime dateOne = new DateTime(2000, 01, 01, 00, 00, 00);
     DateTime dateTwo = new DateTime(2010, 12, 31, 23, 59, 59);
     DateTime dateThree = new DateTime(2019, 05, 16, 13, 30, 00);
     CalendarEvent calendarEventOne =
         new CalendarEvent(dateOne, "party", "somewhere");
     CalendarEvent calendarEventTwo =
         new CalendarEvent(dateTwo, "exam", "somewhere");
     CalendarEvent calendarEventThree =
         new CalendarEvent(dateThree, "party", "club");
     CalendarEvent calendarEventFour =
         new CalendarEvent(dateOne, "exam", "academy");
     CalendarEvent calendarEventFive =
         new CalendarEvent(dateTwo, "sleep", null);
     CalendarEvent calendarEventSix =
         new CalendarEvent(dateThree, "sleep", null);
     CalendarEvent calendarEventSeven =
         new CalendarEvent(dateTwo, "party", null);
     eventManager.AddEvent(calendarEventOne);
     eventManager.AddEvent(calendarEventTwo);
     eventManager.AddEvent(calendarEventThree);
     eventManager.AddEvent(calendarEventFour);
     eventManager.AddEvent(calendarEventFive);
     eventManager.AddEvent(calendarEventSix);
     eventManager.AddEvent(calendarEventSeven);
     int firstCount = eventManager.DeleteEventsByTitle("party");
     Assert.AreEqual(3, firstCount);
     Assert.AreEqual(2, eventManager.CalendarByTitle.Count);
     Assert.IsFalse(eventManager.CalendarByTitle.ContainsKey("party"));
     int secondCount = eventManager.DeleteEventsByTitle("party");
     Assert.AreEqual(0, secondCount);
     Assert.AreEqual(2, eventManager.CalendarByTitle.Count);
 }
Exemplo n.º 12
0
        private string AddEventWithDateTitleAndLocation(Command command)
        {
            var date = DateTime.ParseExact(command.Arguments[0], "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);
            var currentEvent = new CalendarEvent(date, command.Arguments[1], command.Arguments[2]);

            this.EventsManager.AddEvent(currentEvent);

            return "Event added";
        }
Exemplo n.º 13
0
        public void AddEventMethodCheckTitlesCollectionRegularTest()
        {
            EventsManagerFast eventsManager = new EventsManagerFast();
            DateTime date = new DateTime(2002, 01, 02, 02, 02, 02);
            CalendarEvent singleEvent = new CalendarEvent(date, "Title", null);

            eventsManager.AddEvent(singleEvent);
            Assert.AreEqual(1, eventsManager.TitlesColection.Count);
        }
 public void OpenItem(CalendarEvent calendarEvent)
 {
     try
     {
         System.Diagnostics.Process.Start(calendarEvent.Url);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Exemplo n.º 15
0
 public static CalendarEvent GetExistingEvent()
 {
   var beerParty = new CalendarEvent();
   var friends = new Attendee[1];
   var andriy = new Attendee { FirstName = "Andriy", LastName = "Buday" };
   friends[0] = andriy;
   beerParty.Attendees = friends;
   beerParty.StartDateAndTime = new DateTime(2010, 7, 23, 19, 0, 0);
   beerParty.Priority = Priority.High();
   return beerParty;
 }
 public void DeleteEvent()
 {
     EventManager eventManager = new EventManager();
     DateTime date = new DateTime(2012, 01, 21, 20, 00, 00);
     CalendarEvent calendarEvent =
         new CalendarEvent(date, "party", "somewhere");
     eventManager.AddEvent(calendarEvent);
     int count = eventManager.DeleteEventsByTitle("party");
     Assert.AreEqual(1, count);
     Assert.AreEqual(0, eventManager.CalendarByTitle.Count);
     Assert.AreEqual(0, eventManager.CalendarByDate.Count);
 }
        /// <summary>
        /// Gets a list of all events in outlook
        /// </summary>
        public static List<CalendarEvent> GetAllEvents()
        {
            List<CalendarEvent> events = new List<CalendarEvent>();

            Microsoft.Office.Interop.Outlook.Application oApp = null;
            Microsoft.Office.Interop.Outlook.NameSpace mapiNamespace = null;
            Microsoft.Office.Interop.Outlook.MAPIFolder CalendarFolder = null;
            Microsoft.Office.Interop.Outlook.Items outlookCalendarItems = null;

            oApp = new Microsoft.Office.Interop.Outlook.Application();
            mapiNamespace = oApp.GetNamespace("MAPI");
            CalendarFolder = mapiNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar); outlookCalendarItems = CalendarFolder.Items;
            outlookCalendarItems.IncludeRecurrences = true;

            CalendarEvent cEvent = null;

            foreach (Microsoft.Office.Interop.Outlook.AppointmentItem item in outlookCalendarItems)
            {
                cEvent = null;

                if (item.IsRecurring)
                {
                    Microsoft.Office.Interop.Outlook.RecurrencePattern rp = item.GetRecurrencePattern();
                    DateTime first = new DateTime(2008, 8, 31, item.Start.Hour, item.Start.Minute, 0);
                    DateTime last = new DateTime(2008, 10, 1);
                    Microsoft.Office.Interop.Outlook.AppointmentItem recur = null;

                    for (DateTime cur = first; cur <= last; cur = cur.AddDays(1))
                    {
                        try
                        {
                            recur = rp.GetOccurrence(cur);
                            cEvent = new CalendarEvent(recur.GlobalAppointmentID, recur.Start, recur.End, recur.Location, recur.Subject, recur.Body);
                        }
                        catch
                        { }
                    }
                }
                else
                {

                    cEvent = new CalendarEvent(item.GlobalAppointmentID, item.Start, item.End, item.Location, item.Subject, item.Body);
                }

                if (cEvent != null)
                    events.Add(cEvent);
            }

            return events;
        }
Exemplo n.º 18
0
        public void AddEventMethodWithDuplicatedTitleCheckDatesCollectionTest()
        {
            EventsManagerFast eventsManager = new EventsManagerFast();

            DateTime firstDate = new DateTime(2002, 01, 02, 02, 02, 02);
            CalendarEvent firstEvent = new CalendarEvent(firstDate, "Title", null);

            DateTime secondDate = new DateTime(2003, 01, 02, 02, 02, 02);
            CalendarEvent secondEvent = new CalendarEvent(secondDate, "Title", null);

            eventsManager.AddEvent(firstEvent);
            eventsManager.AddEvent(secondEvent);

            Assert.AreEqual(2, eventsManager.DatesCollection.Count);
        }
Exemplo n.º 19
0
        public void TitlePropertyWithEmptyDataIsItTheCorrectExceptionTest()
        {
            DateTime date = new DateTime(2002, 01, 02, 02, 02, 02);
            string message = "";
            try
            {
                CalendarEvent singleEvent = new CalendarEvent(date, String.Empty, null);
            }
            catch (Exception exc)
            {
                message = exc.Message;
            }

            Assert.AreEqual("Title shouldn't be empty", message);
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            if (ClubEventSwitch.On)
            {
                throw new NotImplementedException();
            }

            if (Event == null)
            {
                Event = new CalendarEvent();
            }

            _keyboardHandler.DismissKeyboardOnBackgroundTap();

            AttendeesTextView.Delegate = new AttendeeTextViewDelegate()
            {
                ParentController = this
            };

            StartDateTextField.Delegate = new DateTextFieldDelegate()
            {
                DateType = DatePickerType.StartDate,
                DatePickerTitle = "APP/CAL/PICK_START_DATE",
                DatePickerTitleColor = UIColor.Green,
                DisplayDatePicker = PresentDatePicker
            };
            
            EndDateTextField.Delegate = new DateTextFieldDelegate()
            {
                DateType = DatePickerType.EndDate,
                DatePickerTitle = "APP/CAL/PICK_END_DATE",
                DatePickerTitleColor = UIColor.Red,
                DisplayDatePicker = PresentDatePicker
            };

            TitleTextField.Delegate = new LimitTextFieldDelegate()
            {
                MaxTextLength = 128
            };

            DescriptionTextView.Delegate = new DescriptionTextViewDelegate()
            {
                MaxTextLength = 2048,
                ParentController = this
            };
        }
 public static CalendarEvent InsertCalendarEvent(SiteCalenderApiController.CalendarEvents calendarEvent)
 {
     var dataModel = new DesignEntities();
     var item = new CalendarEvent
     {
         CalendarEventTypeId = calendarEvent.CalendarEventTypeId,
         Title = calendarEvent.Title,
         Description = calendarEvent.Description,
         StartDate = calendarEvent.StartDate,
         EndDate = calendarEvent.EndDate,
         Editable = calendarEvent.Editable
     };
     dataModel.CalendarEvents.Add(item);
     dataModel.SaveChanges();
     return item;
 }
Exemplo n.º 22
0
    //this method adds events to the database
    public static int addEvent(CalendarEvent cevent)
    {
        //add event to the database and return the primary key of the added event row

        //insert
        SqlConnection con = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand("INSERT INTO event(title, description, event_start, event_end,purpose) VALUES(@title, @description, @event_start, @event_end,@purpose)", con);
        cmd.Parameters.AddWithValue("@title", cevent.title);
        cmd.Parameters.AddWithValue("@purpose", cevent.purpose);
        cmd.Parameters.AddWithValue("@description", cevent.description);
        cmd.Parameters.AddWithValue("@event_start", cevent.start);
        cmd.Parameters.AddWithValue("@event_end", cevent.end);

        int key = 0;
        using (con)
        {
            con.Open();
            cmd.ExecuteNonQuery();

            //get primary key of inserted row
            cmd = new SqlCommand("SELECT max(event_id) FROM event where title=@title AND description=@description AND event_start=@event_start AND event_end=@event_end", con);
            cmd.Parameters.AddWithValue("@title", cevent.title);
            cmd.Parameters.AddWithValue("@description", cevent.description);
            cmd.Parameters.AddWithValue("@event_start", cevent.start);
            cmd.Parameters.AddWithValue("@event_end", cevent.end);

            key = (int)cmd.ExecuteScalar();

            cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "[OpenAppointments]";
            cmd.Parameters.AddWithValue("@start", cevent.start);
            cmd.Parameters.AddWithValue("@end", cevent.end);
            cmd.Parameters.AddWithValue("@interval", cevent.interval);
            cmd.Parameters.AddWithValue("@CPAID", cevent.CPAID);
            cmd.Parameters.AddWithValue("@customerName", cevent.title);
            cmd.Parameters.AddWithValue("@purposeOfVisit", cevent.purpose);
            cmd.Parameters.AddWithValue("@contactNumber", cevent.contactNumber);
            cmd.Parameters.AddWithValue("@note", cevent.description);
            cmd.Parameters.AddWithValue("@isOpen", string.IsNullOrEmpty(cevent.title));
            cmd.ExecuteNonQuery();

        }

        return key;
    }
        public void UpdateSnoozeOptions(CalendarEvent calendarEvent)
        {
            if (calendarEvent == null) return;

            SnoozeCollection.Remove(-5);
            SnoozeCollection.Remove(-10);

            if (calendarEvent.StartTime.Subtract(TimeUtility.GetTimeSpan(10)) > DateTime.Now)
            {
                SnoozeCollection.Insert(0, -10);
            }

            if (calendarEvent.StartTime.Subtract(TimeUtility.GetTimeSpan(5)) > DateTime.Now)
            {
                SnoozeCollection.Insert(0, -5);
            }
        }
Exemplo n.º 24
0
        public virtual void SendWithCalendarEvent(string address, string subject, string body, CalendarEvent calendarEvent, int releaseDuration)
        {
            //var config = Configuration.GetPluginConfiguration();

            var mail = ConstructMailMessage(new List<string> { address }, subject, _config.UserName);

            var client = ConstructSmtpClient(_config.Smtp, _config.UserName, _config.Password);

            var outlookEvent = Mapper.Map<CalendarEvent, OutlookEventEntity>(calendarEvent);

            new IcsConstructor().Build(outlookEvent, mail, body, releaseDuration,
                string.IsNullOrWhiteSpace(outlookEvent.Organizer) ? _config.UserName : outlookEvent.Organizer);

            DisableServerSertificateValidation();

            client.Send(mail);
        }
Exemplo n.º 25
0
 public JsonResult Add(WijmoEvent ev)
 {
     var y = HttpContext.Request.InputStream;
     y.Position = 0;
     var json = string.Empty;
     using (var reader = new StreamReader(y))
     {
         json = reader.ReadToEnd();
     }
     var repository = new Calendar.Respository.MongoDB.CalendarRepository<CalendarEvent>("CalendarEvents");
     var calendarEvent = new CalendarEvent { WijmoEvent = ev };
     var smr = repository.Insert(calendarEvent);
     if (smr != null)
     {
         return Json(new { success = true });
     }
     return Json(new { success = false });
 }
Exemplo n.º 26
0
        public override void SendWithCalendarEvent(string address, string subject, string body, CalendarEvent outlookEvent, int releaseDuration)
        {
            var config = PluginConfiguration.GetPluginConfiguration();

            if (!string.IsNullOrEmpty(config.RedirectToEmail) && !address.Equals(config.RedirectToEmail, StringComparison.InvariantCultureIgnoreCase))
            {
                base.SendWithCalendarEvent(
                    config.RedirectToEmail,
                    subject,
                    "Original addresses: " + address + "<br/ >---------------------<br/ >" + body,
                    outlookEvent,
                    releaseDuration);

                return;
            }

            base.SendWithCalendarEvent(address, subject, body, outlookEvent, releaseDuration);
        }
    public static string UpdateEvent(CalendarEvent cevent)
    {
        List<int> idList = (List<int>)System.Web.HttpContext.Current.Session["idList"];
        if (idList != null && idList.Contains(cevent.id))
        {
            if (CheckAlphaNumeric(cevent.title) && CheckAlphaNumeric(cevent.description))
            {
                EventDAO.updateEvent(cevent.id, cevent.title, cevent.description);

                return "updated event with id:" + cevent.id + " update title to: " + cevent.title +
                " update description to: " + cevent.description;
            }

        }

        return "unable to update event with id:" + cevent.id + " title : " + cevent.title +
            " description : " + cevent.description;
    }
        public IObservable<ICalendarEvent> LoadCalendar(IProfile activeProfile)
        {
            return Observable.Create<ICalendarEvent>(o =>
                {

                    var x = new CalendarEvent
                        {
                            Start = DateTimeOffset.UtcNow.Date.AddDays(3).AddHours(10),
                            End = DateTimeOffset.UtcNow.Date.AddDays(3).AddHours(12),
                            Name = "Lunch with Lee",
                            Provider = GoogleCalendarProvider.Instance
                        };
                    o.OnNext(x);

                    x = new CalendarEvent
                    {
                        Start = DateTimeOffset.UtcNow.Date.AddDays(1).AddHours(18),
                        End = DateTimeOffset.UtcNow.Date.AddDays(1).AddHours(19.5),
                        Name = "Training",
                        Provider = GoogleCalendarProvider.Instance
                    };
                    o.OnNext(x);

                    x = new CalendarEvent
                    {
                        Start = DateTimeOffset.UtcNow.Date.AddHours(18),
                        End = DateTimeOffset.UtcNow.Date.AddHours(19.5),
                        Name = "Document review",
                        Provider = GoogleCalendarProvider.Instance
                    };
                    o.OnNext(x);

                    x = new CalendarEvent
                    {
                        Start = DateTimeOffset.UtcNow.Date.AddDays(-10).AddHours(18),
                        End = DateTimeOffset.UtcNow.Date.AddDays(-10).AddHours(19.5),
                        Name = "Document design session",
                        Provider = GoogleCalendarProvider.Instance
                    };
                    o.OnNext(x);
                    o.OnCompleted();
                    return Disposable.Empty;
                });
        }
Exemplo n.º 29
0
        public void SendAssignmentReminderEmail(CalendarEvent calendarEvent)
        {
            var email = Email
                       .From("*****@*****.**","Congregation Assignment Reminder")
                       .To(calendarEvent.Email)
                       .Subject("Congregation Assignment Reminder: " + calendarEvent.Title + " " + calendarEvent.AssignmnetDate.ToShortDateString())
                       .UsingClient(_smtpClient)
                       .UsingTemplateFromFile("emailtemplate.txt", new { Name = calendarEvent.Name, Assignment = calendarEvent.Assignment, Date = calendarEvent.AssignmnetDate.ToShortDateString() });

            if (calendarEvent.Assignment.Contains("Tidying Assignment") ||
                calendarEvent.Assignment.Contains("Cleaning Assignment"))
            {
                var location = string.Concat(AppDomain.CurrentDomain.BaseDirectory, "\\Lists\\GroupCleaningReminders.pdf");
                var attachment = new Attachment(location, MediaTypeNames.Application.Pdf);
                email.Attach(attachment);
            }

            email.Send();
        }
        public void ListEventCheckOrder()
        {
            EventManager eventManager = new EventManager();
            DateTime dateOne = new DateTime(2000, 01, 01, 00, 00, 00);
            DateTime dateTwo = new DateTime(2010, 12, 31, 23, 59, 59);
            DateTime dateThree = new DateTime(2019, 05, 16, 13, 30, 00);
            CalendarEvent calendarEventOne =
                new CalendarEvent(dateOne, "party", "somewhere");
            CalendarEvent calendarEventTwo =
                new CalendarEvent(dateTwo, "exam", "somewhere");
            CalendarEvent calendarEventThree =
                new CalendarEvent(dateThree, "party", "club");
            CalendarEvent calendarEventFour =
                new CalendarEvent(dateOne, "exam", "academy");
            CalendarEvent calendarEventFive =
                new CalendarEvent(dateTwo, "sleep", null);
            CalendarEvent calendarEventSix =
                new CalendarEvent(dateThree, "party", null);
            CalendarEvent calendarEventSeven =
                new CalendarEvent(dateTwo, "party", null);
            eventManager.AddEvent(calendarEventOne);
            eventManager.AddEvent(calendarEventTwo);
            eventManager.AddEvent(calendarEventThree);
            eventManager.AddEvent(calendarEventFour);
            eventManager.AddEvent(calendarEventFive);
            eventManager.AddEvent(calendarEventSix);
            eventManager.AddEvent(calendarEventSeven);
            IEnumerable<CalendarEvent> list = eventManager.ListEvents(dateTwo, 5);
            Assert.AreEqual(5, list.Count());

            string expected = calendarEventTwo.ToString() + "\n" +
                calendarEventSeven.ToString() + "\n" +
                calendarEventFive.ToString() + "\n" +
                calendarEventSix.ToString() + "\n" +
                calendarEventThree.ToString();
            string actual = list.First().ToString() + "\n" +
                list.Skip(1).First().ToString() + "\n" +
                list.Skip(2).First().ToString() + "\n" +
                list.Skip(3).First().ToString() + "\n" +
                list.Skip(4).First().ToString();
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 31
0
        public string GetCalendar()
        {
            var now    = DateTime.Now;
            var estart = now.AddDays(1);
            var eend   = now.AddMinutes(30);


            var calendar = new Ical.Net.Calendar();
            IList <Attendee> attendees = new List <Attendee>();

            Organizer orgniser = new Organizer
            {
                CommonName = "Face My Resume",
                Value      = new Uri($"mailto:[email protected]")
            };

            //attendees.Add(new Attendee("MAILTO:[email protected]")
            //{
            //    CommonName = "Siva Shankaran",
            //    Role = ParticipationRole.RequiredParticipant,
            //    ParticipationStatus = ToDoParticipationStatus.Tentative,
            //    Rsvp = true,
            //    Type = "INDIVIDUAL"
            //});

            attendees.Add(new Attendee("MAILTO:[email protected]")
            {
                //Role = ParticipationRole.RequiredParticipant,
                //ParticipationStatus = ToDoParticipationStatus.Tentative,
                //Rsvp = true,
                //Type = "INDIVIDUAL"
            });


            Alarm ealarm = new Alarm();

            ealarm.Action  = AlarmAction.Display;
            ealarm.Trigger = new Trigger(TimeSpan.FromMinutes(-30));

            const string eTz      = "Eastern Standard Time";
            var          tzi      = TimeZoneInfo.FindSystemTimeZoneById(eTz);
            var          timezone = VTimeZone.FromSystemTimeZone(tzi);

            calendar.AddTimeZone(timezone);
            //  calendar.AddTimeZone(new VTimeZone("America/New_York"));
            calendar.Method = "REQUEST";
            var e = new CalendarEvent
            {
                Start        = new CalDateTime(estart),
                End          = new CalDateTime(eend),
                LastModified = new CalDateTime(now),
                Location     = "",
                Alarms       = { ealarm },
                Sequence     = 0,
                Summary      = "Telephonic Interview",
                Description  = "Calendar sent using Face My Resume App",
                Status       = "CONFIRMED",
                Attendees    = attendees,
                Organizer    = orgniser
            };

            calendar.Events.Add(e);

            var e2 = new CalendarEvent
            {
                Start        = new CalDateTime(eend),
                End          = new CalDateTime(eend),
                LastModified = new CalDateTime(now),
                Location     = "",
                Alarms       = { ealarm },
                Sequence     = 0,
                Summary      = "InPerson Interview",
                Description  = "Calendar sent using Face My Resume App",
                Status       = "CONFIRMED",
                Attendees    = attendees,
                Organizer    = orgniser
            };
            //calendar.Events.Add(e2);


            var serializer         = new CalendarSerializer();
            var serializedCalendar = serializer.SerializeToString(calendar);

            //return serializedCalendar.Replace("github.com/rianjs/","facemyresume.com/app/").Replace("ical.net", "cal");
            return(serializedCalendar.Replace("\n ", ""));
        }
 public void Post([FromForm] CalendarEvent calEvent)
 {
     calEvent.id = Guid.NewGuid().ToString();
     events.Add(calEvent);
 }
Exemplo n.º 33
0
    //this method retrieves all events within range start-end
    public static List <CalendarEvent> getEvents(DateTime start, DateTime end)
    {
        int value      = Convert.ToInt32(HttpContext.Current.Session["viewusertimetable"]);
        int value2     = Convert.ToInt32(HttpContext.Current.Session["userid"]);
        int usernumber = 0;

        if (value == 0)
        {
            List <CalendarEvent> events = new List <CalendarEvent>();
            SqlConnection        con    = new SqlConnection(connectionString);
            SqlCommand           cmd    = new SqlCommand("SELECT eventID, description, title, event_start, event_end, userID FROM SIS_EVENT WHERE userID IN (0, @user_id) AND event_start >= @start AND event_end <= @end ", con);



            cmd.Parameters.AddWithValue("@start", start);
            cmd.Parameters.AddWithValue("@end", end);
            cmd.Parameters.AddWithValue("@user_id", value2);



            using (con)
            {
                con.Open();
                SqlDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    CalendarEvent cevent = new CalendarEvent();
                    cevent.id          = (int)reader["eventID"];
                    cevent.title       = (string)reader["title"];
                    cevent.description = (string)reader["description"];
                    cevent.start       = (DateTime)reader["event_start"];
                    cevent.end         = (DateTime)reader["event_end"];

                    events.Add(cevent);
                }
            }
            return(events);
        }
        else
        {
            List <CalendarEvent> events = new List <CalendarEvent>();
            SqlConnection        con    = new SqlConnection(connectionString);
            SqlCommand           cmd    = new SqlCommand("SELECT eventID, description, title, event_start, event_end, userID FROM SIS_EVENT WHERE userID IN (0, @user_id) AND event_start >= @start AND event_end <= @end", con);
            cmd.Parameters.AddWithValue("@start", start);
            cmd.Parameters.AddWithValue("@end", end);
            cmd.Parameters.AddWithValue("@user_id", HttpContext.Current.Session["viewusertimetable"]);


            using (con)
            {
                con.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    CalendarEvent cevent = new CalendarEvent();
                    cevent.id          = (int)reader["eventID"];
                    cevent.title       = (string)reader["title"];
                    cevent.description = (string)reader["description"];
                    cevent.start       = (DateTime)reader["event_start"];
                    cevent.end         = (DateTime)reader["event_end"];
                    events.Add(cevent);
                }
            }
            return(events);
        }

        //side note: if you want to show events only related to particular users,
        //if user id of that user is stored in session as Session["userid"]
        //the event table also contains a extra field named 'user_id' to mark the event for that particular user
        //then you can modify the SQL as:
        //SELECT event_id, description, title, event_start, event_end FROM event where user_id=@user_id AND event_start>=@start AND event_end<=@end
        //then add paramter as:cmd.Parameters.AddWithValue("@user_id", HttpContext.Current.Session["userid"]);
    }
        public override void RebuildIndex(
            PageSettings pageSettings,
            string indexPath)
        {
            if (WebConfigSettings.DisableSearchIndex)
            {
                return;
            }
            if (pageSettings == null)
            {
                return;
            }

            //don't index pending/unpublished pages
            if (pageSettings.IsPending)
            {
                return;
            }

            log.Info("CalendarEventIndexBuilderProvider indexing page - "
                     + pageSettings.PageName);

            try
            {
                Guid             calendarFeatureGuid = new Guid("71183E1F-FBCD-4d00-98DC-F1FC17522199");
                ModuleDefinition calendarFeature     = new ModuleDefinition(calendarFeatureGuid);

                List <PageModule> pageModules
                    = PageModule.GetPageModulesByPage(pageSettings.PageId);

                DataTable dataTable = CalendarEvent.GetEventsByPage(pageSettings.SiteId, pageSettings.PageId);

                foreach (DataRow row in dataTable.Rows)
                {
                    IndexItem indexItem = new IndexItem();
                    indexItem.SiteId              = pageSettings.SiteId;
                    indexItem.PageId              = pageSettings.PageId;
                    indexItem.PageName            = pageSettings.PageName;
                    indexItem.PageIndex           = pageSettings.PageIndex;
                    indexItem.ViewRoles           = pageSettings.AuthorizedRoles;
                    indexItem.ModuleViewRoles     = row["ViewRoles"].ToString();
                    indexItem.FeatureId           = calendarFeatureGuid.ToString();
                    indexItem.FeatureName         = calendarFeature.FeatureName;
                    indexItem.FeatureResourceFile = calendarFeature.ResourceFile;

                    indexItem.ItemId      = Convert.ToInt32(row["ItemID"], CultureInfo.InvariantCulture);
                    indexItem.ModuleId    = Convert.ToInt32(row["ModuleID"], CultureInfo.InvariantCulture);
                    indexItem.ModuleTitle = row["ModuleTitle"].ToString();
                    indexItem.Title       = row["Title"].ToString();
                    indexItem.Content     = row["Description"].ToString();
                    indexItem.ViewPage    = "EventCalendar/EventDetails.aspx";

                    // lookup publish dates
                    foreach (PageModule pageModule in pageModules)
                    {
                        if (indexItem.ModuleId == pageModule.ModuleId)
                        {
                            indexItem.PublishBeginDate = pageModule.PublishBeginDate;
                            indexItem.PublishEndDate   = pageModule.PublishEndDate;
                        }
                    }

                    IndexHelper.RebuildIndex(indexItem, indexPath);

                    if (log.IsDebugEnabled)
                    {
                        log.Debug("Indexed " + indexItem.Title);
                    }
                }
            }
            catch (System.Data.Common.DbException ex)
            {
                log.Error(ex);
            }
        }
Exemplo n.º 35
0
        /// <summary>
        /// Add new event to a calendar or update an existing event.
        /// Throws if Calendar ID is empty, calendar does not exist, or calendar is read-only.
        /// </summary>
        /// <param name="calendar">Destination calendar</param>
        /// <param name="calendarEvent">Event to add or update</param>
        /// <exception cref="System.ArgumentException">Calendar is not specified, does not exist on device, or is read-only</exception>
        /// <exception cref="System.UnauthorizedAccessException">Calendar access denied</exception>
        /// <exception cref="System.InvalidOperationException">Editing recurring events is not supported</exception>
        /// <exception cref="Plugin.Calendars.Abstractions.PlatformException">Unexpected platform-specific error</exception>
        public async Task AddOrUpdateEventAsync(Calendar calendar, CalendarEvent calendarEvent)
        {
            await RequestCalendarAccess().ConfigureAwait(false);

            EKCalendar deviceCalendar = null;

            if (string.IsNullOrEmpty(calendar.ExternalID))
            {
                throw new ArgumentException("Missing calendar identifier", nameof(calendar));
            }
            else
            {
                deviceCalendar = _eventStore.GetCalendar(calendar.ExternalID);

                if (deviceCalendar == null)
                {
                    throw new ArgumentException("Specified calendar not found on device");
                }
            }

            EKEvent iosEvent = null;

            // If Event already corresponds to an existing EKEvent in the target
            // Calendar, then edit that instead of creating a new one.
            //
            if (!string.IsNullOrEmpty(calendarEvent.ExternalID))
            {
                var existingEvent = _eventStore.EventFromIdentifier(calendarEvent.ExternalID);

                if (existingEvent?.HasRecurrenceRules == true)
                {
                    throw new InvalidOperationException("Editing recurring events is not supported");
                }

                if (existingEvent?.Calendar.CalendarIdentifier == deviceCalendar.CalendarIdentifier)
                {
                    iosEvent = existingEvent;
                }
            }

            if (iosEvent == null)
            {
                iosEvent = EKEvent.FromStore(_eventStore);
            }

            iosEvent.Title     = calendarEvent.Name;
            iosEvent.Notes     = calendarEvent.Description;
            iosEvent.AllDay    = calendarEvent.AllDay;
            iosEvent.Location  = calendarEvent.Location ?? string.Empty;
            iosEvent.StartDate = calendarEvent.Start.ToNSDate();

            // If set to AllDay and given an EndDate of 12am the next day, EventKit
            // assumes that the event consumes two full days.
            // (whereas WinPhone/Android consider that one day, and thus so do we)
            //
            iosEvent.EndDate  = calendarEvent.AllDay ? calendarEvent.End.AddMilliseconds(-1).ToNSDate() : calendarEvent.End.ToNSDate();
            iosEvent.Calendar = deviceCalendar;

            NSError error = null;

            if (!_eventStore.SaveEvent(iosEvent, EKSpan.ThisEvent, out error))
            {
                // Without this, the eventStore will continue to return the "updated"
                // event even though the save failed!
                // (this obviously also resets any other changes, but since we own the eventStore
                //  we can be pretty confident that won't be an issue)
                //
                _eventStore.Reset();

                // Technically, probably any ekerrordomain error would be an ArgumentException?
                // - but we don't necessarily know *which* argument (at least not without the code)
                // - for now, just focusing on the start > end scenario and translating the rest to PlatformException. Can always add more later.

                if (error.Domain == _ekErrorDomain && error.Code == (int)EKErrorCode.DatesInverted)
                {
                    throw new ArgumentException(error.LocalizedDescription, new NSErrorException(error));
                }
                else
                {
                    throw new PlatformException(error.LocalizedDescription, new NSErrorException(error));
                }
            }

            calendarEvent.ExternalID = iosEvent.EventIdentifier;
        }
 public Success(CalendarEvent @event, string createdBy, DateTimeOffset timestamp)
 {
     this.Event     = @event;
     this.CreatedBy = createdBy;
     this.Timestamp = timestamp;
 }
 protected virtual void OnCalendarEvent(CalendarEventArgs e)
 {
     Console.WriteLine("Day has changed. It is now {0}", _currentDay);
     CalendarEvent?.Invoke(this, e);
 }
        private static void IndexItem(CalendarEvent calendarEvent)
        {
            if (WebConfigSettings.DisableSearchIndex)
            {
                return;
            }
            if (calendarEvent == null)
            {
                return;
            }

            try
            {
                //SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings();

                //if ((siteSettings == null)
                //    || (calendarEvent == null))
                //{
                //    return;
                //}

                Module           module = new Module(calendarEvent.ModuleId);
                Guid             calendarFeatureGuid = new Guid("71183E1F-FBCD-4d00-98DC-F1FC17522199");
                ModuleDefinition calendarFeature     = new ModuleDefinition(calendarFeatureGuid);

                // get list of pages where this module is published
                List <PageModule> pageModules
                    = PageModule.GetPageModulesByModule(calendarEvent.ModuleId);

                foreach (PageModule pageModule in pageModules)
                {
                    PageSettings pageSettings
                        = new PageSettings(
                              calendarEvent.SiteId,
                              pageModule.PageId);

                    //don't index pending/unpublished pages
                    if (pageSettings.IsPending)
                    {
                        continue;
                    }

                    IndexItem indexItem = new IndexItem();
                    if (calendarEvent.SearchIndexPath.Length > 0)
                    {
                        indexItem.IndexPath = calendarEvent.SearchIndexPath;
                    }
                    indexItem.SiteId              = calendarEvent.SiteId;
                    indexItem.PageId              = pageSettings.PageId;
                    indexItem.PageName            = pageSettings.PageName;
                    indexItem.ViewRoles           = pageSettings.AuthorizedRoles;
                    indexItem.ModuleViewRoles     = module.ViewRoles;
                    indexItem.ItemId              = calendarEvent.ItemId;
                    indexItem.ModuleId            = calendarEvent.ModuleId;
                    indexItem.ViewPage            = "EventCalendar/EventDetails.aspx";
                    indexItem.FeatureId           = calendarFeatureGuid.ToString();
                    indexItem.FeatureName         = calendarFeature.FeatureName;
                    indexItem.FeatureResourceFile = calendarFeature.ResourceFile;
                    indexItem.ModuleTitle         = module.ModuleTitle;
                    indexItem.Title            = calendarEvent.Title;
                    indexItem.Content          = calendarEvent.Description;
                    indexItem.PublishBeginDate = pageModule.PublishBeginDate;
                    indexItem.PublishEndDate   = pageModule.PublishEndDate;

                    IndexHelper.RebuildIndex(indexItem);
                }

                if (log.IsDebugEnabled)
                {
                    log.Debug("Indexed " + calendarEvent.Title);
                }
            }
            catch (System.Data.Common.DbException ex)
            {
                if (log.IsErrorEnabled)
                {
                    log.Error("CalendarEventIndexBuilderProvider.IndexItem", ex);
                }
            }
        }
Exemplo n.º 39
0
        public override T Convert <T, U>(U entity)
        {
            if (entity is Notification)
            {
                Notification notification = entity as Notification;

                if (notification == null)
                {
                    return(default(T));
                }

                BO.Notification notificationBO = new BO.Notification();
                notificationBO.ID         = notification.Id;
                notificationBO.CompanyId  = notification.CompanyId;
                notificationBO.LocationId = notification.LocationId;
                notificationBO.StartDate  = notification.StartDate;
                notificationBO.EndDate    = notification.EndDate;
                notificationBO.IsViewed   = notification.IsViewed;

                notificationBO.CreateByUserID = notification.CreateByUserID;

                if (notification.IsDeleted.HasValue)
                {
                    notificationBO.IsDeleted = notification.IsDeleted.Value;
                }
                if (notification.UpdateByUserID.HasValue)
                {
                    notificationBO.UpdateByUserID = notification.UpdateByUserID.Value;
                }


                //if (notification.Company != null)
                //{
                //    BO.Company boCompany = new BO.Company();
                //    using (CompanyRepository cmp = new CompanyRepository(_context))
                //    {
                //        boCompany = cmp.Convert<BO.Company, Company>(notification.Company);
                //        notificationBO.Company = boCompany;
                //    }
                //}
                //if (notification.Location != null)
                //{
                //    BO.Location boLocation = new BO.Location();
                //    using (LocationRepository cmp = new LocationRepository(_context))
                //    {
                //        boLocation = cmp.Convert<BO.Location, Location>(notification.Location);
                //        notificationBO.Location = boLocation;
                //    }
                //}


                return((T)(object)notificationBO);
            }
            else if (entity is CalendarEvent)
            {
                CalendarEvent CalendarEventDB = entity as CalendarEvent;

                if (CalendarEventDB == null)
                {
                    return(default(T));
                }

                BO.CalendarEvent CalendarEvent = new BO.CalendarEvent();
                using (CalendarEventRepository calEventRep = new CalendarEventRepository(_context))
                {
                    CalendarEvent = calEventRep.Convert <BO.CalendarEvent, CalendarEvent>(CalendarEventDB);
                }

                return((T)(object)CalendarEvent);
            }

            return(default(T));
        }
Exemplo n.º 40
0
 private void AddToPendingActions(CalendarEvent @event)
 {
     this.logger.Debug($"Employee {this.employeeId}. Pending action added for event {@event.EventId}.");
     this.pendingActionEvents[@event.EventId] = @event;
 }
Exemplo n.º 41
0
 public PrintingCalendarEvent(CalendarEvent calendarEvent)
 {
     _calendarEvent    = calendarEvent;
     CharactersPrinted = 0;
 }
Exemplo n.º 42
0
 private static string SerializeToString(CalendarEvent e) => SerializeToString(new Calendar {
     Events = { e }
 });
Exemplo n.º 43
0
 public void CompleteEvent(int eventId, bool isComplete)
 {
     CalendarEvent.CompleteEvent(eventId, isComplete);
 }
Exemplo n.º 44
0
        public static void Delete(int eventId)
        {
            CalendarEvent cal = new CalendarEvent();

            cal.Delete(eventId);
        }
Exemplo n.º 45
0
 public AppointmentInfo(CalendarEvent app)
 {
     InitializeComponent();
     this.BindingContext = new AppointmentInfoViewModel(app);
 }
Exemplo n.º 46
0
 public override void DeleteContent(int moduleId, Guid moduleGuid)
 {
     CalendarEvent.DeleteByModule(moduleId);
 }
 public InsertSickLeave(CalendarEvent @event, string createdBy, DateTimeOffset timestamp)
 {
     this.Event     = @event;
     this.CreatedBy = createdBy;
     this.Timestamp = timestamp;
 }
Exemplo n.º 48
0
        public async Task <IActionResult> Index()
        {
            var CalendarModel = new List <CalendarEvent>();

            // Check if database has existing prediction values
            if (repository.CheckPredictions())
            {
                // If database prediction table is empty
                // Calculate predictions for all room types occupancy and rates
                CalendarModel = CalendarPredictions();
            }
            else
            {
                // If database already has existing predicted data
                var list = repository.GetPredictions();

                foreach (var pred in list)
                {
                    var   modal        = new CalendarEvent();
                    float totalRevenue = 0;

                    // Calculate the ADR
                    var totalOccupancy = pred.SprOccupancy + pred.StdOccupancy + pred.FamOccupancy + pred.SuiteOccupancy + pred.DlxOccupancy;

                    if (pred.SelectedRoomRate == 1)
                    {
                        totalRevenue = (pred.SprRoomRate * pred.SprOccupancy) + (pred.StdRoomRate * pred.StdOccupancy) +
                                       (pred.FamRoomRate * pred.FamOccupancy) + (pred.SuiteRoomRate * pred.SuiteOccupancy) +
                                       (pred.DlxRoomRate * pred.DlxOccupancy);
                    }
                    else if (pred.SelectedRoomRate == 2)
                    {
                        totalRevenue = (DEFAULT_SPR * pred.SprOccupancy) + (DEFAULT_STD * pred.StdOccupancy) +
                                       (DEFAULT_FAM * pred.FamOccupancy) + (DEFAULT_SUITE * pred.SuiteOccupancy) +
                                       (DEFAULT_DLX * pred.DlxOccupancy);
                    }
                    else
                    {
                        totalRevenue = (pred.AdjSprRoomRate * pred.SprOccupancy) + (pred.AdjStdRoomRate * pred.StdOccupancy) +
                                       (pred.AdjFamRoomRate * pred.FamOccupancy) + (pred.AdjSuiteRoomRate * pred.SuiteOccupancy) +
                                       (pred.AdjDlxRoomRate * pred.DlxOccupancy);
                    }

                    var adr           = totalRevenue / totalOccupancy;
                    var revpar        = totalRevenue / 71;
                    var occupancyRate = totalOccupancy / 71;
                    var percent       = Math.Round((adr - DEFAULT_ADR) / DEFAULT_ADR * 100, 2);

                    modal.Date         = pred.Date;
                    modal.Adr          = adr.ToString("N0");
                    modal.RevPar       = revpar.ToString("N0");
                    modal.Occupancy    = occupancyRate.ToString("#0.##%");
                    modal.SelectedPlan = pred.SelectedRoomRate;

                    if (adr > DEFAULT_ADR)
                    {
                        modal.Type = "success";
                    }
                    else if (adr == DEFAULT_ADR)
                    {
                        modal.Type = "warning";
                    }
                    else
                    {
                        modal.Type = "danger";
                    }

                    if (percent < 0)
                    {
                        modal.Percent = percent.ToString() + "%";
                    }
                    else
                    {
                        modal.Percent = "+" + percent.ToString() + "%";
                    }

                    CalendarModel.Add(modal);
                }

                // If there's no new predictions in the database
                if (repository.CheckIfNeedsPredictions(DateTime.Today) == true)
                {
                    var Predictionlist = new List <CalendarEvent>();
                    Predictionlist = CalendarPredictions();

                    foreach (var item in Predictionlist)
                    {
                        CalendarModel.Add(item);
                    }
                }
            }

            return(View(CalendarModel));
        }
Exemplo n.º 49
0
 public static string SerializeToString(CalendarEvent calendarEvent) => SerializeToString(new Calendar {
     Events = { calendarEvent }
 });
Exemplo n.º 50
0
        static void Main(string[] args)
        {
            Parser.Default.ParseArguments <Options>(args).WithParsed <Options>(o => {
                ICinema cinema = o.City switch
                {
                    City.Basel => new BaselCinema(),
                    City.Bern => new BernCinema(),
                    City.Geneva => new GenevaCinema(),
                    City.LausanneFlo => new LausanneFloCinema(),
                    City.LausanneGal => new LausanneGalCinema(),
                    City.Lucerne => new LucerneCinema(),
                    City.Spreitenbach => new SpreitenbachCinema(),
                    City.Zurich => new ZurichCinema(),
                    _ => new GenevaCinema()
                };

                /* Retrieve from pathe.ch upcoming movies */
                RestClient client            = new RestClient("https://pathe.ch/solr/pathe-movies");
                IRestRequest upcomingRequest = new RestRequest("upcoming?{fq}", Method.GET).AddParameter("fq", $"site:({cinema.Site})");
                IRestResponse <UpcomingApi.Upcoming> upcomingResponse = client.Execute <UpcomingApi.Upcoming>(upcomingRequest);

                /* Maybe the user has no internet or an error occured during deserialization */
                if (!upcomingResponse.IsSuccessful || upcomingResponse.Data == null)
                {
                    Console.Error.WriteLine($"An error occured during the upcoming request ({upcomingResponse.ErrorMessage}).");
                    return;
                }

                if (upcomingResponse.Data.Response.Docs.Count == 0)
                {
                    Console.Error.WriteLine($"No upcoming movie for the cinema in {o.City}.");
                    return;
                }

                /* Retrieve details for all upcoming movies */
                IRestRequest detailRequest = new RestRequest("detail?{fq}").AddParameter("fq", $"id:({String.Join(" ", upcomingResponse.Data.Response.Docs.Select(m => m.MovieId).ToArray())})");
                IRestResponse <DetailApi.Detail> detailResponse = client.Execute <DetailApi.Detail>(detailRequest);

                /* Maybe the user has no internet or an error occured during deserialization */
                if (!detailResponse.IsSuccessful || detailResponse.Data == null)
                {
                    Console.Error.WriteLine($"An error occured during the detail request ({detailResponse.ErrorMessage}).");
                    return;
                }

                if (detailResponse.Data.Response.Docs.Count == 0)
                {
                    Console.Error.WriteLine($"No description retrieved for {o.City} cinema films.");
                    return;
                }

                Calendar calendar = new Calendar();
                foreach (DetailApi.Doc doc in detailResponse.Data.Response.Docs)
                {
                    CalendarEvent calendarEvent = new CalendarEvent();
                    switch (o.Language)
                    {
                    case Language.De:
                        calendarEvent.Summary     = doc.TitleDe;
                        calendarEvent.Description = doc.SynopsisDe;
                        break;

                    case Language.En:
                        calendarEvent.Summary     = doc.Title;
                        calendarEvent.Description = doc.SynopsisEn;
                        break;

                    case Language.Fr:
                        calendarEvent.Summary     = doc.TitleFr;
                        calendarEvent.Description = doc.SynopsisFr;
                        break;
                    }
                    ;
                    switch (o.City)
                    {
                    case City.Basel:
                        calendarEvent.Start = new CalDateTime(doc.ReleaseDeCh.Value.DateTime);
                        calendarEvent.End   = new CalDateTime(doc.ReleaseDeCh.Value.DateTime);
                        break;

                    case City.Bern:
                        calendarEvent.Start = new CalDateTime(doc.ReleaseDeCh.Value.DateTime);
                        calendarEvent.End   = new CalDateTime(doc.ReleaseDeCh.Value.DateTime);
                        break;

                    case City.Geneva:
                        calendarEvent.Start = new CalDateTime(doc.ReleaseFrCh.Value.DateTime);
                        calendarEvent.End   = new CalDateTime(doc.ReleaseFrCh.Value.DateTime);
                        break;

                    case City.LausanneFlo:
                        calendarEvent.Start = new CalDateTime(doc.ReleaseFrCh.Value.DateTime);
                        calendarEvent.End   = new CalDateTime(doc.ReleaseFrCh.Value.DateTime);
                        break;

                    case City.LausanneGal:
                        calendarEvent.Start = new CalDateTime(doc.ReleaseFrCh.Value.DateTime);
                        calendarEvent.End   = new CalDateTime(doc.ReleaseFrCh.Value.DateTime);
                        break;

                    case City.Lucerne:
                        calendarEvent.Start = new CalDateTime(doc.ReleaseDeCh.Value.DateTime);
                        calendarEvent.End   = new CalDateTime(doc.ReleaseDeCh.Value.DateTime);
                        break;

                    case City.Spreitenbach:
                        calendarEvent.Start = new CalDateTime(doc.ReleaseDeCh.Value.DateTime);
                        calendarEvent.End   = new CalDateTime(doc.ReleaseDeCh.Value.DateTime);
                        break;

                    case City.Zurich:
                        calendarEvent.Start = new CalDateTime(doc.ReleaseDeCh.Value.DateTime);
                        calendarEvent.End   = new CalDateTime(doc.ReleaseDeCh.Value.DateTime);
                        break;
                    }
                    calendarEvent.Location           = cinema.Address;
                    calendarEvent.GeographicLocation = new GeographicLocation(cinema.Latitude, cinema.Longitude);
                    string vimeoId = o.TrailerLanguage switch
                    {
                        TrailerLanguage.De => !string.IsNullOrEmpty(doc.TrailerEmbedDe) ? doc.TrailerEmbedDe.Remove(0, 1) : "",
                        TrailerLanguage.Ov => !string.IsNullOrEmpty(doc.TrailerEmbedOv) ? doc.TrailerEmbedOv.Remove(0, 1) : "",
                        TrailerLanguage.Fr => !string.IsNullOrEmpty(doc.TrailerEmbedFr) ? doc.TrailerEmbedFr.Remove(0, 1) : "",
                        _ => ""
                    };
                    if (!string.IsNullOrEmpty(o.VimeoBypassUrl) && !string.IsNullOrEmpty(vimeoId))
                    {
                        calendarEvent.Url = new Uri($"{o.VimeoBypassUrl}?v={vimeoId}");
                    }

                    calendar.Events.Add(calendarEvent);
                }
                CalendarSerializer serializer = new CalendarSerializer();
                string serializedCalendar     = serializer.SerializeToString(calendar);
                try
                {
                    File.WriteAllText(o.Output, serializedCalendar);
                    Console.WriteLine($"Calendar has been exported to '{o.Output}'.");
                }
                catch (Exception ex)
                {
                    Console.Error.WriteLine(ex.Message);
                }
            });
        }
Exemplo n.º 51
0
        public List <CalendarEvent> GetCalendarItems(int userId, string userRole)
        {
            if (userRole == "Student")
            {
                var events = (from a in _classDbContext.Assignments
                              join uc in _classDbContext.UserCourses on a.CourseID equals uc.CourseID
                              where uc.UserID == userId
                              select new CalendarEvent
                {
                    Id = a.AssignmentID.ToString(),
                    AllDay = true,
                    Start = a.DueDate,
                    Title = a.AssignmentTitle
                }).ToList();

                var classesDays = (from uc in _classDbContext.UserCourses
                                   join c in _classDbContext.Courses
                                   on uc.CourseID equals c.CourseID
                                   where uc.UserID == userId
                                   select c).ToList();

                classesDays.ForEach(c =>
                {
                    CalendarEvent calendarEvent = new CalendarEvent();
                    calendarEvent.AllDay        = true;
                    calendarEvent.Title         = c.Title;
                    calendarEvent.DaysOfWeek    = new List <int>();

                    char[] days = c.MeetingDays.ToUpper().ToCharArray();

                    if (days.Contains('M'))
                    {
                        calendarEvent.DaysOfWeek.Add(1);
                    }
                    if (days.Contains('T'))
                    {
                        calendarEvent.DaysOfWeek.Add(2);
                    }
                    if (days.Contains('W'))
                    {
                        calendarEvent.DaysOfWeek.Add(3);
                    }
                    if (days.Contains('R'))
                    {
                        calendarEvent.DaysOfWeek.Add(4);
                    }
                    if (days.Contains('F'))
                    {
                        calendarEvent.DaysOfWeek.Add(5);
                    }

                    calendarEvent.ClassNames = new string[] { "courseCalendarEvent" };

                    events.Add(calendarEvent);
                });

                return(events);
            }
            else
            {
                var events = (from a in _classDbContext.Assignments
                              join c in _classDbContext.Courses
                              on a.CourseID equals c.CourseID
                              where c.TeacherID == userId
                              select new CalendarEvent
                {
                    Id = a.AssignmentID.ToString(),
                    AllDay = true,
                    Start = a.DueDate,
                    Title = a.AssignmentTitle
                }).ToList();


                var classesDays = (from c in _classDbContext.Courses
                                   where c.TeacherID == userId
                                   select c).ToList();

                classesDays.ForEach(c =>
                {
                    CalendarEvent calendarEvent = new CalendarEvent();
                    calendarEvent.AllDay        = true;
                    calendarEvent.Title         = c.Title;
                    calendarEvent.DaysOfWeek    = new List <int>();

                    char[] days = c.MeetingDays.ToUpper().ToCharArray();

                    if (days.Contains('M'))
                    {
                        calendarEvent.DaysOfWeek.Add(1);
                    }
                    if (days.Contains('T'))
                    {
                        calendarEvent.DaysOfWeek.Add(2);
                    }
                    if (days.Contains('W'))
                    {
                        calendarEvent.DaysOfWeek.Add(3);
                    }
                    if (days.Contains('R'))
                    {
                        calendarEvent.DaysOfWeek.Add(4);
                    }
                    if (days.Contains('F'))
                    {
                        calendarEvent.DaysOfWeek.Add(5);
                    }

                    calendarEvent.ClassNames = new string[] { "courseCalendarEvent" };

                    events.Add(calendarEvent);
                });

                return(events);
            }
        }
        public void DeleteCalendarEvent(int id)
        {
            CalendarEvent calendarEventToDelete = _repo.Query <CalendarEvent>().Where(c => c.Id == id).FirstOrDefault();

            _repo.Delete(calendarEventToDelete);
        }
Exemplo n.º 53
0
 /// <summary> Retrieves events from the cloud, Stores the data and loads the ListView </summary>
 private static void LoadEvents()
 {
     m_Events = new List <CalendarEvent>(GameManager.Azure.GetEventsByPartitionKeyContains(EventsContainer, CalendarEvent.DateToPartitionMonth(DateTime.Today)));
     m_Events = m_Events.OrderBy(o => o.Start).ThenBy(o => o.Start).ToList();
 }
 public CalendarEventEmployeeMetadataFailed(CalendarEvent @event, Exception exception)
 {
     this.Event     = @event;
     this.Exception = exception;
 }
Exemplo n.º 55
0
 public ConflictCalendarEvent(CalendarEvent entity)
 {
     _entity = entity;
 }
Exemplo n.º 56
0
        private ValidationResult <RegtimeRegistration> ConvertToRegtimeRegistration(CalendarEvent calendarEvent)
        {
            var validationResult = new ValidationResult <RegtimeRegistration>();

            var datetime   = calendarEvent.DateFrom;
            var dataFields = calendarEvent.Subject.Split('-');

            for (int i = 0; i < dataFields.Length; i++)
            {
                dataFields[i] = dataFields[i].Trim();
            }

            if (dataFields.Length > 0 &&
                dataFields[0].Trim() == "IGN")
            {
                return(null);
            }

            if (dataFields.Length != 4)
            {
                int caseNumber;
                if (dataFields.Length == 2 &&
                    (dataFields[0] == "SICK" || dataFields[0] == "FLEX"))
                {
                    validationResult.IsValid = true;
                    validationResult.Object  = new RegtimeRegistration
                    {
                        Type  = dataFields[0] == "SICK" ? RegistrationType.HoursS : RegistrationType.HoursF,
                        Id    = calendarEvent.Id,
                        Date  = datetime,
                        Hours = calendarEvent.Duration,
                        Note  = dataFields[1]
                    };
                }
                else
                {
                    validationResult.Message =
                        $"Missing fields: [{calendarEvent.Subject}] please use format: {EntryFormat} - no dashes in note field!";
                }
                return(validationResult);
            }
            else
            {
                var customerAlias = dataFields[0];
                var customer      = _configuration.Customers.FirstOrDefault(x => x.Alias == customerAlias);

                if (customer == null)
                {
                    validationResult.Message = $"No customer for entry: [{calendarEvent.Subject}]";
                    return(validationResult);
                }

                var projectAlias = dataFields[1];
                var project      = customer.GetProject(projectAlias);
                if (project == null)
                {
                    validationResult.Message = $"No project for entry: [{calendarEvent.Subject}]";
                    return(validationResult);
                }

                var caseNumberString = dataFields[2];
                int caseNumber       = 0;
                if (!string.IsNullOrEmpty(caseNumberString) &&
                    !int.TryParse(caseNumberString, out caseNumber))
                {
                    validationResult.Message = $"Not valid casenumber for entry: [{calendarEvent.Subject}] please be int or empty";
                    return(validationResult);
                }

                if (calendarEvent.Duration == 0)
                {
                    validationResult.Message = $"Duration must be over zero for entry: [{calendarEvent.Subject}]";
                    return(validationResult);
                }

                validationResult.IsValid = true;
                validationResult.Object  = new RegtimeRegistration
                {
                    Type       = RegistrationType.HoursA,
                    Id         = calendarEvent.Id,
                    Date       = datetime,
                    CaseNumber = caseNumberString,
                    Customer   = customer.Name,
                    Project    = project.Name,
                    Fogbugz    = string.IsNullOrEmpty(customer.Fogbugz) ? _configuration.DefaultFogbugz : customer.Fogbugz,
                    Hours      = calendarEvent.Duration,
                    Note       = dataFields[3]
                };
            }

            return(validationResult);
        }
 private static string SerializeEvent(CalendarEvent e) => new CalendarSerializer().SerializeToString(new Calendar {
     Events = { e }
 });
Exemplo n.º 58
0
        private List <CalendarEvent> CalendarPredictions()
        {
            var CalendarList = new List <CalendarEvent>();

            // Get predicted rates for the different room type
            var SprRoomPred   = RoomRatePredictions(7);
            var StdRoomPred   = RoomRatePredictions(8);
            var FamRoomPred   = RoomRatePredictions(9);
            var SuiteRoomPred = RoomRatePredictions(10);
            var DlxRoomPred   = RoomRatePredictions(11);

            // Get the predicted occupancy for the different room type
            var SprOccPred   = OccupancyPredictions(7);
            var StdOccPred   = OccupancyPredictions(8);
            var FamOccPred   = OccupancyPredictions(9);
            var SuiteOccPred = OccupancyPredictions(10);
            var DlxOccPred   = OccupancyPredictions(11);

            var PredictionList = new List <DailyPredictionModel>();

            foreach (var item in SprRoomPred)
            {
                // Store into database
                var pred  = new DailyPredictionModel();
                var modal = new CalendarEvent();

                pred.Date             = item.Item1;
                pred.SprRoomRate      = item.Item2;
                pred.SprOccupancy     = SprOccPred.Where(i => i.Item1 == item.Item1).FirstOrDefault().Item2;
                pred.StdRoomRate      = StdRoomPred.Where(i => i.Item1 == item.Item1).FirstOrDefault().Item2;
                pred.StdOccupancy     = StdOccPred.Where(i => i.Item1 == item.Item1).FirstOrDefault().Item2;
                pred.FamRoomRate      = FamRoomPred.Where(i => i.Item1 == item.Item1).FirstOrDefault().Item2;
                pred.FamOccupancy     = FamOccPred.Where(i => i.Item1 == item.Item1).FirstOrDefault().Item2;
                pred.SuiteRoomRate    = SuiteRoomPred.Where(i => i.Item1 == item.Item1).FirstOrDefault().Item2;
                pred.SuiteOccupancy   = SuiteOccPred.Where(i => i.Item1 == item.Item1).FirstOrDefault().Item2;
                pred.DlxRoomRate      = SuiteRoomPred.Where(i => i.Item1 == item.Item1).FirstOrDefault().Item2;
                pred.DlxOccupancy     = DlxOccPred.Where(i => i.Item1 == item.Item1).FirstOrDefault().Item2;
                pred.SelectedRoomRate = 1;
                pred.AdjSprRoomRate   = 0;
                pred.AdjStdRoomRate   = 0;
                pred.AdjFamRoomRate   = 0;
                pred.AdjSuiteRoomRate = 0;
                pred.AdjDlxRoomRate   = 0;

                PredictionList.Add(pred);

                // Calculate the ADR
                var totalOccupancy = pred.SprOccupancy + pred.StdOccupancy + pred.FamOccupancy + pred.SuiteOccupancy + pred.DlxOccupancy;
                var totalRevenue   = (pred.SprRoomRate * pred.SprOccupancy) + (pred.StdRoomRate * pred.StdOccupancy) +
                                     (pred.FamRoomRate * pred.FamOccupancy) + (pred.SuiteRoomRate * pred.SuiteOccupancy) +
                                     (pred.DlxRoomRate * pred.DlxOccupancy);
                var adr           = totalRevenue / totalOccupancy;
                var revpar        = totalRevenue / 71;
                var occupancyRate = totalOccupancy / 71;
                var percent       = Math.Round((adr - DEFAULT_ADR) / DEFAULT_ADR * 100, 0);

                modal.Date         = item.Item1;
                modal.Adr          = adr.ToString("N0");
                modal.RevPar       = revpar.ToString("N0");
                modal.Occupancy    = occupancyRate.ToString("#0.##%");
                modal.SelectedPlan = 1;

                if (adr > DEFAULT_ADR)
                {
                    modal.Type = "success";
                }
                else if (adr == DEFAULT_ADR)
                {
                    modal.Type = "warning";
                }
                else
                {
                    modal.Type = "danger";
                }

                if (percent < 0)
                {
                    modal.Percent = percent.ToString() + "%";
                }
                else
                {
                    modal.Percent = "+" + percent.ToString() + "%";
                }

                CalendarList.Add(modal);
            }
            // Add the list of new predictions into database
            repository.AddPredictions(PredictionList);
            return(CalendarList);
        }
Exemplo n.º 59
0
    }                                                      // = new List<Contact>();

    public void AddEvent(CalendarEvent inEvent)
    {
        Events.Add(inEvent);
    }
Exemplo n.º 60
0
        public async Task DoLoadCalendarEventsListed(DateTime dStart, DateTime dEnd, int iMax = 0, int iError = 0)
        {
            xLog.Debug("DoLoadCalendarEventsListed: Start: " + bIsLoadingCalendarEventsListed.ToString());
            if (bIsLoadingCalendarEventsListed)
            {
                xLog.Debug("xxxxxxxxxxxxxxxDoLoadCalendarEventsListed: Start: " + bIsLoadingCalendarEventsListed.ToString());
            }
            if (false)
            {
                while (bIsLoadingCalendarEventsListed)
                {
                    Task.Delay(25).Wait();
                }
                bIsLoadingCalendarEventsListed = true;
                xLog.Debug("DoLoadCalendarEventsListed: Start Now");
            }
            bIsLoadingCalendarEventsListed = true;
            try
            {
                int iMs       = 0;
                var newEvents = new SortedDictionary <DateTime, CalendarEvent>();
                LocationTimeHolder lthCheck = LocationTimeHolder.LocalInstanceClone;

                DateTime swStart = DateTime.Now;
                if (sys.isWindows)
                {
                    var rnd = new Random(DateTime.Now.Second);
                    for (int i = 0; i < rnd.Next(5) * 2; i++)
                    {
                        string name     = "win";
                        var    calEvent = new CalendarEvent();
                        calEvent.Title              = $"{name} event {i}";
                        calEvent.Description        = $"This is {name} event{i}'s description!";
                        calEvent.Start              = dStart.AddHours(new Random().Next(8) + 10).AddMinutes(new Random().Next(50));
                        calEvent.End                = calEvent.Start.AddHours(new Random().Next(5) + 1);
                        calEvent.EventColor         = xColor.FromRgb(rnd.Next(200), rnd.Next(200), rnd.Next(200));
                        calEvent.DisplayColorString = calEvent.EventColorString;

                        //CheckEventLocationTime(lthCheck, calendar, calEvent);
                        newEvents.Add(calEvent.SortTime.AddMilliseconds(iMs++), calEvent);
                    }
                }
                else
                {
                    var calendars = new List <DeviceCalendar.Calendar>(await DeviceCalendar.DeviceCalendar.GetCalendarsAsync());
                    foreach (DeviceCalendar.Calendar calendar in calendars)
                    {
                        if (string.IsNullOrEmpty(CalendarFilter) || !CalendarFilter.Contains("|" + calendar.ExternalID + "|"))
                        {
                            var calEvents = await DeviceCalendar.DeviceCalendar.GetEventsAsync(calendar, dStart, dEnd);

                            foreach (CalendarEvent calEvent in calEvents)
                            {
                                CheckEventLocationTime(lthCheck, calendar, calEvent);
                                newEvents.Add(calEvent.SortTime.AddMilliseconds(iMs++), calEvent);

                                if (iMax > 0 && iMs >= iMax)
                                {
                                    break;
                                }
                                iMs++;
                            }
                        }
                    }
                }
                xLog.Debug("LoadAndCheckEvents took " + (DateTime.Now - swStart).TotalMilliseconds.ToString() + "ms for " + iMs.ToString() + " Events");
                lock (ListedDates)
                {
                    ListedDates.Clear();
                    ListedDates.AddRange(newEvents.Values);
                }
            }
            catch (Exception ex)
            {
                base.Clear();
                xLog.Debug("Error reading Calendar Events: " + ex.GetType().Name + ": " + ex.Message);
            }
            finally { bIsLoadingCalendarEventsListed = false; }
            xLog.Debug("DoLoadCalendarEventsListed: Stop");
        }