コード例 #1
0
        public List <Account> getAllCustomerAccounts()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            /*
             *
             * Select AccountId, AccountName
             * From Account
             * Where AccountStatus= 'Customer'
             * Order by AccountName Asec
             * */

            QueryExpression query = new QueryExpression("account");

            query.ColumnSet = new ColumnSet(new string[] { "name" });
            query.Orders.Add(new OrderExpression("name", OrderType.Ascending));
            EntityCollection accountEntityList = service.RetrieveMultiple(query);
            List <Account>   AccountList       = new List <Account>();

            foreach (Entity Item in accountEntityList.Entities)
            {
                AccountList.Add(FillData(Item));
            }
            return(AccountList);
        }
コード例 #2
0
        public void getEntityNamefromID()
        {
            Guid ID = new Guid("0AB01E00-65D4-E511-80EF-3863BB369D50");
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            List <string> entityList = new List <string>();

            entityList.Add("contact");
            entityList.Add("account");
            entityList.Add("opportunity");
            string entityName = string.Empty;

            foreach (string item in entityList)
            {
                try
                {
                    Entity Output = service.Retrieve(item, ID, new ColumnSet());
                    entityName = Output.LogicalName;
                    return;
                }
                catch
                {
                    continue;
                }
            }
        }
コード例 #3
0
        public IEnumerable <EntityMetadata> getSolutionEntities(string SolutionUniqueName)
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();
            // get solution components for solution unique name
            QueryExpression componentsQuery = new QueryExpression
            {
                EntityName = "solutioncomponent",
                ColumnSet  = new ColumnSet(true),
                Criteria   = new FilterExpression(),
            };
            LinkEntity solutionLink = new LinkEntity("solutioncomponent", "solution", "solutionid", "solutionid", JoinOperator.Inner);

            solutionLink.LinkCriteria = new FilterExpression();
            solutionLink.LinkCriteria.AddCondition(new ConditionExpression("uniquename", ConditionOperator.Equal, SolutionUniqueName));
            componentsQuery.LinkEntities.Add(solutionLink);
            componentsQuery.Criteria.AddCondition(new ConditionExpression("componenttype", ConditionOperator.Equal, 1));
            EntityCollection ComponentsResult = service.RetrieveMultiple(componentsQuery);
            //Get all entities
            RetrieveAllEntitiesRequest AllEntitiesrequest = new RetrieveAllEntitiesRequest()
            {
                EntityFilters         = EntityFilters.Entity,
                RetrieveAsIfPublished = true
            };
            RetrieveAllEntitiesResponse AllEntitiesresponse = (RetrieveAllEntitiesResponse)service.Execute(AllEntitiesrequest);
            //Join entities Id and solution Components Id
            var entityList = AllEntitiesresponse.EntityMetadata.Join(ComponentsResult.Entities.Select(x => x.Attributes["objectid"]), x => x.MetadataId, y => y, (x, y) => x);

            return(entityList);
        }
コード例 #4
0
        public void getAnnotationAttachment()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();
            QueryExpression      query   = new QueryExpression("annotation");

            query.ColumnSet = new ColumnSet(new string[] { "filesize" });
            query.Criteria.AddCondition("filesize", ConditionOperator.GreaterThan, 0);

            EntityCollection List = CRMHelper.RetrieveMultiple(query, service);

            decimal totalSize = 0;

            foreach (Entity Item in List.Entities)
            {
                decimal filesize = Convert.ToDecimal(Item.Attributes["filesize"].ToString());
                totalSize = totalSize + filesize;
            }

            Console.WriteLine("Total File Size :" + totalSize);
            decimal inKB = totalSize / 1024;
            decimal inMB = inKB / 1024;
            decimal inGB = inMB / 1024;

            Console.ReadLine();
        }
