示例#1
0
        public SynchronEvent ConvertGoogleEventToSynchronEvent(Event googleEvent)
        {
            var result = new SynchronEvent();

            if (googleEvent.Attendees != null)
            {
                foreach (var email in googleEvent.Attendees)
                {
                    result.AddCompanions(email.Email);
                }
            }
            if (googleEvent.Start.Date != null)
            {
                result.SetAllDay(true);
                string          date  = googleEvent.Start.Date;
                string[]        q     = date.Split('-');
                var             year  = int.Parse(q[0]);
                var             month = int.Parse(q[1]);
                var             day   = int.Parse(q[2]);
                System.DateTime buf   = new System.DateTime(year, month, day);
                result.SetStart(buf);
                result.SetFinish(buf.AddDays(1));
            }
            else
            {
                result.SetStart(googleEvent.Start.DateTime.Value)
                .SetFinish(googleEvent.End.DateTime.Value);
            }
            result
            .SetLocation(googleEvent.Location)
            .SetDescription(googleEvent.Description)
            .SetSubject(googleEvent.Summary)
            .SetSource(_google)
            .SetId(googleEvent.Id)
            .SetPlacement(_google);

            if (googleEvent.ExtendedProperties != null && googleEvent.ExtendedProperties.Shared != null &&
                googleEvent.ExtendedProperties.Shared.ContainsKey(_outlook))
            {
                result.SetId(googleEvent.ExtendedProperties.Shared[_outlook]);
                result.SetSource(_outlook);
            }
            else
            {
                result.SetSource(_google);
            }
            return(result);
        }