private void CreateSharePointLinks() { var defaultSiteId = CrmSvc.CreateNewRecord("sharepointsite", new Dictionary <string, CrmDataTypeWrapper> { { "name", new CrmDataTypeWrapper("Default Site", CrmFieldType.String) }, { "absoluteurl", new CrmDataTypeWrapper($"https://{SharePointDomain.Value}", CrmFieldType.String) } }); var proposalManagerSiteId = CrmSvc.CreateNewRecord("sharepointsite", new Dictionary <string, CrmDataTypeWrapper> { { "name", new CrmDataTypeWrapper("Proposal Manager Site", CrmFieldType.String) }, { "parentsite", new CrmDataTypeWrapper(defaultSiteId, CrmFieldType.Lookup, "sharepointsite") }, { "relativeurl", new CrmDataTypeWrapper($"sites/{ProposalManagerSharePointSiteName.Value}", CrmFieldType.String) } }); var proposalManagerSiteDriveId = CrmSvc.CreateNewRecord("sharepointdocumentlocation", new Dictionary <string, CrmDataTypeWrapper> { { "name", new CrmDataTypeWrapper("Proposal Manager Site Drive", CrmFieldType.String) }, { "parentsiteorlocation", new CrmDataTypeWrapper(proposalManagerSiteId, CrmFieldType.Lookup, "sharepointsite") }, { "relativeurl", new CrmDataTypeWrapper(DriveName.Value, CrmFieldType.String) } }); CrmSvc.CreateNewRecord("sharepointdocumentlocation", new Dictionary <string, CrmDataTypeWrapper> { { "name", new CrmDataTypeWrapper("Proposal Manager Temporary Folder", CrmFieldType.String) }, { "parentsiteorlocation", new CrmDataTypeWrapper(proposalManagerSiteDriveId, CrmFieldType.Lookup, "sharepointdocumentlocation") }, { "relativeurl", new CrmDataTypeWrapper("TempFolder", CrmFieldType.String) } }); }
/// <summary> /// /// </summary> /// <returns>The created user id.</returns> private Guid CreateProposalManagerUser() => CrmSvc.CreateNewRecord("systemuser", new Dictionary <string, CrmDataTypeWrapper> { { "firstname", new CrmDataTypeWrapper(ProposalManagerApplicationName, CrmFieldType.String) }, { "lastname", new CrmDataTypeWrapper("Application", CrmFieldType.String) }, { "businessunitid", new CrmDataTypeWrapper(BusinessUnitId.Value, CrmFieldType.Lookup, "businessunit") }, { "applicationid", new CrmDataTypeWrapper(ProposalManagerApplicationId.Value, CrmFieldType.UniqueIdentifier) }, { "internalemailaddress", new CrmDataTypeWrapper($"{Guid.NewGuid()}@{TenantDomain.Value}", CrmFieldType.String) } });
/// <summary> /// /// </summary> /// <param name="entityName"></param> /// <param name="entityOtc"></param> /// <param name="executionMode"></param> /// <returns>The secret used to secure the webhook.</returns> private string SetUpWebhook(string entityName, int entityOtc, ExecutionMode executionMode) { var secret = GenerateSecret(); var opportunitiesServiceEndpointId = CrmSvc.CreateNewRecord("serviceendpoint", new Dictionary <string, CrmDataTypeWrapper> { { "name", new CrmDataTypeWrapper($"Proposal Manager {entityName}", CrmFieldType.String) }, { "url", new CrmDataTypeWrapper($"{ProposalManagerApplicationUrl.Value}/api/webhooks/incoming/dynamicscrm/{entityName}", CrmFieldType.String) }, { "contract", new CrmDataTypeWrapper(WebhookContractEnumValue, CrmFieldType.Picklist) }, { "authtype", new CrmDataTypeWrapper(WebhookKeyAuthTypeEnumValue, CrmFieldType.Picklist) }, { "authvalue", new CrmDataTypeWrapper(secret, CrmFieldType.String) } }); /*var filterId = GetCreateFilterIdByOtc(entityOtc); * CrmSvc.CreateNewRecord("sdkmessageprocessingstep", new Dictionary<string, CrmDataTypeWrapper> * { * { "sdkmessageid", new CrmDataTypeWrapper(CreateMessageId.Value, CrmFieldType.Lookup, "sdkmessage") }, * { "sdkmessagefilterid", new CrmDataTypeWrapper(filterId, CrmFieldType.Lookup, "sdkmessagefilter") }, * { "plugintypeid", new CrmDataTypeWrapper(filterId, CrmFieldType.Lookup, "sdkmessagefilter") }, * { "mode", new CrmDataTypeWrapper(executionMode, CrmFieldType.Picklist) }, * { "stage", new CrmDataTypeWrapper(PostOperationStage, CrmFieldType.Picklist) } * }); * //throw new Exception(CrmSvc.LastCrmError);*/ return(secret); }
/// <summary> /// /// </summary> /// <returns>The created role id.</returns> private Guid CreateRole() => CrmSvc.CreateNewRecord("role", new Dictionary <string, CrmDataTypeWrapper> { { "name", new CrmDataTypeWrapper(ProposalManagerApplicationName, CrmFieldType.String) }, { "businessunitid", new CrmDataTypeWrapper(BusinessUnitId.Value, CrmFieldType.Lookup, "businessunit") } });