public static void UpdateTracks(this IMediaTracker tracker, int entityId, string entityName, int?prevMediaFileId, int?currentMediaFileId, string propertyName)
        {
            var  tracks     = new List <MediaTrack>(2);
            bool isModified = prevMediaFileId != currentMediaFileId;

            if (prevMediaFileId > 0 && isModified)
            {
                tracks.Add(new MediaTrack
                {
                    EntityId    = entityId,
                    EntityName  = entityName,
                    MediaFileId = prevMediaFileId.Value,
                    Property    = propertyName,
                    Operation   = MediaTrackOperation.Untrack
                });
            }

            if (currentMediaFileId > 0 && isModified)
            {
                tracks.Add(new MediaTrack
                {
                    EntityId    = entityId,
                    EntityName  = entityName,
                    MediaFileId = currentMediaFileId.Value,
                    Property    = propertyName,
                    Operation   = MediaTrackOperation.Track
                });
            }

            if (tracks.Count > 0)
            {
                tracker.TrackMany(tracks);
            }
        }
Beispiel #2
0
 public MessageTemplateController(
     IMessageTemplateService messageTemplateService,
     ICampaignService campaignService,
     IMessageFactory messageFactory,
     IEmailAccountService emailAccountService,
     IEmailSender emailSender,
     ILanguageService languageService,
     ILocalizedEntityService localizedEntityService,
     ILocalizationService localizationService,
     IStoreService storeService,
     IStoreMappingService storeMappingService,
     EmailAccountSettings emailAccountSettings,
     IMediaTracker mediaTracker)
 {
     _messageTemplateService = messageTemplateService;
     _campaignService        = campaignService;
     _messageFactory         = messageFactory;
     _emailAccountService    = emailAccountService;
     _emailSender            = emailSender;
     _languageService        = languageService;
     _localizedEntityService = localizedEntityService;
     _localizationService    = localizationService;
     _storeService           = storeService;
     _storeMappingService    = storeMappingService;
     _emailAccountSettings   = emailAccountSettings;
     _mediaTracker           = mediaTracker;
 }
        public static void Track(this IMediaTracker tracker, MediaTrack track)
        {
            if (track == null)
            {
                return;
            }

            tracker.TrackMany(new[] { track });
        }
Beispiel #4
0
        public static Task TrackAsync(this IMediaTracker tracker, MediaTrack track)
        {
            if (track == null)
            {
                return(Task.CompletedTask);
            }

            return(tracker.TrackManyAsync(new[] { track }));
        }
        public static void Untrack <T>(this IMediaTracker tracker, T entity, Expression <Func <T, int?> > path) where T : BaseEntity, new()
        {
            Guard.NotNull(path, nameof(path));

            var getter      = path.CompileFast();
            var mediaFileId = getter.Invoke(entity);

            if (mediaFileId > 0)
            {
                tracker.Untrack(entity, mediaFileId.Value, path.ExtractPropertyInfo().Name);
            }
        }
Beispiel #6
0
        public static Task UntrackAsync <T>(this IMediaTracker tracker, T entity, Expression <Func <T, int> > path) where T : BaseEntity, new()
        {
            Guard.NotNull(path, nameof(path));

            var getter      = path.CompileFast();
            var mediaFileId = getter.Invoke(entity);

            if (mediaFileId > 0)
            {
                tracker.UntrackAsync(entity, mediaFileId, path.ExtractPropertyInfo().Name);
            }

            return(Task.CompletedTask);
        }
Beispiel #7
0
 public MediaMigrator(
     ICommonServices services,
     IProviderManager providerManager,
     Func <IMediaStorageProvider> mediaStorageProvider,
     IMediaTypeResolver mediaTypeResolver,
     IAlbumRegistry albumRegistry,
     IFolderService folderService,
     IMediaTracker mediaTracker,
     IImageCache imageCache,
     IMediaFileSystem mediaFileSystem)
 {
     _services             = services;
     _providerManager      = providerManager;
     _mediaTypeResolver    = mediaTypeResolver;
     _albumRegistry        = albumRegistry;
     _folderService        = folderService;
     _mediaTracker         = mediaTracker;
     _mediaFileSystem      = mediaFileSystem;
     _imageCache           = imageCache;
     _mediaStorageProvider = mediaStorageProvider();
     _isFsProvider         = _mediaStorageProvider is FileSystemMediaStorageProvider;
 }
Beispiel #8
0
        public MediaMigrator(
            ICommonServices services,
            IProviderManager providerManager,
            IMediaTypeResolver mediaTypeResolver,
            IAlbumRegistry albumRegistry,
            IFolderService folderService,
            IMediaTracker mediaTracker,
            IMediaFileSystem mediaFileSystem)
        {
            _services          = services;
            _providerManager   = providerManager;
            _mediaTypeResolver = mediaTypeResolver;
            _albumRegistry     = albumRegistry;
            _folderService     = folderService;
            _mediaTracker      = mediaTracker;
            _mediaFileSystem   = mediaFileSystem;

            var storageProviderSystemName = _services.Settings.GetSettingByKey("Media.Storage.Provider", DatabaseMediaStorageProvider.SystemName);

            _mediaStorageProvider = _providerManager.GetProvider <IMediaStorageProvider>(storageProviderSystemName).Value;
            _isFsProvider         = _mediaStorageProvider is FileSystemMediaStorageProvider;
        }
 public static void UpdateTracks(this IMediaTracker tracker, BaseEntity entity, int?prevMediaFileId, int?currentMediaFileId, string propertyName)
 {
     UpdateTracks(tracker, entity.Id, entity.GetEntityName(), prevMediaFileId, currentMediaFileId, propertyName);
 }
Beispiel #10
0
 public static Task UpdateTracksAsync(this IMediaTracker tracker, BaseEntity entity, int?prevMediaFileId, int?currentMediaFileId, string propertyName)
 {
     return(UpdateTracksAsync(tracker, entity.Id, entity.GetEntityName(), prevMediaFileId, currentMediaFileId, propertyName));
 }