Esempio n. 1
0
 /// <summary>
 /// Set information for a specific addressbook.
 /// </summary>
 /// <param name="abId">AddressBook guid.</param>
 /// <param name="abHeader">The addressbook info.</param>
 internal void SetAddressBookInfo(Guid abId, ABFindContactsPagedResultTypeAB abHeader)
 {
     SetAddressBookInfo(abId.ToString("D"), abHeader);
 }
Esempio n. 2
0
        /// <summary>
        /// Set information for a specific addressbook.
        /// </summary>
        /// <param name="abId">AddressBook guid.</param>
        /// <param name="abHeader">The addressbook info.</param>
        internal void SetAddressBookInfo(string abId, ABFindContactsPagedResultTypeAB abHeader)
        {
            lock (SyncObject)
            {
                string lowerId = abId.ToLowerInvariant();
                string compareTime = GetAddressBookLastChange(lowerId);

                try
                {

                    DateTime oldTime = WebServiceDateTimeConverter.ConvertToDateTime(compareTime);
                    DateTime newTime = WebServiceDateTimeConverter.ConvertToDateTime(abHeader.lastChange);
                    if (oldTime >= newTime)
                    {
                        Trace.WriteLineIf(Settings.TraceSwitch.TraceVerbose, "Update addressbook information skipped, abId: " +
                        abId + ", LastChange: " + abHeader.lastChange + ", compared with: " + compareTime);
                        return;  //Not necessary to update.
                    }
                }
                catch (Exception ex)
                {
                    Trace.WriteLineIf(Settings.TraceSwitch.TraceError, "An error occured while setting AddressBook LastChange property, abId: " +
                        abId + ", LastChange: " + abHeader.lastChange + "\r\nError message: " + ex.Message);
                    return;
                }

                SetAddressBookInfoToABInfoList(lowerId, abHeader);

                Trace.WriteLineIf(Settings.TraceSwitch.TraceVerbose, "Update addressbook information succeed, abId: " +
                        abId + ", LastChange: " + abHeader.lastChange + ", compared with: " + compareTime);
            }
        }
Esempio n. 3
0
        private bool SetAddressBookInfoToABInfoList(string abId, ABFindContactsPagedResultTypeAB abInfo)
        {
            string lowerId = abId.ToLowerInvariant();
            if (AddressBooksInfo == null)
                return false;

            lock (AddressBooksInfo)
                AddressBooksInfo[lowerId] = abInfo;
            return true;
        }