コード例 #5
0
        public bool IsXAuthorExcelSolutionInstalled(string uniqueName)
        {
            try
            {
                bool            value = false;
                QueryExpression querySampleSolution = new QueryExpression
                {
                    EntityName = "solution",
                    ColumnSet  = new ColumnSet(new string[] { "publisherid", "installedon", "version", "versionnumber", "friendlyname" }),
                };

                querySampleSolution.Criteria.AddCondition("uniquename", ConditionOperator.Equal, uniqueName);
                IOrganizationService service      = CRMHelper.ConnectToMSCRM();
                EntityCollection     SolutionList = service.RetrieveMultiple(querySampleSolution);
                if (SolutionList.Entities.Count == 1)
                {
                    value = true;
                }
                return(value);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #6
0
        public void getEmailAttachment()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();
            QueryExpression      query   = new QueryExpression("activitymimeattachment");

            query.ColumnSet = new ColumnSet(new string[] { "filesize" });
            Console.WriteLine("IOrganization Service Object Created");
            EntityCollection EntityList = CRMHelper.RetrieveMultiple(query, service);

            List <int> FileSizeList = new List <int>();

            foreach (Entity Item in EntityList.Entities)
            {
                if (Item.Attributes.Contains("filesize"))
                {
                    FileSizeList.Add(Convert.ToInt32(Item["filesize"]));
                }
            }

            var TotalSize = 0;

            foreach (int Item in FileSizeList)
            {
                TotalSize = TotalSize + Item;
            }

            var SizeKB = TotalSize / 1024;
            var SizeMB = SizeKB / 1024;
            var SizeGB = SizeMB / 1024;
        }
コード例 #7
0
        public void createNewFieldLevelSecurityProfile()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            //Create Security Profile
            Entity profile = new Entity("fieldsecurityprofile");

            profile["name"]        = "Profile Created From Code";
            profile["description"] = "Profile Created from Code and just to use for test purpose";
            Guid profileId = service.Create(profile);

            // Create Field Permission
            Entity permission = new Entity("fieldpermission");

            permission["fieldsecurityprofileid"] = new EntityReference(profile.LogicalName, profileId);
            permission["entityname"]             = "opportunity";
            permission["attributelogicalname"]   = "estimatedvalue";
            permission["canread"]   = new OptionSetValue(FieldPermissionType.NotAllowed);
            permission["cancreate"] = new OptionSetValue(FieldPermissionType.NotAllowed);
            permission["canupdate"] = new OptionSetValue(FieldPermissionType.NotAllowed);
            Guid permissionId = service.Create(permission);

            // Associate Field Security Profile with Users
            Guid         userId                  = new Guid("0CEAF899-6D01-4577-80DF-0EDEBCE57570");
            Relationship relationShip            = new Relationship("systemuserprofiles_association");
            EntityReferenceCollection collection = new EntityReferenceCollection();

            collection.Add(new EntityReference(profile.LogicalName, profileId));
            service.Associate("systemuser", userId, relationShip, collection);
        }
コード例 #8
0
        public void updateAllProductToActive()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();
            QueryExpression      query   = new QueryExpression("product");

            query.ColumnSet = new ColumnSet(new string[] { "name" });
            query.Criteria.AddCondition("statecode", ConditionOperator.Equal, 2);
            query.Criteria.AddCondition("createdon", ConditionOperator.Yesterday);
            EntityCollection productentityList = service.RetrieveMultiple(query);

            Console.WriteLine("Total Product to be Procceed are : " + productentityList.Entities.Count);
            int counter = 0;

            foreach (Entity Item in productentityList.Entities)
            {
                SetStateRequest publishRequest = new SetStateRequest
                {
                    EntityMoniker = new EntityReference(Item.LogicalName, Item.Id),
                    State         = new OptionSetValue(0),
                    Status        = new OptionSetValue(1)
                };
                service.Execute(publishRequest);
                counter++;

                if (counter % 100 == 0)
                {
                    Console.WriteLine("Total Product Updated are : " + counter);
                }
            }
        }
コード例 #9
0
        public void updateAllEmployeeonyByOne()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            Console.WriteLine("update All Employee Started");
            DateTime StartGetTime = DateTime.Now;

            Console.WriteLine("Start Method of All Employee :" + StartGetTime.ToString());
            EntityCollection List       = getAllEmployee();
            DateTime         EndGetTime = DateTime.Now;

            Console.WriteLine("End Method of All Employee at :" + EndGetTime.ToString());
            double DiffinSeconds = (EndGetTime - StartGetTime).TotalSeconds;

            Console.WriteLine("Method Took Time in Second:" + DiffinSeconds.ToString());
            StartGetTime = DateTime.Now;
            Console.WriteLine("Starting Updating First 500 Records" + StartGetTime.ToString());
            for (int cnt = 0; cnt < List.Entities.Count; cnt++)
            {
                if (cnt == 499)
                {
                    break;
                }
                Entity Item = new Entity("new_employee");
                Item.Id = List.Entities[cnt].Id;
                Item.Attributes.Add("new_jobtitle", "Associate Engineer");
                service.Update(Item);
            }
            EndGetTime = DateTime.Now;
            Console.WriteLine("Completed Updating First 500 Records at : " + EndGetTime.ToString());
            double DiffinSecond = (EndGetTime - StartGetTime).TotalSeconds;

            Console.WriteLine("Total Operation Time in Seconds : " + DiffinSecond.ToString());
            Console.ReadLine();
        }
