Example #1
0
        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%\"}"
            });
        }
Example #4
0
        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);
        }
Example #7
0
        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;
            }
        }
Example #8
0
        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);
            }
        }
Example #9
0
        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);
        }
Example #10
0
        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);
            }
        }
Example #11
0
        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
            });
        }
Example #12
0
        /// <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);
        }
Example #13
0
        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}"));
        }
Example #14
0
        private static Guid ExecuteWhoAmI(IOrganizationService service)
        {
            WhoAmIRequest  request  = new WhoAmIRequest();
            WhoAmIResponse response = (WhoAmIResponse)service.Execute(request);

            return(response.UserId);
        }
Example #15
0
        private void WhoAmI()
        {
            WhoAmIRequest  request  = new WhoAmIRequest();
            WhoAmIResponse response = (WhoAmIResponse)this.service.Execute(request);

            MessageBox.Show(this, "Your ID is: " + response.UserId.ToString("B"));
        }
Example #16
0
        private Guid getCurrentUserId(IOrganizationService service)
        {
            WhoAmIRequest  userRequest = new WhoAmIRequest();
            WhoAmIResponse user        = (WhoAmIResponse)service.Execute(userRequest);

            return(user.UserId);
        }
Example #17
0
        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);
            }
        }
Example #18
0
        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);
        }
Example #22
0
        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));
            }
        }
Example #23
0
        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();
        }
Example #24
0
        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);
        }
Example #27
0
        /// <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);
            }
        }
Example #28
0
        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;
                }
            }
        }
Example #29
0
        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;
 }
Example #33
0
 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;
 }