using System; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Oqtane.Managers; using Oqtane.Models; using Oqtane.Repository; namespace Oqtane.Infrastructure { public class ImportUsersTask : SiteTaskBase { public override async Task ExecuteTaskAsync(IServiceProvider provider, Site site, string parameters) { string log = ""; if (!string.IsNullOrEmpty(parameters) && parameters.Contains(":")) { var fileId = int.Parse(parameters.Split(':')[0]); var notify = bool.Parse(parameters.Split(':')[1]); var fileRepository = provider.GetRequiredService(); var userManager = provider.GetRequiredService(); var file = fileRepository.GetFile(fileId); if (file != null) { var filePath = fileRepository.GetFilePath(file); log += $"Importing Users From {filePath}
"; var result = await userManager.ImportUsers(site.SiteId, filePath, notify); if (result["Success"] == "True") { log += $"{result["Users"]} Users Imported
"; } else { log += $"User Import Failed
"; } } else { log += $"Import Users FileId {fileId} Does Not Exist
"; } } return log; } } }