/// <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. : ---");
            }
        }