public async Task Init() { if (_initiated) { return; } _initiated = true; var configSites = _alfrescoConfig?.Sites != null ? JsonConvert.DeserializeObject <List <SiteARM> >(File.ReadAllText(_alfrescoConfig.Sites)) : null; var configSitesRM = _alfrescoConfig?.SiteRM != null ? JsonConvert.DeserializeObject <RMSiteARM>(File.ReadAllText(_alfrescoConfig.SiteRM)) : null; var configShreddingPlan = _alfrescoConfig?.ShreddingPlan != null ? JsonConvert.DeserializeObject <List <ShreddingPlanModel> >(File.ReadAllText(_alfrescoConfig.ShreddingPlan)) : null; var configGroups = _alfrescoConfig?.Groups != null ? JsonConvert.DeserializeObject <List <GroupModel> >(File.ReadAllText(_alfrescoConfig.Groups)) : new List <GroupModel>(); configGroups.Insert(0, new GroupModel { Body = new GroupBodyCreate { Id = SpisumNames.Groups.MailroomGroup } }); if (!(configSites?.Count > 0) && configSitesRM == null) { return; } var sites = await _alfrescoHttpClient.GetSites(ImmutableList <Parameter> .Empty .Add(new Parameter(AlfrescoNames.Headers.MaxItems, "100", ParameterType.QueryString))); if (configSites != null) { await _initialSite.CreateSitesAndFolders(sites, configSites, configGroups); } if (configSitesRM != null && configSitesRM.Body != null) { await _initialSite.CreateSiteRmAndFolders(sites, configSitesRM, configGroups); } if (configShreddingPlan?.Count > 0) { await _initialSite.CreateRMShreddingPlan(configShreddingPlan.SelectMany(x => x.Items.Where(y => y.IsCaption != true && y.FileMark != null && y.Period != null)).ToList()); } // update ROOT permissions for all users because of PID generator script if (SpisumNames.Groups.MainGroup != null) { await _initialSite.CheckCreatePermissions(AlfrescoNames.Aliases.Root, new List <Permission> { new Permission { Id = SpisumNames.Groups.SpisumAdmin, Role = AlfrescoNames.Permissions.SiteManager }, new Permission { Id = SpisumNames.Groups.MainGroup, Role = AlfrescoNames.Permissions.Editor } }); } }