public UserRepository( IConfiguration configuration, IDynamicsClientFactory dynamicsClientFactory) { dynamicsConfiguration = new Dynamics365Configuration(); configuration.Bind(Dynamics365Configuration.ConfigurationName, dynamicsConfiguration); Users = new UserDataAccessor(dynamicsConfiguration, dynamicsClientFactory); }
public ContactRepository(IConfiguration configuration, IDynamicsClientFactory dynamicsClientFactory) { dynamicsConfiguration = new Dynamics365Configuration(); configuration.Bind(Dynamics365Configuration.ConfigurationName, dynamicsConfiguration); Contacts = new ContactNameAccessor(dynamicsConfiguration, dynamicsClientFactory); }
public ConnectionRoleRepository( IConfiguration configuration, IDynamicsClientFactory dynamicsClientFactory, IConnectionRolesCache connectionRolesCache) { dynamicsConfiguration = new Dynamics365Configuration(); configuration.Bind(Dynamics365Configuration.ConfigurationName, dynamicsConfiguration); this.connectionRolesCache = connectionRolesCache; if (connectionRolesCache.ConnectionRoles is null) { dynamicsClient = dynamicsClientFactory.GetDynamicsAuthorizedWebClientAsync().Result; var result = dynamicsClient.GetAsync($"/api/data/v9.0/connectionroles?$filter=category eq {dynamicsConfiguration.ProposalManagerCategoryId}&$select=name").Result; var connectionRoles = JsonConvert.DeserializeObject <JObject>(result.Content.ReadAsStringAsync().Result)["value"].AsJEnumerable(); connectionRolesCache.ConnectionRoles = new Dictionary <string, string>(from cr in connectionRoles select new KeyValuePair <string, string>(cr["connectionroleid"].ToString(), cr["name"].ToString())); } }
public ConnectionRoleRepository( IConfiguration configuration, IDynamicsClientFactory dynamicsClientFactory, IConnectionRolesCache connectionRolesCache) { dynamicsConfiguration = new Dynamics365Configuration(); configuration.Bind(Dynamics365Configuration.ConfigurationName, dynamicsConfiguration); this.connectionRolesCache = connectionRolesCache; if (connectionRolesCache.ConnectionRoles is null) { dynamicsClient = dynamicsClientFactory.GetDynamicsAuthorizedWebClientAsync().Result; var result = dynamicsClient.GetAsync($"/api/data/v9.0/connectionroles?$filter=category eq {dynamicsConfiguration.ProposalManagerCategoryId}&$select=name").Result; JObject responseJObject = result.Content.ReadAsAsync <JObject>().Result; if (responseJObject == null || responseJObject["value"] == null) { throw new Exception("Invalid or null response from Dynamics when querying for connection roles."); } var connectionRoles = responseJObject["value"].AsJEnumerable(); connectionRolesCache.ConnectionRoles = new Dictionary <string, string>(from cr in connectionRoles select new KeyValuePair <string, string>(cr["connectionroleid"].ToString(), cr["name"].ToString())); } }
public UserDataAccessor(Dynamics365Configuration dynamicsConfiguration, IDynamicsClientFactory dynamicsClientFactory) { this.dynamicsConfiguration = dynamicsConfiguration; this.dynamicsClientFactory = dynamicsClientFactory; }
public SharePointLocationRepository( IConfiguration configuration, IDynamicsClientFactory dynamicsClientFactory, ISharePointLocationsCache sharePointLocationsCache, IGraphClientAppContext graphClientContext) { dynamicsConfiguration = new Dynamics365Configuration(); appOptions = new AppOptions(); configuration.Bind(Dynamics365Configuration.ConfigurationName, dynamicsConfiguration); configuration.Bind("ProposalManagement", appOptions); this.sharePointLocationsCache = sharePointLocationsCache; graphClient = graphClientContext.GraphClient; this.dynamicsClientFactory = dynamicsClientFactory; if (!Guid.TryParse(sharePointLocationsCache.ProposalManagerSiteId, out Guid existingSiteId)) { var result = dynamicsClientFactory.GetDynamicsAuthorizedWebClientAsync().Result.GetAsync($"/api/data/v9.0/sharepointsites?$filter=absoluteurl eq 'https://{appOptions.SharePointHostName}'").Result; JObject responseJObject = result.Content.ReadAsAsync <JObject>().Result; if (responseJObject == null || responseJObject["value"] == null) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Invalid or null response from Dynamics when querying for Tenant Site."); } var site = responseJObject["value"].AsJEnumerable().SingleOrDefault(); if (site == null) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Tenant Site is not registered in Dynamics."); } sharePointLocationsCache.ProposalManagerSiteId = site["sharepointsiteid"].ToString(); if (!Guid.TryParse(sharePointLocationsCache.ProposalManagerSiteId, out existingSiteId)) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Malformed GUID for Tenant Site."); } } if (!Guid.TryParse(sharePointLocationsCache.ProposalManagerBaseSiteId, out Guid existingBaseSiteId)) { var result = dynamicsClientFactory.GetDynamicsAuthorizedWebClientAsync().Result.GetAsync($"/api/data/v9.0/sharepointsites?$filter=parentsite/sharepointsiteid eq '{sharePointLocationsCache.ProposalManagerSiteId}' and relativeurl eq 'sites/{appOptions.SharePointSiteRelativeName}'").Result; JObject responseJObject = result.Content.ReadAsAsync <JObject>().Result; if (responseJObject == null || responseJObject["value"] == null) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Invalid or null response from Dynamics when querying for Proposal Manager Site."); } var sites = responseJObject["value"].AsJEnumerable().SingleOrDefault(); if (sites == null) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Proposal Manager Site is not registered in Dynamics."); } sharePointLocationsCache.ProposalManagerBaseSiteId = sites["sharepointsiteid"].ToString(); if (!Guid.TryParse(sharePointLocationsCache.ProposalManagerBaseSiteId, out existingSiteId)) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Malformed GUID for Proposal Manager Site."); } } if (!Guid.TryParse(sharePointLocationsCache.RootDriveLocationId, out Guid existingDriveId)) { var result = dynamicsClientFactory.GetDynamicsAuthorizedWebClientAsync().Result.GetAsync($"/api/data/v9.0/sharepointdocumentlocations?$filter=parentsiteorlocation_sharepointsite/sharepointsiteid eq '{sharePointLocationsCache.ProposalManagerBaseSiteId}' and relativeurl eq '{dynamicsConfiguration.RootDrive}'").Result; JObject responseJObject = result.Content.ReadAsAsync <JObject>().Result; if (responseJObject == null || responseJObject["value"] == null) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Invalid or null response from Dynamics when querying for Proposal Manger Site Drive."); } var location = responseJObject["value"].AsJEnumerable().SingleOrDefault(); if (location == null) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Proposal Manager Site Drive is not registered in Dynamics."); } sharePointLocationsCache.RootDriveLocationId = location["sharepointdocumentlocationid"].ToString(); if (!Guid.TryParse(sharePointLocationsCache.RootDriveLocationId, out existingSiteId)) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Malformed GUID for Proposal Manager Site Drive."); } } if (!Guid.TryParse(sharePointLocationsCache.TempFolderLocationId, out Guid existingTempFolderId)) { var result = dynamicsClientFactory.GetDynamicsAuthorizedWebClientAsync().Result.GetAsync($"/api/data/v9.0/sharepointdocumentlocations?$filter=parentsiteorlocation_sharepointdocumentlocation/sharepointdocumentlocationid eq '{sharePointLocationsCache.RootDriveLocationId}' and relativeurl eq '{TempFolderName}'").Result; JObject responseJObject = result.Content.ReadAsAsync <JObject>().Result; if (responseJObject == null || responseJObject["value"] == null) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Invalid or null response from Dynamics when querying for Proposal Manager Temporary Folder."); } var location = responseJObject["value"].AsJEnumerable().SingleOrDefault(); if (location == null) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Proposal Manager Temporary Folder is not registered in Dynamics."); } sharePointLocationsCache.TempFolderLocationId = location["sharepointdocumentlocationid"].ToString(); if (!Guid.TryParse(sharePointLocationsCache.TempFolderLocationId, out existingSiteId)) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Malformed GUID for Proposal Manager Temporary Folder."); } } }
public AccountNameAccessor(Dynamics365Configuration dynamicsConfiguration, IDynamicsClientFactory dynamicsClientFactory) { this.dynamicsConfiguration = dynamicsConfiguration; this.dynamicsClientFactory = dynamicsClientFactory; }
public SharePointLocationRepository( IConfiguration configuration, IDynamicsClientFactory dynamicsClientFactory, ISharePointLocationsCache sharePointLocationsCache, IGraphClientAppContext graphClientContext) { dynamicsConfiguration = new Dynamics365Configuration(); appOptions = new AppOptions(); configuration.Bind(Dynamics365Configuration.ConfigurationName, dynamicsConfiguration); configuration.Bind("ProposalManagement", appOptions); this.sharePointLocationsCache = sharePointLocationsCache; graphClient = graphClientContext.GraphClient; this.dynamicsClientFactory = dynamicsClientFactory; if (!Guid.TryParse(sharePointLocationsCache.ProposalManagerSiteId, out Guid existingSiteId)) { var result = dynamicsClientFactory.GetDynamicsAuthorizedWebClientAsync().Result.GetAsync($"/api/data/v9.0/sharepointsites?$filter=absoluteurl eq 'https://{appOptions.SharePointHostName}'").Result; if (!Guid.TryParse( sharePointLocationsCache.ProposalManagerSiteId = JsonConvert.DeserializeObject <JObject>(result.Content.ReadAsStringAsync().Result)["value"].AsJEnumerable() .Single()["sharepointsiteid"].ToString() , out existingSiteId)) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Tenant Site is not registered in Dynamics."); } } if (!Guid.TryParse(sharePointLocationsCache.ProposalManagerBaseSiteId, out Guid existingBaseSiteId)) { var result = dynamicsClientFactory.GetDynamicsAuthorizedWebClientAsync().Result.GetAsync($"/api/data/v9.0/sharepointsites?$filter=parentsite/sharepointsiteid eq '{sharePointLocationsCache.ProposalManagerSiteId}' and relativeurl eq 'sites/{appOptions.SharePointSiteRelativeName}'").Result; if (!Guid.TryParse( sharePointLocationsCache.ProposalManagerBaseSiteId = JsonConvert.DeserializeObject <JObject>(result.Content.ReadAsStringAsync().Result)["value"].AsJEnumerable() .Single()["sharepointsiteid"].ToString() , out existingSiteId)) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Proposal Manager Site is not registered in Dynamics."); } } if (!Guid.TryParse(sharePointLocationsCache.RootDriveLocationId, out Guid existingDriveId)) { var result = dynamicsClientFactory.GetDynamicsAuthorizedWebClientAsync().Result.GetAsync($"/api/data/v9.0/sharepointdocumentlocations?$filter=parentsiteorlocation_sharepointsite/sharepointsiteid eq '{sharePointLocationsCache.ProposalManagerBaseSiteId}' and relativeurl eq '{dynamicsConfiguration.RootDrive}'").Result; if (!Guid.TryParse( sharePointLocationsCache.RootDriveLocationId = JsonConvert.DeserializeObject <JObject>(result.Content.ReadAsStringAsync().Result)["value"].AsJEnumerable() .Single()["sharepointdocumentlocationid"].ToString() , out existingSiteId)) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Proposal Manager Site Drive is not registered in Dynamics."); } } if (!Guid.TryParse(sharePointLocationsCache.TempFolderLocationId, out Guid existingTempFolderId)) { var result = dynamicsClientFactory.GetDynamicsAuthorizedWebClientAsync().Result.GetAsync($"/api/data/v9.0/sharepointdocumentlocations?$filter=parentsiteorlocation_sharepointdocumentlocation/sharepointdocumentlocationid eq '{sharePointLocationsCache.RootDriveLocationId}' and relativeurl eq '{TempFolderName}'").Result; if (!Guid.TryParse( sharePointLocationsCache.TempFolderLocationId = JsonConvert.DeserializeObject <JObject>(result.Content.ReadAsStringAsync().Result)["value"].AsJEnumerable() .Single()["sharepointdocumentlocationid"].ToString() , out existingSiteId)) { throw new Exception("DYNAMICS INTEGRATION ENGINE: Proposal Manager Temporary Folder is not registered in Dynamics."); } } }