コード例 #10
0
        public void pushAccountAttachmentToAzureBlob()
        {
            Guid accountId = new Guid("78C36B5E-9473-E511-80E4-3863BB348EE8");
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            //Get Document Attachment from Annoation associated with this Account

            QueryExpression query = new QueryExpression("annotation");

            query.ColumnSet = new ColumnSet(new string[] { "filename", "documentbody" });
            query.Criteria.AddCondition("isdocument", ConditionOperator.Equal, true);
            query.Criteria.AddCondition("objectid", ConditionOperator.Equal, accountId);

            EntityCollection attachmentList = service.RetrieveMultiple(query);

            BlobHelper blobHeloer = new BlobHelper(AZURE_STORAGE_ACCOUNT, AZURE_STORAGE_KEY);

            foreach (Entity attachment in attachmentList.Entities)
            {
                string documentBody = attachment.Attributes["documentbody"].ToString();
                string fileName     = attachment.Attributes["filename"].ToString();

                blobHeloer.PutBlob(AZURE_STORAGE_CONTAINER, fileName, documentBody);
            }
        }
コード例 #11
0
        public void DeleteAccount()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            Guid AccountId = new Guid();

            service.Delete("account", AccountId);
        }
コード例 #12
0
        public void getAccountbyIndustryCode(Guid contactId)
        {
            QueryExpression query = new QueryExpression("account");

            query.Criteria.AddCondition("primarycontactid", ConditionOperator.Equal, contactId);
            IOrganizationService service     = CRMHelper.ConnectToMSCRM();
            EntityCollection     AccountList = service.RetrieveMultiple(query);
        }
コード例 #13
0
        public void GetAllSecurityteam()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            /*
             *
             * Select AccountId, AccountName
             * From Account
             * Where AccountStatus= 'Customer'
             * Order by AccountName Asec
             * */

            string          teamName = "FinanceTeam";
            QueryExpression query    = new QueryExpression("systemuser");

            query.ColumnSet = new ColumnSet(new string[] { "fullname", "domainname" });
            LinkEntity TeamOwnerShipLinkEntity = new LinkEntity("systemusuer", "teammembership", "systemuserid", "systemuserid", JoinOperator.Inner);
            LinkEntity TeamLinkEnitty          = new LinkEntity("teammembership", "team", "teamid", "teamid", JoinOperator.Inner);

            TeamLinkEnitty.LinkCriteria.AddCondition("name", ConditionOperator.Equal, teamName);
            TeamOwnerShipLinkEntity.LinkEntities.Add(TeamLinkEnitty);
            query.LinkEntities.Add(TeamOwnerShipLinkEntity);


            EntityCollection accountEntityList = service.RetrieveMultiple(query);



            // Create the AddMembersTeamRequest object.
            AddMembersTeamRequest addRequest = new AddMembersTeamRequest();

            // Set the AddMembersTeamRequest TeamID property to the object ID of
            // an existing team.
            addRequest.TeamId = new Guid("A9DE5707-7D0D-E811-A958-000D3AF083FD");

            // Set the AddMembersTeamRequest MemberIds property to an
            // array of GUIDs that contains the object IDs of one or more system users.
            Guid[] memberIds = new[] { new Guid("C68F0F3F-680D-E811-A95B-000D3AF07CE4") };
            addRequest.MemberIds = memberIds;

            // Execute the request.
            service.Execute(addRequest);

            RemoveMembersTeamRequest removeRequest = new RemoveMembersTeamRequest();

            removeRequest.TeamId = new Guid("A9DE5707-7D0D-E811-A958-000D3AF083FD");

            // Set the AddMembersTeamRequest MemberIds property to an
            // array of GUIDs that contains the object IDs of one or more system users.

            removeRequest.MemberIds = memberIds;

            // Execute the request.
            service.Execute(removeRequest);


            //service.Associate("team", new Guid("A9DE5707-7D0D-E811-A958-000D3AF083FD"), new Relationship("teamroles_association"),)
        }
コード例 #14
0
        public void getAllProducts()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            QueryExpression query = new QueryExpression("product");

            query.TopCount = 20;
            EntityCollection List = service.RetrieveMultiple(query);
        }
コード例 #15
0
        public void ConnectCRM()
        {
            DateTime             startTime = DateTime.Now;
            IOrganizationService service   = CRMHelper.ConnectToMSCRM();
            DateTime             EndTime   = DateTime.Now;

            var DiffinSecond = (EndTime - startTime).TotalSeconds;

            Console.WriteLine("Total Time Taken in Connect in seconds :" + DiffinSecond);
        }
