RepositoryResponse <bool> ImportTheme(MixCmsContext _context, IDbContextTransaction _transaction) { var result = new RepositoryResponse <bool>() { IsSucceed = true }; TemplateAsset.Filename = Name; if (FileRepository.Instance.SaveWebFile(TemplateAsset)) { FileRepository.Instance.UnZipFile($"{TemplateAsset.Filename}{TemplateAsset.Extension}", TemplateAsset.FileFolder); FileRepository.Instance.CopyWebDirectory($"{TemplateAsset.FileFolder}/Assets", AssetFolder); FileRepository.Instance.CopyDirectory($"{MixConstants.Folder.WebRootPath}/{TemplateAsset.FileFolder}/Templates", TemplateFolder); FileRepository.Instance.DeleteWebFolder(TemplateAsset.FileFolder); // Save template files to db var files = FileRepository.Instance.GetFilesWithContent(TemplateFolder); //TODO: Create default asset foreach (var file in files) { MixTemplates.UpdateViewModel template = new MixTemplates.UpdateViewModel( new MixTemplate() { FileFolder = file.FileFolder, FileName = file.Filename, Content = file.Content, Extension = file.Extension, CreatedDateTime = DateTime.UtcNow, LastModified = DateTime.UtcNow, ThemeId = Model.Id, ThemeName = Model.Name, FolderType = file.FolderName, ModifiedBy = CreatedBy }); var saveResult = template.SaveModel(true, _context, _transaction); result.IsSucceed = result.IsSucceed && saveResult.IsSucceed; if (!saveResult.IsSucceed) { result.IsSucceed = false; result.Exception = saveResult.Exception; result.Errors.AddRange(saveResult.Errors); break; } } } return(result); }