我正在做两个列表之间的同步。 IList<Event> GoogleEvents
和Table<myEvent> DB.Events;
两个列表同步
在谷歌方面我使用this
String Summary,
String Description,
EventDateTime Start,
EventDateTime End,
Event.RemindersData Reminders;
分贝的侧像这样
我的代码是这样的
foreach (myEvent item in DB.Events)
{
if (item.GoogleID == "" || item.GoogleID == null)// i add event my db
{
//Add dbEvent to google and save id to googleid column
}
}
foreach (Event item in myGoogleCalendar.Items)
{
if (DB.Events.Where(o => o.GoogleID == item.Id).Count() == 0)// i add event google
{
//Add googleEvent to dbEvent
}
else
{
//This event also existing in two server
myEvent dbEvent = DB.Olaylar.Where(o => o.GoogleID == item.Id).First();
if(item.Updated.Value == dbEvent.UpdateTime) continue;//Same
if (item.Updated.Value > dbEvent.UpdateTime)
{
//Google event is new
}
else
{
//dbEvent is new
}
}
}
有一个很大的问题:我忘了删除
我应该在哪里添加删除事件部分又如何呢?
首先谢谢你的回答。我想过这样的事情。我不明白'else if(!item.IsDeleted &&!string.IsNullOrEmpty(item.GoogleID))'块。如果我的数据库中的事件有googleID'isDeleted flag = true;'但为什么不检查不在谷歌。 **的确我不能修改数据库。也许这将工作。但是,如果db改变了一切,那么就会发生变化。** – Abdullah
如果事件的GoogleID不为空或为空,则表明它曾经存在于Google中。由于它已不在Google中,因此它已被删除,因此必须标记为已删除。 – Job