Отображение Google Calendar API v3 События dateTime в Xamarin C # - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь взять события из Календаря Google и отобразить их в виде списка для Xamarin.Forms.

Календарь Google использует формат RFC3339 при вызове start.dateTime, формат гггг-мм-дд,Я пытаюсь создать строковый формат дня недели (понедельник, 1 января 2018 г.), аналогичный методу .Net DateTime.ToLongDateString.

Пока мой код такой:

namespace TheFirstAcademy.ViewModels{
class EventListViewModel
{
    public List<SchoolEvent> SchoolEvents { get; set; }
    public SchoolCalendar SelectedCalendar { get; set; }


    public EventListViewModel(SchoolCalendar selectedcalendar)
    {
        SelectedCalendar = selectedcalendar;
        SchoolEvents = GetSchoolEvents();

    }

    public List<SchoolEvent> GetSchoolEvents()
    {
        // Create Google Calendar API service.
        var service = new CalendarService(new BaseClientService.Initializer()
        {
            ApiKey = "Key",
            ApplicationName = "TFA Calendar Mobile App",
        });

        // Define parameters of request.
        EventsResource.ListRequest request = service.Events.List(SelectedCalendar.SchoolCalId);
        request.TimeMin = DateTime.Now;
        request.ShowDeleted = false;
        request.SingleEvents = true;
        request.MaxResults = 10;
        request.OrderBy = EventsResource.ListRequest.OrderByEnum.StartTime;

        // List events.
        Events events = request.Execute();
        List<SchoolEvent> schoolEvents = new List<SchoolEvent>();

        if (events.Items != null && events.Items.Count > 0)
        {
            foreach (var eventItem in events.Items)
            {
                string when = eventItem.Start.DateTime.ToString();
                if (String.IsNullOrEmpty(when))
                {
                    when = eventItem.Start.Date;
                }

                schoolEvents.Add(new SchoolEvent() {
                    EventTitle = eventItem.Summary,
                    EventDescription = eventItem.Description,
                    EventStartTime = when,
                    EventEndTime = eventItem.End.Date
                });
            }
        }
        return schoolEvents;
    }
}

}

Это в конечном итоге будет отображаться в ListView для iOS и Android с использованием Xamarin.Forms.Событие для календаря будет выглядеть примерно так:

[Имя события]

[Место события]

Начало: пт 25 мая 2018 12:00 PM

Окончание: суббота, 26 мая 2018 г., 12:00

Некоторые ссылки, которые мне удалось найти: Google Calendar v3 Информация о событиях https://developers.google.com/calendar/v3/reference/events

RFC to dateTime (не уверен, что этоэто правильное направление). Как мне проанализировать и преобразовать DateTime в формат даты-времени RFC 3339?

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 04 июня 2018

Я разобрался с помощью преобразования.DateTime.Parse ()

Я преобразовал eventItem.Start.Date (который является строкой) в DateTime, используя DateTime.Parse ().Затем я преобразовал DateTime в строку («ddd MMM dd, yyyy»).

Возможно, базовые вещи. Может быть, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...