private static int ImportData(Context context, SitePackage sitePackage, Dictionary <long, long> idHash) { var count = 0; sitePackage.Data.ForEach(jsonExport => { jsonExport.Body.ForEach(body => { switch (body.GetReferenceType()) { case "Issues": ImportIssues( context: context, idHash: idHash, exportModel: body); count++; break; case "Results": ImportResults( context: context, idHash: idHash, exportModel: body); count++; break; } }); }); return(count); }
internal void SetSavedIds( Context context, SiteSettings ss, SitePackage sitePackage, long savedSiteId, bool includeSitePermission) { SavedTenantId = context.TenantId; SavedSiteId = savedSiteId; SavedParentId = sitePackage.HeaderInfo.GetConvertedId( siteId: ParentId, isParentId: true); if (SiteId == InheritPermission && includeSitePermission) { SavedInheritPermission = savedSiteId; } else { SavedInheritPermission = sitePackage.HeaderInfo.Convertors.FirstOrDefault(o => o.SiteId == InheritPermission)?.SavedSiteId ?? sitePackage.Sites.FirstOrDefault()?.InheritPermission ?? 0; } if (SavedInheritPermission == 0) { SavedInheritPermission = ss.SiteId == 0 ? savedSiteId : ss.InheritPermission; } }
private static void ImportItems(Context context, IDictionary <long, long> idHash, SitePackage sitePackage) { long savedReferenceId; sitePackage.Data.ForEach(jsonExport => { jsonExport.Body.ForEach(body => { switch (body.GetReferenceType()) { case "Issues": var issuesExportModel = body as IssueExportModel; savedReferenceId = Rds.ExecuteScalar_response( context: context, selectIdentity: true, statements: Rds.InsertItems( selectIdentity: true, param: Rds.ItemsParam() .SiteId(idHash.Get(issuesExportModel.SiteId.ToLong())) .ReferenceType("Issues"))) .Id.ToLong(); idHash.Add(issuesExportModel.IssueId.ToLong(), savedReferenceId); break; case "Results": var resultExportModel = body as ResultExportModel; savedReferenceId = Rds.ExecuteScalar_response( context: context, selectIdentity: true, statements: Rds.InsertItems( selectIdentity: true, param: Rds.ItemsParam() .SiteId(idHash.Get(resultExportModel.SiteId.ToLong())) .ReferenceType("Results"))) .Id.ToLong(); idHash.Add(resultExportModel.ResultId.ToLong(), savedReferenceId); break; } }); }); }
public static ResponseFile ExportSitePackage(Context context, SiteSettings ss) { if (!Parameters.SitePackage.Export || !context.CanManageSite(ss: ss)) { return(null); } var useIndentOption = context.QueryStrings.Bool("UseIndentOption"); var includeSitePermission = context.QueryStrings.Bool("IncludeSitePermission"); var includeRecordPermission = context.QueryStrings.Bool("IncludeRecordPermission"); var includeColumnPermission = context.QueryStrings.Bool("IncludeColumnPermission"); string sitePackagesSelectableAll = Regex.Replace( context.QueryStrings.Data("SitePackagesSelectableAll"), @"[^0-9-,(true|false)]", ""); var sites = new List <SelectedSite>(); sitePackagesSelectableAll.Split(',') .ForEach(e => sites.Add(new SelectedSite() { SiteId = e.Split_1st('-').ToLong(), IncludeData = e.Split_2nd('-').ToBool() })); if (ExceededExportLimit( context: context, sites: sites)) { return(null); } foreach (var site in sites) { var currentSs = ss.SiteId == site.SiteId ? ss : SiteSettingsUtilities.Get( context: context, siteId: site.SiteId); if (site.IncludeData && (context.ContractSettings.Export == false || !context.CanExport(ss: currentSs))) { return(null); } } var sitePackage = new SitePackage( context: context, siteList: sites, includeSitePermission: includeSitePermission, includeRecordPermission: includeRecordPermission, includeColumnPermission: includeColumnPermission); var file = new ResponseFile( fileContent: sitePackage.RecordingJson( context: context, formatting: useIndentOption ? Formatting.Indented : Formatting.None), fileDownloadName: ExportUtilities.FileName( context: context, sitePackage.Sites.FirstOrDefault()?.Title, extension: "json")); return(file); }