コード例 #16
0
        public void UpdateEmployeeLoyalti(Guid EmpployeeId)
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            Entity employee = new Entity("new_employee");

            employee.Id = EmpployeeId;
            employee.Attributes.Add("new_loyalti", 60);
            service.Update(employee);
        }
コード例 #17
0
        public void deleteQuote()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            Entity quote = new Entity("quote");

            quote.Id = new Guid("B2960DD9-00C5-E511-80ED-3863BB346A70");
            quote.Attributes.Add("apttus_abandonquote", true);
            service.Update(quote);
        }
コード例 #18
0
        public void getAllContactsCount()
        {
            QueryExpression query = new QueryExpression("contact");

            query.Criteria.AddCondition("statecode", ConditionOperator.Equal, 0);
            IOrganizationService service = CRMHelper.ConnectToMSCRM();
            EntityCollection     List    = CRMHelper.RetrieveMultiple(query, service);

            Console.ReadLine();
        }
コード例 #19
0
        public void getaccountbylatitude()
        {
            string          value = "50.5";
            QueryExpression query = new QueryExpression("account");

            query.ColumnSet = new ColumnSet(new string[] { "address1_latitude" });
            query.Criteria.AddCondition("address1_latitude", ConditionOperator.GreaterThan, Convert.ToDouble(value));
            IOrganizationService service     = CRMHelper.ConnectToMSCRM();
            EntityCollection     AccountList = service.RetrieveMultiple(query);
        }
コード例 #20
0
        public void changeOppOwner()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();
            Guid   oppId     = new Guid("F2B3D5A9-F5C4-E511-80ED-3863BB346A70");
            Entity oppEntity = new Entity("opportunity");

            oppEntity.Attributes.Add("ownerid", new EntityReference("systemuser", new Guid("0CEAF899-6D01-4577-80DF-0EDEBCE57570")));
            oppEntity.Id = oppId;
            service.Update(oppEntity);
        }
コード例 #21
0
        public EntityCollection getAllEmployee()
        {
            QueryExpression query = new QueryExpression("new_employee");

            query.ColumnSet = new ColumnSet(new string[] { "new_name", "new_loyalti", "new_jobtitle", "new_grade" });
            IOrganizationService service = CRMHelper.ConnectToMSCRM();
            EntityCollection     List    = CRMHelper.RetrieveMultiple(query, service);

            return(List);
        }
コード例 #22
0
        public void getAllOppbyCustomerId()
        {
            Guid CustomerId = new Guid("F2612DD3-B8C4-E511-80ED-3863BB346A70");
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            QueryExpression query = new QueryExpression("opportunity");

            query.ColumnSet = new ColumnSet(true);
            query.Criteria.AddCondition("customerid", ConditionOperator.Equal, CustomerId);
            EntityCollection TaskList = service.RetrieveMultiple(query);
        }
コード例 #23
0
        public Guid addNewEmployee()
        {
            Guid empId = Guid.Empty;
            IOrganizationService service = CRMHelper.ConnectToMSCRM();
            Entity employee = new Entity("new_employee");

            employee.Attributes.Add("new_name", "Ankit Rahevar");
            employee.Attributes.Add("new_loyalti", 40);
            empId = service.Create(employee);
            return(empId);
        }
コード例 #24
0
        public void getAllTaskByContactId()
        {
            Guid ContactId = new Guid("B6F08E3E-3DBF-E511-80ED-3863BB369D50");
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            QueryExpression query = new QueryExpression("task");

            query.ColumnSet = new ColumnSet(true);
            query.Criteria.AddCondition("regardingobjectid", ConditionOperator.Equal, ContactId);
            EntityCollection TaskList = service.RetrieveMultiple(query);
        }
コード例 #25
0
        public Guid InsertAccount()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();
            Entity Account = new Entity("account");

            Account.Attributes.Add("name", "Test Account");

            Guid AccountId = service.Create(Account);

            return(AccountId);
        }
コード例 #26
0
        public void getAllTaskByAccountId()
        {
            Guid AccountId = new Guid("64E065F0-D8DE-E511-80F0-3863BB346A70");
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            QueryExpression query = new QueryExpression("task");

            query.ColumnSet = new ColumnSet(true);
            query.Criteria.AddCondition("regardingobjectid", ConditionOperator.Equal, AccountId);
            EntityCollection TaskList = service.RetrieveMultiple(query);
        }
コード例 #27
0
        public void updateAccount(Guid acocuntId)
        {
            Entity account = new Entity("account");

            account.Id = acocuntId;

            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            account.Attributes.Add("address1_longitude", Convert.ToDecimal(500));

            service.Update(account);
        }
