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); }
public SynchronEvent ConvertOutlookToMyEvent(Microsoft.Office.Interop.Outlook.AppointmentItem outlookItem) { var result = new SynchronEvent() .SetStart(outlookItem.Start) .SetDuration(outlookItem.Duration) .SetLocation(outlookItem.Location) .SetSubject(outlookItem.Subject) .SetCompanions(outlookItem.RequiredAttendees) .SetId(outlookItem.GlobalAppointmentID) .SetFinish(outlookItem.End) .SetSource(_outlook) .SetDescription(outlookItem.Body) .SetPlacement(_outlook) .SetAllDay(outlookItem.AllDayEvent); if (!string.IsNullOrEmpty(outlookItem.Mileage)) { result.SetId(outlookItem.Mileage); if (outlookItem.Mileage.IndexOf(_outlook) > -1) { result.SetSource(_outlook); } else { result.SetSource(_google); outlookItem.Categories = "Orange Category"; outlookItem.Save(); } } else { Guid id = Guid.NewGuid(); outlookItem.Mileage = _outlook + id.ToString(); outlookItem.Save(); result.SetSource(_outlook); result.SetId(outlookItem.Mileage); } return(result); }