コード例 #1
0
ファイル: Account.cs プロジェクト: kirkenskorshaer/crm
        private static decimal GetOptaltbeloebSum(IDynamicsCrmConnection dynamicsCrmConnection, XElement filter)
        {
            XDocument xDocument = new XDocument
                                  (
                new XElement("fetch", new XAttribute("aggregate", "true"),
                             new XElement("entity", new XAttribute("name", "account"),
                                          new XElement("attribute", new XAttribute("name", "new_optaltbeloeb"), new XAttribute("alias", "value"), new XAttribute("aggregate", "sum"))
                                          )
                             )
                                  );

            if (filter != null)
            {
                xDocument.Element("fetch").Element("entity").Add(filter);
            }

            IEnumerable <Money> sums = StaticCrm.ReadFromFetchXml(dynamicsCrmConnection, xDocument, (lDynamicsCrmConnection, entity) => new SingleValueEntity <Money>(lDynamicsCrmConnection, entity, "account", "accountid")).Select(valueEntity => valueEntity.value);

            if (sums.Any() == false)
            {
                return(0);
            }

            Money sum = sums.SingleOrDefault();

            if (sum == null)
            {
                return(0);
            }

            return(sum.Value);
        }
コード例 #2
0
ファイル: Account.cs プロジェクト: kirkenskorshaer/crm
 public Account(IDynamicsCrmConnection connection, Entity entity) : base(connection, entity)
 {
     if (entity.Attributes.Any(attribute => attribute.Key == "statecode"))
     {
         State = (StateEnum)((OptionSetValue)entity.Attributes["statecode"]).Value;
     }
 }
コード例 #3
0
ファイル: DynamicFetch.cs プロジェクト: kirkenskorshaer/crm
        public static List <dynamic> ReadFromFetchXml(IDynamicsCrmConnection dynamicsCrmConnection, XDocument xDocument, PagingInformation pagingInformation)
        {
            if (pagingInformation.FirstRun == false)
            {
                if (pagingInformation.MoreRecords == false)
                {
                    return(new List <dynamic>());
                }

                XmlHelper.SetAttributeValue(xDocument, "fetch", "paging-cookie", pagingInformation.PagingCookie);
                XmlHelper.SetAttributeValue(xDocument, "fetch", "page", pagingInformation.Page);
            }

            pagingInformation.FirstRun = false;

            FetchExpression fetchExpression = new FetchExpression(xDocument.ToString());

            EntityCollection entityCollection = dynamicsCrmConnection.Service.RetrieveMultiple(fetchExpression);

            if (entityCollection.Entities.Count == 0)
            {
                return(new List <dynamic>());
            }

            List <dynamic> crmEntities = entityCollection.Entities.Select(entity => GetFromEntity(entity)).ToList();

            pagingInformation.MoreRecords  = entityCollection.MoreRecords;
            pagingInformation.PagingCookie = entityCollection.PagingCookie;
            pagingInformation.Page++;

            return(crmEntities);
        }
コード例 #4
0
ファイル: Contact.cs プロジェクト: kirkenskorshaer/crm
        public static Contact Create(IDynamicsCrmConnection dynamicsCrmConnection, Dictionary <string, string> allContent)
        {
            Contact contact = new Contact(dynamicsCrmConnection);

            CreateFromContent(dynamicsCrmConnection, contact, allContent);
            return(contact);
        }
コード例 #5
0
 public static List <Field> ReadAllFields(IDynamicsCrmConnection dynamicsCrmConnection)
 {
     return(StaticCrm.ReadFromFetchXml(dynamicsCrmConnection, new List <string>()
     {
         "new_fieldid", "new_entity"
     }, new Dictionary <string, string>(), null, (connection, entity) => new Field(connection, entity), new PagingInformation()));
 }