コード例 #28
0
        public EntityCollection getAllEmployeeWithLoyalti()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            QueryExpression query = new QueryExpression("new_employee");

            query.Criteria.AddCondition("new_loyalti", ConditionOperator.GreaterThan, 0);
            query.ColumnSet = new ColumnSet(true);
            EntityCollection EmployeeEntityList = service.RetrieveMultiple(query);

            return(EmployeeEntityList);
        }
コード例 #29
0
        public bool saveApplication(Guid appId, Guid uniqueId, byte[] config, byte[] template, string templateName, byte[] scheme, string edition)
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();
            bool _isSaveApp = true;
            int  editionval = 0;

            if (appId == Guid.Empty)
            {
                appId = getAppIdbyAppUniqueId(uniqueId);
            }
            if (!string.IsNullOrEmpty(edition))
            {
                editionval = getEditionOptionSetValuebyText(service, "apttus_xapps_application", "apttus_xapps_edition", edition);
            }

            if (editionval > 0)
            {
                // Update App Entity with Edition Value
                Entity appEntity = new Entity("apttus_xapps_application");
                appEntity.Id = appId;
                appEntity.Attributes.Add("apttus_xapps_edition", new OptionSetValue(editionval));
                service.Update(appEntity);
            }

            // Remove existing Attachments and Create new Attachments
            QueryExpression attachementQ = new QueryExpression("annotation");

            attachementQ.Criteria.AddCondition("objectid", ConditionOperator.Equal, appId);
            EntityCollection existingAttachmentEntitySet = service.RetrieveMultiple(attachementQ);

            foreach (Entity item in existingAttachmentEntitySet.Entities)
            {
                service.Delete(item.LogicalName, item.Id);
            }

            //Save ConfigFile
            if (saveAnnotation(appId, "apttus_xapps_application", "AppDefinition.xml", config, service) == Guid.Empty)
            {
                _isSaveApp = false;
            }
            //Save Template File
            if (saveAnnotation(appId, "apttus_xapps_application", templateName, template, service) == Guid.Empty)
            {
                _isSaveApp = false;
            }
            //Save Schema
            if (saveAnnotation(appId, "apttus_xapps_application", "ExternalSchema.json", scheme, service) == Guid.Empty)
            {
                _isSaveApp = false;
            }

            return(_isSaveApp);
        }
コード例 #30
0
        public void getEntityMetaData()
        {
            IOrganizationService service = CRMHelper.ConnectToMSCRM();

            RetrieveVersionRequest  versionReq = new RetrieveVersionRequest();
            RetrieveVersionResponse resp       = (RetrieveVersionResponse)service.Execute(versionReq);
            //assigns the version to a string
            string VersionNumber = resp.Version;

            bool isKeyCompatibleVersion = isCompatibleVersion(VersionNumber);

            MetadataFilterExpression EntityFilter = new MetadataFilterExpression(LogicalOperator.And);

            EntityFilter.Conditions.Add(new MetadataConditionExpression("LogicalName", MetadataConditionOperator.Equals, "contact"));

            MetadataPropertiesExpression EntityProperties = new MetadataPropertiesExpression()
            {
                AllProperties = false
            };

            EntityProperties.PropertyNames.AddRange(new string[] { "Attributes", "OneToManyRelationships", "LogicalName", "DisplayName", "PrimaryIdAttribute", "PrimaryNameAttribute" });
            if (isKeyCompatibleVersion)
            {
                EntityProperties.PropertyNames.Add("Keys");
            }


            MetadataPropertiesExpression AttributeProperties = new MetadataPropertiesExpression()
            {
                AllProperties = false
            };

            AttributeProperties.PropertyNames.AddRange("AttributeType", "LogicalName", "DisplayName", "SchemaName", "AttributeType", "IsPrimaryName", "IsValidForUpdate", "OptionSet");

            EntityQueryExpression entityQueryExpression = new EntityQueryExpression()
            {
                Criteria       = EntityFilter,
                Properties     = EntityProperties,
                AttributeQuery = new AttributeQueryExpression()
                {
                    Properties = AttributeProperties
                }//,
                 //RelationshipQuery = new RelationshipQueryExpression() { Properties = new MetadataPropertiesExpression() {  AllProperties = true} }
            };

            RetrieveMetadataChangesRequest req = new RetrieveMetadataChangesRequest()
            {
                Query = entityQueryExpression
            };

            var response = (RetrieveMetadataChangesResponse)service.Execute(req);
        }