/// <inheritdoc /> public void SynchronizeData(string accessToken) { var targetMediaPath = Settings.GetSetting("Foundation.FotoWareExtensions.TargetPath", "/sitecore/media library/FotoWare"); if (!string.IsNullOrEmpty(targetMediaPath)) { var deletedImages = new List <Tuple <Item, bool> >(); var modifiedImages = new List <Tuple <Item, FotoWareImageMetaDataModel> >(); var allImages = _mediaRepository.GetAllImages(_languageRepository.GetContentLanguage()); if (allImages != null) { foreach (var image in allImages) { try { if (_mediaRepository.HasLinks(image)) { var imageUrls = image.Fields[Templates.ImageMediaItem.Fields.FotoWareUrl].Value; var urlArray = imageUrls.Split('|'); var infoUrl = urlArray[0]; if (!string.IsNullOrEmpty(infoUrl)) { var metaData = _fotoWareRepository.GetMetaData(infoUrl, accessToken); if (metaData?.MetaData != null) { if (urlArray.Length > 1) { if (_fotoWareRepository.IsImageExists(urlArray[1])) { //reset status _mediaRepository.ResetImageStatus(image); //check modification if (IsModified(image, metaData.MetaData)) { //image was modified in FotoWare modifiedImages.Add(new Tuple <Item, FotoWareImageMetaDataModel>(image, metaData.MetaData)); } } else { //exported image not exists on FotoWare deletedImages.Add(new Tuple <Item, bool>(image, true)); } } else { FotoWareFieldsLog.WriteToLog($"--- Synchronization Service: Image with ID {image.ID} has no FotoWare-Embed-Url: ---"); } } else if (metaData?.StatusCode == HttpStatusCode.NotFound) { //image was deleted from FotoWare deletedImages.Add(new Tuple <Item, bool>(image, true)); } else { FotoWareFieldsLog.WriteToLog($"--- Synchronization Service: Could not get FotoWare-MetaData for Image with ID {image.ID}: ---"); } } else { FotoWareFieldsLog.WriteToLog($"--- Synchronization Service: Image with ID {image.ID} has no FotoWare-Info-Url: ---"); } } else { //image not used in sitecore deletedImages.Add(new Tuple <Item, bool>(image, false)); } } catch (Exception e) { FotoWareFieldsLog.WriteToLog($"--- Synchronization Service: Error while synchronize metadata for Image with ID {image.ID}: ---", e); } } } else { FotoWareFieldsLog.WriteToLog("--- Synchronization Service: There was an error while getting all images ---"); } DeleteRemovedImages(deletedImages); ModifyOutdatedImages(modifiedImages); } else { FotoWareFieldsLog.WriteToLog("--- Synchronization Service: target-path-setting is not set in config-file. : ---"); } }