/// <summary>
        /// Creates and fills <see cref="LocalItem"/> instance.
        /// </summary>
        /// <param name="context"><see cref="SyncContext"/> instance.</param>
        /// <param name="itemId">Email item identifier.</param>
        /// <returns><see cref="LocalItem"/> instance.</returns>
        protected LocalItem GetLocalItem(SyncContext context, string itemId)
        {
            var remoteProvider = context.RemoteProvider;

            context.LogInfo(SyncAction.None, SyncDirection.DownloadAndUpload, "Start processing item {0}", itemId);
            SyncItemSchema schema    = remoteProvider.SyncItemSchemaCollection.FirstOrDefault(s => s.SyncValueName == "ExchangeEmailMessage");
            IRemoteItem    item      = remoteProvider.LoadSyncItem(schema, itemId);
            LocalItem      localItem = context.LocalProvider.FetchItem(null, schema, true);

            item.FillLocalItem(context, ref localItem);
            ProcessItemSyncAction(context, item);
            return(localItem);
        }