コード例 #6
0
ファイル: StaticCrm.cs プロジェクト: kirkenskorshaer/crm
        public static List <CrmType> ReadFromFetchXml <CrmType>(IDynamicsCrmConnection dynamicsCrmConnection, XDocument xDocument, Func <IDynamicsCrmConnection, Entity, CrmType> CrmTypeConstructor, PagingInformation pagingInformation)
        {
            if (pagingInformation.FirstRun == false)
            {
                if (pagingInformation.MoreRecords == false)
                {
                    return(new List <CrmType>());
                }

                xDocument.Element("fetch").Add(new XAttribute("paging-cookie", pagingInformation.PagingCookie));
                xDocument.Element("fetch").Add(new XAttribute("page", pagingInformation.Page));
            }

            pagingInformation.FirstRun = false;

            FetchExpression fetchExpression = new FetchExpression(xDocument.ToString());

            EntityCollection entityCollection = dynamicsCrmConnection.Service.RetrieveMultiple(fetchExpression);

            if (entityCollection.Entities.Count == 0)
            {
                return(new List <CrmType>());
            }

            List <CrmType> crmEntities = entityCollection.Entities.Select(entity => CrmTypeConstructor(dynamicsCrmConnection, entity)).ToList();

            pagingInformation.MoreRecords  = entityCollection.MoreRecords;
            pagingInformation.PagingCookie = entityCollection.PagingCookie;
            pagingInformation.Page++;

            return(crmEntities);
        }
コード例 #7
0
ファイル: Byarbejde.cs プロジェクト: kirkenskorshaer/crm
 public static void WriteIndbetalingsum(IDynamicsCrmConnection dynamicsCrmConnection, Guid id, decimal amount)
 {
     Update(dynamicsCrmConnection, "new_byarbejde", "new_byarbejdeid", id, new Dictionary <string, object>()
     {
         { "new_indbetalingsum", new Money(amount) }
     });
 }
コード例 #8
0
ファイル: Byarbejde.cs プロジェクト: kirkenskorshaer/crm
        public static List <Byarbejde> Read(IDynamicsCrmConnection connection, string name)
        {
            ConditionExpression equalsNameExpression = new ConditionExpression
            {
                AttributeName = "new_name",
                Operator      = ConditionOperator.Equal,
            };

            equalsNameExpression.Values.Add(name);

            FilterExpression filterExpression = new FilterExpression();

            filterExpression.Conditions.Add(equalsNameExpression);

            QueryExpression query = new QueryExpression("new_byarbejde")
            {
                ColumnSet = ColumnSetByarbejde,
            };

            query.Criteria.AddFilter(filterExpression);

            EntityCollection ByarbejdeEntities = connection.Service.RetrieveMultiple(query);

            List <Byarbejde> byarbejder = ByarbejdeEntities.Entities.Select(entity => new Byarbejde(connection, entity)).ToList();

            return(byarbejder);
        }
コード例 #9
0
 public void UpdateMailrelaygroupid(IDynamicsCrmConnection dynamicsCrmConnection)
 {
     Update(dynamicsCrmConnection, entityName, idName, Id, new Dictionary <string, object>()
     {
         { "new_mailrelaygroupid", new_mailrelaygroupid }
     });
 }
コード例 #10
0
 public void UpdateContactMailrelaycheck(IDynamicsCrmConnection dynamicsCrmConnection)
 {
     Update(dynamicsCrmConnection, "contact", "contactid", contactid.Value, new Dictionary <string, object>()
     {
         { "new_mailrelaycheck", new_mailrelaycheck }
     });
 }
コード例 #11
0
ファイル: Indbetaling.cs プロジェクト: kirkenskorshaer/crm
        public static IEnumerable <Indbetaling> GetIndbetalingOnIban(IDynamicsCrmConnection dynamicsCrmConnection, string iban)
        {
            XDocument xDocument = new XDocument(
                new XElement("fetch",
                             new XElement("entity", new XAttribute("name", "new_indbetaling"),
                                          new XElement("attribute", new XAttribute("name", "new_amount")),
                                          new XElement("attribute", new XAttribute("name", "new_bankid")),
                                          new XElement("attribute", new XAttribute("name", "new_byarbejdeid")),
                                          new XElement("attribute", new XAttribute("name", "new_campaignid")),
                                          new XElement("attribute", new XAttribute("name", "new_indsamlingskoordinatorid")),
                                          new XElement("attribute", new XAttribute("name", "new_indsamlingsstedid")),
                                          new XElement("attribute", new XAttribute("name", "new_kilde")),
                                          new XElement("attribute", new XAttribute("name", "new_kontoid")),
                                          new XElement("link-entity", new XAttribute("name", "new_konto"), new XAttribute("from", "new_kontoid"), new XAttribute("to", "new_kontoid"), new XAttribute("link-type", "inner"),
                                                       new XElement("filter", new XAttribute("type", "and"),
                                                                    new XElement("condition", new XAttribute("attribute", "new_iban"), new XAttribute("operator", "eq"), new XAttribute("value", iban))
                                                                    )
                                                       )
                                          )
                             )
                );

            IEnumerable <Indbetaling> indbetalingCollection = StaticCrm.ReadFromFetchXml(dynamicsCrmConnection, xDocument, (lDynamicsCrmConnection, entity) => new Indbetaling(lDynamicsCrmConnection, entity));

            return(indbetalingCollection);
        }
