public override async Task ExecuteAsync(UserIdentifier args)
        {
            using (UnitOfWorkManager.Current.SetTenantId(args.TenantId))
            {
                var userLanguage = await _settingManager.GetSettingValueForUserAsync(
                    LocalizationSettingNames.DefaultLanguage,
                    args.TenantId,
                    args.UserId
                    );

                var culture = CultureHelper.GetCultureInfoByChecking(userLanguage);

                using (CultureInfoHelper.Use(culture))
                {
                    var files = new List <FileDto>();

                    using (var scope = IocManager.Instance.CreateScope())
                    {
                        var providers = scope.ResolveAll <IUserCollectedDataProvider>();
                        foreach (var provider in providers)
                        {
                            var providerFiles = await provider.GetFiles(args);

                            if (providerFiles.Any())
                            {
                                files.AddRange(providerFiles);
                            }
                        }
                    }

                    var zipFile = new BinaryObject
                                  (
                        args.TenantId,
                        CompressFiles(files),
                        $"{args.UserId} {DateTime.UtcNow} UserCollectedDataPrepareJob result"
                                  );

                    // Save zip file to object manager.
                    await _binaryObjectManager.SaveAsync(zipFile);

                    // Send notification to user.
                    await _appNotifier.GdprDataPrepared(args, zipFile.Id);
                }
            }
        }
Пример #2
0
        public override void Execute(UserIdentifier args)
        {
            using (UnitOfWorkManager.Current.SetTenantId(args.TenantId))
            {
                var userLanguage = AsyncHelper.RunSync(() => _settingManager.GetSettingValueForUserAsync(LocalizationSettingNames.DefaultLanguage, args.TenantId, args.UserId));
                var culture      = CultureHelper.GetCultureInfoByChecking(userLanguage);

                using (CultureInfoHelper.Use(culture))
                {
                    var files = new List <FileDto>();

                    using (var scope = IocManager.Instance.CreateScope())
                    {
                        var providers = scope.ResolveAll <IUserCollectedDataProvider>();
                        foreach (var provider in providers)
                        {
                            var providerFiles = AsyncHelper.RunSync(() => provider.GetFiles(args));
                            if (providerFiles.Any())
                            {
                                files.AddRange(providerFiles);
                            }
                        }
                    }

                    var zipFile = new BinaryObject
                    {
                        TenantId = args.TenantId,
                        Bytes    = CompressFiles(files)
                    };

                    // Save zip file to object manager.
                    _binaryObjectManager.SaveAsync(zipFile);
                    //AsyncHelper.RunSync(() => );

                    // Send notification to user.
                    AsyncHelper.RunSync(() => _appNotifier.GdprDataPrepared(args, zipFile.Id));
                }
            }
        }