Example #1
0
        public override async Task <AccountInformation> GetAccountInformation(ExecutionContext context, [NotNull] CrawlJobData jobData, Guid organizationId, Guid userId, Guid providerDefinitionId)
        {
            if (jobData == null)
            {
                throw new ArgumentNullException(nameof(jobData));
            }

            if (!(jobData is SalesforceCrawlJobData salesforceCrawlJobData))
            {
                throw new Exception("Wrong CrawlJobData type");
            }

            var client = _salesforceClientFactory.CreateNew(salesforceCrawlJobData);

            return(await Task.FromResult(client.GetAccountInformation()));
        }
        public IEnumerable <object> GetData(CrawlJobData jobData)
        {
            if (!(jobData is SalesforceCrawlJobData salesforcecrawlJobData))
            {
                yield break;
            }

            var client = _clientFactory.CreateNew(salesforcecrawlJobData);

            //retrieve data from provider and yield objects

            //foreach (var item in client.Get<Account>("Account"))
            //{
            //    yield return item;
            //}

            foreach (var item in client.Get <PrivateCustomer>("Account"))
            {
                //if (bool.Parse(item.IsPersonAccount))
                //If RecordTypeId "0122o0000007pMrAAI" is true, then it's a private customer, otherwise it's an Organization
                if (item.RecordTypeId == "0122o0000007pMrAAI")
                {
                    yield return(item);
                }
                else if (item.RecordTypeId == "0121t000000Dy89AAC")
                {
                    var organization = new BusinessCustomer();
                    foreach (var property in organization.GetType().GetProperties())
                    {
                        property.SetValue(organization, item.GetType().GetProperty(property.Name).GetValue(item));
                    }
                    yield return(organization);
                }
            }

            foreach (var item in client.Get <Contact>("Contact"))
            {
                //Return only if Contact is an Organization (We don't want private customers)
                if (item.RecordTypeId == "0121t0000010SSoAAM")
                {
                    yield return(item);
                }
            }
        }
Example #3
0
        public IEnumerable <object> GetData(CrawlJobData jobData)
        {
            if (!(jobData is SalesforceCrawlJobData salesforcecrawlJobData))
            {
                yield break;
            }

            var client = _clientFactory.CreateNew(salesforcecrawlJobData);

            //retrieve data from provider and yield objects

            foreach (var item in client.Get <Account>("Account"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Asset>("Asset"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Attachment>("Attachment"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Campaign>("Campaign"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Case>("Case"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <CollaborationGroup>("CollaborationGroup"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Company>("Company"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Contact>("Contact"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <ContentDocument>("ContentDocument"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Contract>("Contract"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Dashboard>("Dashboard"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Document>("Document"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <DomainObject>("Domain"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Event>("Event"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Group>("Group"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Idea>("Idea"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Lead>("Lead"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Network>("Network"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Note>("Note"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Opportunity>("Opportunity"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Order>("Order"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Partner>("Partner"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <PriceBook2>("Pricebook"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Product>("Product"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Profile>("Profile"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Quote>("Quote"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Report>("Report"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Site>("Site"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <Solution>("Solution"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <StreamingChannel>("StreamingChannel"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <SalesForceTask>("Task"))
            {
                yield return(item);
            }

            foreach (var item in client.Get <User>("User"))
            {
                yield return(item);
            }
        }