コード例 #12
0
ファイル: Lead.cs プロジェクト: kirkenskorshaer/crm
 public static List <Lead> ReadAllLeadIds(IDynamicsCrmConnection dynamicsCrmConnection)
 {
     return(StaticCrm.ReadFromFetchXml(dynamicsCrmConnection, new List <string>()
     {
         "leadid"
     }, new Dictionary <string, string>(), null, (connection, entity) => new Lead(connection, entity), new PagingInformation()));
 }
コード例 #13
0
        public static List <Group> Read(IDynamicsCrmConnection connection, string name)
        {
            ConditionExpression equalsNameExpression = new ConditionExpression
            {
                AttributeName = "new_name",
                Operator      = ConditionOperator.Equal,
            };

            equalsNameExpression.Values.Add(name);

            FilterExpression filterExpression = new FilterExpression();

            filterExpression.Conditions.Add(equalsNameExpression);

            QueryExpression query = new QueryExpression("new_group")
            {
                ColumnSet = ColumnSetGroup,
            };

            query.Criteria.AddFilter(filterExpression);

            EntityCollection GroupEntities = connection.Service.RetrieveMultiple(query);

            List <Group> groups = GroupEntities.Entities.Select(EntityToGroup).ToList();

            return(groups);
        }
コード例 #14
0
ファイル: Lead.cs プロジェクト: kirkenskorshaer/crm
 public static void UpdateSubscriberId(IDynamicsCrmConnection dynamicsCrmConnection, Guid leadId, int subscriberId)
 {
     AbstractCrm.Update(dynamicsCrmConnection, "lead", "leadid", leadId, new Dictionary <string, object>()
     {
         { "new_mailrelaysubscriberid", subscriberId },
     });
 }
コード例 #15
0
 public void UpdateContactMailrelaySubscriberid(IDynamicsCrmConnection dynamicsCrmConnection)
 {
     Update(dynamicsCrmConnection, "contact", "contactid", contactid.Value, new Dictionary <string, object>()
     {
         { "new_mailrelaysubscriberid", new_mailrelaysubscriberid }
     });
 }
コード例 #16
0
ファイル: Contact.cs プロジェクト: kirkenskorshaer/crm
 public Contact(IDynamicsCrmConnection connection, Entity contactEntity) : base(connection, contactEntity)
 {
     if (contactEntity.Attributes.Any(attribute => attribute.Key == "statecode"))
     {
         State = (StateEnum)((OptionSetValue)contactEntity.Attributes["statecode"]).Value;
     }
 }
コード例 #17
0
 public void SetDynamicsCrmConnectionIfEmpty(IDynamicsCrmConnection dynamicsCrmConnection)
 {
     if (_dynamicsCrmConnection == null)
     {
         _dynamicsCrmConnection = dynamicsCrmConnection;
     }
 }
コード例 #18
0
ファイル: Campaign.cs プロジェクト: kirkenskorshaer/crm
 public static List <Campaign> ReadCampaignsToImportStubDataTo(IDynamicsCrmConnection dynamicsCrmConnection)
 {
     return(StaticCrm.ReadFromFetchXml(dynamicsCrmConnection, new List <string>()
     {
         "campaignid", "new_redirecttarget", "new_collecttype", "new_mailrelaygroupid", "name", "ownerid"
     }, new Dictionary <string, string>(), null, (connection, entity) => new Campaign(connection, entity), new PagingInformation()));
 }
コード例 #19
0
ファイル: Campaign.cs プロジェクト: kirkenskorshaer/crm
 public static List <Campaign> ReadAllCampaignsWithIdAndLeadtarget(IDynamicsCrmConnection dynamicsCrmConnection)
 {
     return(StaticCrm.ReadFromFetchXml(dynamicsCrmConnection, new List <string>()
     {
         "campaignid", "new_leadtarget"
     }, new Dictionary <string, string>(), null, (connection, entity) => new Campaign(connection, entity), new PagingInformation()));
 }
コード例 #20
0
ファイル: Campaign.cs プロジェクト: kirkenskorshaer/crm
 private static void WriteMoneyByName(IDynamicsCrmConnection dynamicsCrmConnection, Guid id, decimal amount, string name)
 {
     Update(dynamicsCrmConnection, "campaign", "campaignid", id, new Dictionary <string, object>()
     {
         { name, new Money(amount) }
     });
 }
