2013-10-24 1 views
2

Я создал событие календаря со всем выбранным днем ​​(10/24/2013). Затем я попытался вытащить e.EventStart и e.EventEnd. Мой ожидаемый результат был EventStart = 10/24/2013 12.00.00 иВремя события в календаре Ektron

EventEnd = 10/25/2013 12.00.00. Но то, что я получаю, - EventStart = 10/24/2013 12.00.00 и EventEnd = 10/24/2013 12.00.00.

То же самое работает, когда я пытаюсь использовать e.EventStartUtc и e.EventEndUtc. Но я не хочу формат utc, поскольку я пытаюсь вытащить время ektron для пользователей.

+0

Ektron версия? Я предполагаю, что вы создаете событие через интерфейс workarea? – egandalf

ответ

4

Если вы используете API-интерфейс Framework, класс WebEventData имеет свойство IsAllDay. Вы можете использовать это, чтобы вызвать изменение отображения. Например, вы можете не захотеть отображать время начала и окончания вообще, если это событие All Day и просто показать дату.

Если вам нужны конкретные начальные и конечные времена для всех дневных событий, вы можете легко расширить объект Ektron WebEventData с помощью методов расширения.

public static class WebEventExtensions 
{ 
    public static DateTime GetDisplayStartDate(this WebEventData webEvent) 
    { 
     if (!webEvent.IsAllDay) 
      return webEvent.EventStart; 

     return new DateTime(webEvent.EventStart.Year, webEvent.EventStart.Month, webEvent.EventStart.Day); 
    } 

    public static DateTime GetDisplayEndDate(this WebEventData webEvent) 
    { 
     if (!webEvent.IsAllDay) 
      return webEvent.EventEnd; 

     return new DateTime(webEvent.EventEnd.Year, webEvent.EventEnd.Month, webEvent.EventEnd.Day, 23, 59, 59); 
    } 
} 

Тогда эти методы появятся на объекте.

var eventManager = new WebEventManager(); 
WebEventData webEvent = eventManager.GetItem(730); 
if (webEvent.IsAllDay) 
{ 
    // do all-day stuff... 
} 

var start = webEvent.GetDisplayStartDate(); 
var end = webEvent.GetDisplayEndDate();