public IActionResult MultipleCalls() { Trace.TraceInformation("Start MultipleCalls"); WhoAmIResponse response = null; if (_crmContext?.WebProxyClient != null) { response = (WhoAmIResponse)_crmContext.WebProxyClient.Execute(new WhoAmIRequest()); Trace.TraceInformation("WhoAmI Executed"); } string responseText = string.Empty; if (response != null) { responseText = $"{response.UserId} : "; } else { responseText = $"WebProxyClient null : "; } List <string> contacts = null; if (_crmContext?.ServiceContext != null) { contacts = _crmContext.ServiceContext.CreateQuery("contact").Select(a => a.GetAttributeValue <string>("fullname")).ToList(); Trace.TraceInformation("Contact Query Executed"); } responseText += contacts != null?string.Join(",", contacts) : "null"; return(View((object)responseText)); }
public void TestCreateCustomEmail() { Entity contact = CreateContact(); Entity payment = CreatePayment(contact); EntityReference paymentReference = payment.ToEntityReference(); WhoAmIResponse whoAmI = this.CrmOrganisationService.Execute(new WhoAmIRequest()) as WhoAmIResponse; Entity whoAmIUser = new Entity("systemuser"); whoAmIUser.Id = whoAmI.UserId; EntityReferenceCollection to = new EntityReferenceCollection(); to.Add(contact.ToEntityReference()); ITextProcessor crmTextProcessor = new TextProcessor(this.CrmOrganisationService); CreateCustomEmail createCustomEmail = new CreateCustomEmail(this.CrmOrganisationService, crmTextProcessor); createCustomEmail.CreateEmail( "DXTools Payment Notification Template" , whoAmI.UserId , paymentReference , paymentReference , new EntityReference("systemuser", whoAmI.UserId) , to , new string[] { "DXTools Payment Attachment Sample.docx", "DXTools Sample T&C.pdf" } , false , false); }
protected override OrganizationRequest SetupTriggerRequest() { Entity template = CreateTemplate(); Entity contact = CreateContact(); payment = CreatePayment(contact); EntityReference paymentReference = payment.ToEntityReference(); WhoAmIResponse whoAmI = OrganizationService.Execute(new WhoAmIRequest()) as WhoAmIResponse; Entity whoAmIUser = new Entity("systemuser"); whoAmIUser.Id = whoAmI.UserId; EntityCollection to = new EntityCollection(); to.Entities.Add(contact); return(new dxtools_SendCustomEmailRequest() { EmailTemplateName = template["title"].ToString() , ToRecipient = to , FromSender = new EntityReference("systemuser", whoAmI.UserId) , Regarding = paymentReference , RecordContext = paymentReference , Attachments = string.Empty , StaticParameters = "{\"currentvat\":\"20%\"}" }); }
public OrganizationResponse Execute(OrganizationRequest request) { OrganizationResponse res = null; if (request != null) { if (request.GetType() == typeof(WhoAmIRequest)) { if (_connectionString == "INCORRECT_CONNECTION_STRING") { throw new Exception("incorrect connection string"); } res = new WhoAmIResponse(); res["BusinessUnitId"] = new Guid("73174763-ed0e-4aeb-b02a-9f6dc078260a"); res["OrganizationId"] = new Guid("73174763-ed0e-4aeb-b02a-9f6dc078260a"); res["UserId"] = new Guid("73174763-ed0e-4aeb-b02a-9f6dc078260a"); } else if (request.GetType() == typeof(RetrieveEntityRequest)) { var em = new EntityMetadata() { SchemaName = "myEntity" }; AttributeMetadata attr1 = (AttributeMetadata)typeof(AttributeMetadata).GetConstructor(BindingFlags.NonPublic | BindingFlags.CreateInstance | BindingFlags.Instance, null, new Type[] { typeof(AttributeTypeCode), typeof(string) }, null) .Invoke(new Object[] { AttributeTypeCode.Integer, "prop1" }); attr1.LogicalName = "prop1"; var attrs = new AttributeMetadata[] { attr1 }; em.GetType().GetProperty("Attributes").SetValue((object)em, (object)attrs); res = new RetrieveEntityResponse(); res["EntityMetadata"] = em; } } return(res); }
public Guid WhoAmI() { CrmServiceClient service = HttpContext.Current.GetOwinContext().Get <CrmServiceClient>(); WhoAmIResponse resp = service.Execute(new WhoAmIRequest()) as WhoAmIResponse; return(resp.UserId); }
public CrmService(string domain, string username, string password, string crmurl) { _clientCreds = new ClientCredentials(); _clientCreds.Windows.ClientCredential.UserName = username; _clientCreds.Windows.ClientCredential.Password = password; _clientCreds.Windows.ClientCredential.Domain = domain; string orgServiceUrl = crmurl.TrimEnd('/') + "/XRMServices/2011/Organization.svc"; _serviceProxy = new OrganizationServiceProxy(new Uri(orgServiceUrl), null, _clientCreds, null); _serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior()); if (_serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Binding is CustomBinding) { CustomBinding cb = (CustomBinding)_serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Binding; cb.SendTimeout = new TimeSpan(0, 10, 0); cb.ReceiveTimeout = new TimeSpan(0, 10, 0); foreach (BindingElement be in cb.Elements) { if (be is HttpTransportBindingElement) { ((HttpTransportBindingElement)be).UnsafeConnectionNtlmAuthentication = true; } } } IsConnected = true; ConnectedTo = _serviceProxy.ServiceManagement.CurrentServiceEndpoint.Address.Uri.AbsoluteUri.Replace("XRMServices/2011/Organization.svc", ""); WhoAmIResponse whoAmI = _serviceProxy.Execute(new WhoAmIRequest()) as WhoAmIResponse; ConnectedAs = GetUserLogin(whoAmI.UserId); }
public static void Main(string[] args) { try { using (_client = new CrmServiceClient(ConfigurationManager.ConnectionStrings["CRMConnectionString"].ConnectionString)) { //Do stuff WhoAmIResponse res = (WhoAmIResponse)_client.Execute(new WhoAmIRequest()); Console.WriteLine($"Login User ID : {res.UserId}"); Console.WriteLine($"Organization Unique Name : {_client.ConnectedOrgUniqueName}"); Console.WriteLine($"Organization Display Name : {_client.ConnectedOrgFriendlyName}"); //Entity test = RetrieveProjectTemplateTask(new EntityReference("msdyn_project", new Guid("23A38E60-C0D0-E811-A96E-000D3A16ACEE")), "1"); Entity ProjectEntity = new Entity("msdyn_project"); ProjectEntity["fkh_unitid"] = new EntityReference("po_unit", new Guid("6068F309-8A9D-E811-A857-000D3A14019B")); ProjectEntity["msdyn_projecttemplate"] = new EntityReference("msdyn_project", new Guid("23A38E60-C0D0-E811-A96E-000D3A16ACEE")); ProjectEntity["msdyn_subject"] = "Malhar Test Project 2"; ProjectEntity.Id = _client.Create(ProjectEntity); Console.WriteLine($"Press any key to exit."); Console.Read(); } } catch (FaultException <OrganizationServiceFault> ex) { string message = ex.Message; throw; } }
public void Execute(IServiceProvider serviceProvider) { IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); ITracingService trace = (ITracingService)serviceProvider.GetService(typeof(ITracingService)); IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); IOrganizationService service = factory.CreateOrganizationService((Guid )context.UserId);//gets the userid under who's context the plugin was executing, remember this can vary than the current user due to impersonation in plugins try { if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity) { if (context.Depth <= 1) { Entity entity = (Entity)context.InputParameters["Target"]; WhoAmIRequest whoreq = new WhoAmIRequest(); WhoAmIResponse w****s = new WhoAmIResponse(); Guid userid = w****s.UserId;//gets the current user who was running the operation in ms crm QueryExpression query = new QueryExpression(); ConditionExpression condition = new ConditionExpression("new_user", ConditionOperator.Equal, context.UserId); query.Criteria.AddCondition(condition); } } } catch (Exception e) { throw new InvalidPluginExecutionException("User details couldnt be retrieved" + e.Message); } }
public CrmConnectionInfo GetConnectionInfo(CrmDbConnection connection) { var connInfo = _Cache.GetOrAdd(connection.ConnectionString, f => { WhoAmIRequest whoRequest = new WhoAmIRequest(); WhoAmIResponse whoResponse = (WhoAmIResponse)connection.OrganizationService.Execute(whoRequest); var info = new CrmConnectionInfo(); if (whoResponse != null) { info.OrganisationId = whoResponse.OrganizationId; info.UserId = whoResponse.UserId; info.BusinessUnitId = whoResponse.BusinessUnitId; } var orgEntity = connection.OrganizationService.Retrieve("organization", info.OrganisationId, new ColumnSet("name")); if (orgEntity != null) { info.OrganisationName = (string)orgEntity["name"]; } var versionReq = new RetrieveVersionRequest(); var versionResponse = (RetrieveVersionResponse)connection.OrganizationService.Execute(versionReq); if (versionResponse != null) { info.ServerVersion = versionResponse.Version; } return(info); }); return(connInfo); }
private static OrganizationWebProxyClient CRMCall(TraceWriter log) { var aadInstance = "https://login.microsoftonline.com/"; var organizationUrl = Environment.GetEnvironmentVariable("D365OrgUrl"); //"https://firstkeyhomestest.crm.dynamics.com"; log.Info($"D365 Org Url : {organizationUrl}"); var tenantId = "aa33e5f2-00dd-407e-b337-8cb00f28c25d"; //[Azure AD Tenant ID]; var clientId = Environment.GetEnvironmentVariable("ClientId"); //"df227c93-0513-43be-a02c-690167459b52";//[Azure AD Application ID]; log.Info($"CLient ID : {clientId}"); var appKey = Environment.GetEnvironmentVariable("appKey"); //"OXE+UZQfM6vIQPVwBD2B/KL4O56jfJ0BJHLsuXSSqgk=";//[Azure AD Application Key]; log.Info($"Application Key : {appKey}"); var clientcred = new ClientCredential(clientId, appKey); var authenticationContext = new AuthenticationContext(aadInstance + tenantId); var authenticationResult = authenticationContext.AcquireTokenAsync(organizationUrl, clientcred); var requestedToken = authenticationResult.Result.AccessToken; var sdkService = new OrganizationWebProxyClient(GetServiceUrl(organizationUrl), false); if (sdkService is OrganizationWebProxyClient) { sdkService.HeaderToken = requestedToken; OrganizationRequest request = new OrganizationRequest() { RequestName = "WhoAmI" }; WhoAmIResponse response = sdkService.Execute(new WhoAmIRequest()) as WhoAmIResponse; log.Info("D365 User ID : " + response.UserId); return(sdkService); } else { return(null); } }
protected override OrganizationRequest SetupTriggerRequest() { Entity contact = CreateContact(); Entity payment = CreatePayment(contact); EntityReference paymentReference = payment.ToEntityReference(); WhoAmIResponse whoAmI = OrganizationService.Execute(new WhoAmIRequest()) as WhoAmIResponse; Entity whoAmIUser = new Entity("systemuser"); whoAmIUser.Id = whoAmI.UserId; EntityCollection to = new EntityCollection(); to.Entities.Add(contact); return(new dxtools_CreateCustomEmailRequest() { EmailTemplateName = "DXTools Payment Notification Template" , ToRecipient = to , FromSender = new EntityReference("systemuser", whoAmI.UserId) , Regarding = paymentReference , RecordContext = paymentReference , Attachments = "DXTools Payment Attachment Sample.docx,DXTools Sample T&C.pdf" , SendInstantly = false }); }
/// <summary> /// This method creates any entity records that this sample requires. /// </summary> public void CreateRequiredRecords() { // Get the current user. WhoAmIRequest userRequest = new WhoAmIRequest(); WhoAmIResponse userResponse = (WhoAmIResponse)_serviceProxy.Execute(userRequest); _userId = userResponse.UserId; // Create the activity party for sending and receiving the fax. ActivityParty party = new ActivityParty { PartyId = new EntityReference(SystemUser.EntityLogicalName, _userId) }; // Create the fax object. Fax fax = new Fax { Subject = "Sample Fax", From = new ActivityParty[] { party }, To = new ActivityParty[] { party } }; _faxId = _serviceProxy.Create(fax); Console.WriteLine("Created a fax: '{0}'.", fax.Subject); }
public static async Task <HttpResponseMessage> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req, TraceWriter log) { var dataverseUrl = System.Environment.GetEnvironmentVariable("DataverseUrl"); var clientId = System.Environment.GetEnvironmentVariable("ClientId"); var clientSecret = System.Environment.GetEnvironmentVariable("ClientSecret"); var client = new CrmServiceClient(new System.Uri(dataverseUrl), clientId, clientSecret, false, ""); //// Could also use ConnectionString here //string connectionString = $"Url={dataverseUrl};ClientId={clientId};Secret={clientSecret};AuthType=ClientSecret"; //var client = new CrmServiceClient(connectionString); if (!client.IsReady) { return(req.CreateResponse(HttpStatusCode.Unauthorized, "Could not connect to the dataverse")); } ; WhoAmIResponse whoAmIResponse = (WhoAmIResponse)client.Execute(new WhoAmIRequest()); log.Info($"whoAmIResponse={JsonConvert.SerializeObject(whoAmIResponse)}"); return(req.CreateResponse(HttpStatusCode.OK, $"I am {whoAmIResponse.UserId}")); }
private static Guid ExecuteWhoAmI(IOrganizationService service) { WhoAmIRequest request = new WhoAmIRequest(); WhoAmIResponse response = (WhoAmIResponse)service.Execute(request); return(response.UserId); }
private void WhoAmI() { WhoAmIRequest request = new WhoAmIRequest(); WhoAmIResponse response = (WhoAmIResponse)this.service.Execute(request); MessageBox.Show(this, "Your ID is: " + response.UserId.ToString("B")); }
private Guid getCurrentUserId(IOrganizationService service) { WhoAmIRequest userRequest = new WhoAmIRequest(); WhoAmIResponse user = (WhoAmIResponse)service.Execute(userRequest); return(user.UserId); }
private RetrieveVersionResponse ConnectToCrm(string connectionString) { try { CrmConnection connection = CrmConnection.Parse(connectionString); using (OrganizationService orgService = new OrganizationService(connection)) { WhoAmIRequest wRequest = new WhoAmIRequest(); WhoAmIResponse wResponse = (WhoAmIResponse)orgService.Execute(wRequest); _logger.WriteToOutputWindow("Connected To CRM Organization: " + wResponse.OrganizationId, Logger.MessageType.Info); OrgId = wResponse.OrganizationId.ToString(); RetrieveVersionRequest vRequest = new RetrieveVersionRequest(); RetrieveVersionResponse vResponse = (RetrieveVersionResponse)orgService.Execute(vRequest); _logger.WriteToOutputWindow("Version: " + vResponse.Version, Logger.MessageType.Info); return(vResponse); } } catch (FaultException <OrganizationServiceFault> crmEx) { _logger.WriteToOutputWindow("Error Connecting To CRM: " + crmEx.Message + Environment.NewLine + crmEx.StackTrace, Logger.MessageType.Error); return(null); } catch (Exception ex) { _logger.WriteToOutputWindow("Error Connecting To CRM: " + ex.Message + Environment.NewLine + ex.StackTrace, Logger.MessageType.Error); return(null); } }
public static void Main(string[] args) { try { IOrganizationService _service = ConnectToCRM(); //Do stuff WhoAmIResponse res = (WhoAmIResponse)_service.Execute(new WhoAmIRequest()); Console.WriteLine(res.UserId); //IOrganizationService _service = (IOrganizationService)_client.OrganizationWebProxyClient != null ? (IOrganizationService)_client.OrganizationWebProxyClient : (IOrganizationService)_client.OrganizationServiceProxy; string unsecureConfig = "Endpoint=sb://fsk-d365-integration.servicebus.windows.net/;SharedAccessKeyName=ListenAndSend;SharedAccessKey=AcwFsm2HmQv9pBBXEPVKl8xBETXnWuaUYBDS8GMMA3k="; string secureConfig = string.Empty; Entity entity = _service.Retrieve("po_unit", new Guid("6068F309-8A9D-E811-A857-000D3A14019B"), new Microsoft.Xrm.Sdk.Query.ColumnSet(true)); PropertyToAZRServiceBus pta = new PropertyToAZRServiceBus(unsecureConfig, secureConfig); pta.ExecuteMessage(_service, entity); } catch (FaultException <OrganizationServiceFault> ex) { string message = ex.Message; throw; } }
public string WhoAmI() { WhoAmIResponse whoResp = (WhoAmIResponse)_organizationServiceProxy.Execute(new WhoAmIRequest()); Entity user = _organizationServiceProxy.Retrieve("systemuser", whoResp.UserId, new ColumnSet(true)); return(user["fullname"].ToString()); }
private string ConnectToCrm(string connectionString) { try { CrmServiceClient client = new CrmServiceClient(connectionString); WhoAmIRequest wRequest = new WhoAmIRequest(); WhoAmIResponse wResponse = (WhoAmIResponse)client.Execute(wRequest); _logger.WriteToOutputWindow("Connected To CRM Organization: " + wResponse.OrganizationId, Logger.MessageType.Info); _logger.WriteToOutputWindow("Version: " + client.ConnectedOrgVersion, Logger.MessageType.Info); OrgId = wResponse.OrganizationId.ToString(); Globals globals = _dte.Globals; globals["CurrentConnection" + _windowType] = client; if (client.ConnectedOrgVersion != null) { return(client.ConnectedOrgVersion.ToString()); } _logger.WriteToOutputWindow("Error Connecting To CRM: Unable to determine org. version", Logger.MessageType.Error); return(null); } catch (FaultException <OrganizationServiceFault> crmEx) { _logger.WriteToOutputWindow("Error Connecting To CRM: " + crmEx.Message + Environment.NewLine + crmEx.StackTrace, Logger.MessageType.Error); return(null); } catch (Exception ex) { _logger.WriteToOutputWindow("Error Connecting To CRM: " + ex.Message + Environment.NewLine + ex.StackTrace, Logger.MessageType.Error); return(null); } }
public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx) { var req = request as WhoAmIRequest; var callerId = ctx.CallerId.Id; var results = new ParameterCollection { { "UserId", callerId } }; var user = ctx.CreateQuery("systemuser") .Where(u => u.Id == callerId) .SingleOrDefault(); if (user != null) { var buId = GetBusinessUnitId(user); results.Add("BusinessUnitId", buId); var orgId = GetOrganizationId(ctx, user, buId); results.Add("OrganizationId", orgId); } var response = new WhoAmIResponse { Results = results }; return(response); }
private WhoAmIResponse GetWhoAmIRequest() { HttpCrmClient.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0"); HttpCrmClient.DefaultRequestHeaders.Add("OData-Version", "4.0"); HttpCrmClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // Use the WhoAmI function HttpResponseMessage response = HttpCrmClient.GetAsync("WhoAmI").GetAwaiter().GetResult(); //Get the response content and parse it. string responseBody = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); if (response.IsSuccessStatusCode) { _whoAmI = JSONSerializer <WhoAmIResponse> .DeSerialize(responseBody); return(_whoAmI); } else { throw new Exception(string.Format( "The WhoAmI request failed with a status of '{0}' and exception:{1}", response.ReasonPhrase, responseBody)); } }
static void Main(string[] args) { //Connect to CDS string connectionString = ConfigurationManager.AppSettings["organizationUrl"].ToString();; CrmServiceClient conn = new CrmServiceClient(connectionString); IOrganizationService orgService = (IOrganizationService)conn.OrganizationWebProxyClient; //Get Id of current user WhoAmIResponse whoami = (WhoAmIResponse)orgService.Execute(new WhoAmIRequest()); //Get current system user Entity user = orgService.Retrieve("systemuser", whoami.UserId, new ColumnSet(true)); //Write out all fields and values foreach (KeyValuePair <string, object> kp in user.Attributes) { if (kp.Value.GetType() == typeof(EntityReference)) { Console.WriteLine($"{kp.Key} : {((EntityReference)kp.Value).LogicalName}({((EntityReference)kp.Value).Id})"); } else if (kp.Value.GetType() == typeof(OptionSetValue)) { Console.WriteLine($"{kp.Key} : {user.FormattedValues[kp.Key]}"); } else { Console.WriteLine($"{kp.Key} : {kp.Value}"); } } Console.ReadLine(); }
public Guid GetOrganizationId() { WhoAmIRequest request = new WhoAmIRequest(); WhoAmIResponse response = (WhoAmIResponse)orgService.Execute(request); return(response.OrganizationId); }
private Entity GetCurrentUser() { WhoAmIResponse whoAmI = this.CrmOrganisationService.Execute(new WhoAmIRequest()) as WhoAmIResponse; Entity whoAmIUser = new Entity("systemuser"); whoAmIUser.Id = whoAmI.UserId; return(whoAmIUser); }
private static void TestConnection() { CrmServiceClient conn = new CrmServiceClient(connectionString); WhoAmIResponse whoAmIResponse = (WhoAmIResponse)conn.Execute(new WhoAmIRequest()); Console.WriteLine("Connection Successful!"); Console.WriteLine(Environment.NewLine); }
/// <summary> /// Function to make connection to specified server /// </summary> public void ConnectToServer() { string uriString; //Initialize the config file InitializeKeys(); // Setup credential _clientCreds = new ClientCredentials(); switch (_serverConfiguration["AuthenticationType"]) { case "IFD": _clientCreds.UserName.UserName = _serverConfiguration["ServerUser"]; _clientCreds.UserName.Password = _serverConfiguration["ServerPassword"]; uriString = "https://" + _serverConfiguration["ServerName"] + "/XRMServices/2011/Organization.svc"; break; case "OnPrem": default: _clientCreds.Windows.ClientCredential.UserName = _serverConfiguration["ServerUser"]; _clientCreds.Windows.ClientCredential.Password = _serverConfiguration["ServerPassword"]; _clientCreds.Windows.ClientCredential.Domain = _serverConfiguration["ServerName"] + "dom"; uriString = "http://" + _serverConfiguration["ServerName"] + "/" + _serverConfiguration["ServerOrgName"] + "/XRMServices/2011/Organization.svc"; break; } // The DeviceIdManager class registers a computing device with Windows Live ID, through the generation of a device ID and password, // and optionally stores that information in an encrypted format on the local disk for later reuse. // This will fail here as this vm don't have access to the Internet therefore there is no way for it to generate a device ID with login.live.com //_deviceCreds = DeviceIdManager.LoadOrRegisterDevice(); // Connect to Crm WCF endpoint try { using (_serviceProxy = new OrganizationServiceProxy(new Uri(uriString), null, _clientCreds, null)) { // require early bound type support _serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior()); OrganizationServiceContext orgContext = new OrganizationServiceContext(_serviceProxy); _service = (IOrganizationService)_serviceProxy; WhoAmIRequest request = new WhoAmIRequest(); WhoAmIResponse userResponse = (WhoAmIResponse)orgContext.Execute(request); Console.WriteLine("Your Crm user Guid is {0}", userResponse.UserId); orgId = ((WhoAmIResponse)_service.Execute(new WhoAmIRequest())).OrganizationId; Console.WriteLine("Your CRM Org ID is {0}:", orgId); } } catch (Exception ex) { Console.WriteLine(ex); } }
public void Execute(IServiceProvider serviceProvider) { //Extract the tracing service for use in debugging sandboxed plug-ins..... ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService)); //Obtain execution contest from the service provider.... IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); int step = 0; if (context.InputParameters.Contains("Target")) { step = 2; Entity accountPreImageEntity = ((context.PreEntityImages != null) && context.PreEntityImages.Contains("accpre")) ? context.PreEntityImages["accpre"] : null; Entity accountEntity = new Entity { LogicalName = "account", Id = accountPreImageEntity.Id }; step = 3; if (accountPreImageEntity.LogicalName != "account") { return; } try { step = 5; IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId); //Get current user information.... step = 6; WhoAmIResponse response = (WhoAmIResponse)service.Execute(new WhoAmIRequest()); step = 7; accountEntity["fdx_lastassignedowner"] = new EntityReference("systemuser", ((EntityReference)accountPreImageEntity.Attributes["ownerid"]).Id); step = 8; accountEntity["fdx_lastassigneddate"] = DateTime.UtcNow; step = 9; service.Update(accountEntity); } catch (FaultException <OrganizationServiceFault> ex) { throw new InvalidPluginExecutionException(string.Format("An error occurred in the Account_OnAssign plug-in at Step {0}.", step), ex); } catch (Exception ex) { tracingService.Trace("Account_OnAssign: step {0}, {1}", step, ex.ToString()); throw; } } }
public IActionResult WhoAmI() { var identity = (ClaimsIdentity)User.Identity; WhoAmIResponse response = (WhoAmIResponse)OrgService.Execute(new WhoAmIRequest()); string responseText = responseText = $"{response.UserId}"; return(View((object)responseText)); }
public void Execute(IServiceProvider serviceProvider) { CrmConnection conn = CrmConnection.Parse("Url=https://***.crm4.dynamics.com; Username=***; Password=***;"); IOrganizationService orgService = new OrganizationService(conn); WhoAmIRequest req = new WhoAmIRequest(); WhoAmIResponse resp = (WhoAmIResponse)orgService.Execute(req); throw new InvalidPluginExecutionException($"Remote user ID: {resp.UserId}"); }
public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx) { var req = request as WhoAmIRequest; var response = new WhoAmIResponse { Results = new ParameterCollection { { "UserId", ctx.CallerId.Id } } }; return response; }
// ReSharper disable once UnusedParameter.Local private WhoAmIResponse ExecuteInternal(WhoAmIRequest request) { var response = new WhoAmIResponse(); response.Results["BusinessUnitId"] = Info.BusinessUnit.Id; response.Results["UserId"] = Info.User.Id; response.Results["OrganizationId"] = Info.OrganizationId; return response; }
public OrganizationResponse Execute(OrganizationRequest request) { OrganizationResponse res = null; if (request != null) { if (request.GetType() == typeof(WhoAmIRequest)) { if (_connectionString == "INCORRECT_CONNECTION_STRING") throw new Exception("incorrect connection string"); res = new WhoAmIResponse(); res["BusinessUnitId"] = new Guid("73174763-ed0e-4aeb-b02a-9f6dc078260a"); res["OrganizationId"] = new Guid("73174763-ed0e-4aeb-b02a-9f6dc078260a"); res["UserId"] = new Guid("73174763-ed0e-4aeb-b02a-9f6dc078260a"); } else if (request.GetType() == typeof(RetrieveEntityRequest)) { var em = new EntityMetadata() { SchemaName = "myEntity" }; AttributeMetadata attr1 = (AttributeMetadata)typeof(AttributeMetadata).GetConstructor(BindingFlags.NonPublic | BindingFlags.CreateInstance | BindingFlags.Instance, null, new Type[] { typeof(AttributeTypeCode), typeof(string) }, null) .Invoke(new Object[] { AttributeTypeCode.Integer, "prop1" }); attr1.LogicalName = "prop1"; var attrs = new AttributeMetadata[] { attr1 }; em.GetType().GetProperty("Attributes").SetValue(em, attrs); res = new RetrieveEntityResponse(); res["EntityMetadata"] = em; } } return res; }