コード例 #21
0
        public AbstractValueEntity(IDynamicsCrmConnection connection, Entity crmEntity, string entityName, string idName) : base(connection)
        {
            _idName     = idName;
            _entityName = entityName;

            InitializeFromEntity(crmEntity);
        }
コード例 #22
0
        public static MarketingList GetListForMailrelayUpdate(IDynamicsCrmConnection dynamicsCrmConnection, PagingInformation pagingInformation, Guid?crmListId)
        {
            List <string> fields = new List <string>()
            {
                "new_mailrelaygroupid",
                "listname",
                "query",
                "new_mailrelaycheck",
                "createdfromcode",
            };

            Dictionary <string, string> search = new Dictionary <string, string>()
            {
                { "new_controlmailrelaygroup", true.ToString() }
            };

            if (crmListId.HasValue)
            {
                search.Add("listid", crmListId.Value.ToString());
            }

            IEnumerable <MarketingList> lists = StaticCrm.ReadFromFetchXml(dynamicsCrmConnection, "list", fields, search, 1, (connection, entity) => new MarketingList(connection, entity), pagingInformation);

            return(lists.SingleOrDefault());
        }
コード例 #23
0
ファイル: Lead.cs プロジェクト: kirkenskorshaer/crm
        public static Lead Create(IDynamicsCrmConnection dynamicsCrmConnection, Dictionary <string, string> allContent)
        {
            Lead lead = new Lead(dynamicsCrmConnection);

            CreateFromContent(dynamicsCrmConnection, lead, allContent);

            return(lead);
        }
コード例 #24
0
ファイル: Materiale.cs プロジェクト: kirkenskorshaer/crm
        public static Materiale ReadCalculationNeed(IDynamicsCrmConnection dynamicsCrmConnection, Func <string, string> getResourcePath)
        {
            string path = getResourcePath("Dynamics/Crm/FetchXml/Materiale/MaterialeNeedingUpdate.xml");

            Materiale materiale = StaticCrm.ReadFromFetchXml(dynamicsCrmConnection, path, (connection, entity) => new Materiale(connection, entity), new PagingInformation()).FirstOrDefault();

            return(materiale);
        }
コード例 #25
0
        public static SystemUser Read(IDynamicsCrmConnection connection, Guid userid)
        {
            Entity userEntity = connection.Service.Retrieve("systemuser", userid, ColumnSetUser);

            SystemUser contact = new SystemUser(connection, userEntity);

            return(contact);
        }
コード例 #26
0
ファイル: Byarbejde.cs プロジェクト: kirkenskorshaer/crm
        public static Byarbejde Read(IDynamicsCrmConnection dynamicsCrmConnection, Guid byarbejdeid)
        {
            Entity contactEntity = dynamicsCrmConnection.Service.Retrieve("new_byarbejde", byarbejdeid, ColumnSetByarbejde);

            Byarbejde byarbejde = new Byarbejde(dynamicsCrmConnection, contactEntity);

            return(byarbejde);
        }
コード例 #27
0
        public static MarketingList Read(IDynamicsCrmConnection connection, Guid marketinglistId)
        {
            Entity marketingListEntity = connection.Service.Retrieve("list", marketinglistId, ColumnSetMarketinglist);

            MarketingList marketingList = new MarketingList(connection, marketingListEntity);

            return(marketingList);
        }
コード例 #28
0
        public static Group Read(IDynamicsCrmConnection connection, Guid groupid)
        {
            Entity contactEntity = connection.Service.Retrieve("new_group", groupid, ColumnSetGroup);

            Group group = EntityToGroup(contactEntity);

            return(group);
        }
コード例 #29
0
 protected void SetDynamicsCrmConnectionIfEmpty(string urlLoginName)
 {
     if (_dynamicsCrmConnection == null)
     {
         DatabaseUrlLogin login = DatabaseUrlLogin.GetUrlLogin(Connection, urlLoginName);
         _dynamicsCrmConnection = DynamicsCrmConnection.GetConnection(login.Url, login.Username, login.Password);
     }
 }
コード例 #30
0
        public static Address Read(IDynamicsCrmConnection connection, Guid addressid)
        {
            Entity contactEntity = connection.Service.Retrieve("customeraddress", addressid, ColumnSetAddress);

            Address address = EntityToAddress(contactEntity);

            return(address);
        }