GetAttributeValue() public method

public GetAttributeValue ( string attributeName ) : object
attributeName string
return object
        public bool CRUDTests()
        {
            string timeStamp = DateTime.Now.ToISOString() + DateTime.Now.ToTimeString();

            // Create a contact
            Entity contact1 = new Entity("contact");
            contact1.SetAttributeValue("lastname", "Test Contact1 " + timeStamp);
            contact1.Id = OrganizationServiceProxy.Create(contact1).ToString();

            Entity contact2 = new Entity("contact");
            contact2.SetAttributeValue("lastname", "Test Contact2 " + timeStamp);
            contact2.Id = OrganizationServiceProxy.Create(contact2).ToString();
            
            // Create the BCC list
            Entity recipient = new Entity("activityparty");
            recipient.SetAttributeValue("partyid", contact1.ToEntityReference());

            // Create email
            List<Entity> recipients = new List<Entity>();
            ArrayEx.Add(recipients, recipient);
            Entity email = new Entity("email");
            email.SetAttributeValue("to", new EntityCollection(recipients));
            email.SetAttributeValue("subject", "Unit Test email " + timeStamp);
            
            email.SetAttributeValue("id",OrganizationServiceProxy.Create(email));
            email.Id = email.GetAttributeValue("id").ToString();

            // Retrieve Email
            Entity email2 = OrganizationServiceProxy.Retrieve("email", email.Id, new string[] { "to", "subject" });
            EntityCollection to = (EntityCollection)email2.GetAttributeValue("to");
            Debug.Assert(to.Entities.Count == 1);

            // Update recipients
            Entity recipient2 = new Entity("activityparty");
          
            recipient2.SetAttributeValue("partyid", contact2.ToEntityReference());
            
            List<Entity> toRecipients =  to.Entities.Items();
            ArrayEx.Add(toRecipients,recipient2);
            OrganizationServiceProxy.Update(email2);

            // Tidy up
            OrganizationServiceProxy.Delete_(email.LogicalName, new Guid(email.Id));
            OrganizationServiceProxy.Delete_(contact1.LogicalName, new Guid(contact1.Id));
            OrganizationServiceProxy.Delete_(contact2.LogicalName,new Guid(contact2.Id));

            return true;
        }
Example #2
0
        public static int SortDelegate(string attributeName, Entity a, Entity b)
        {

            object l = a.GetAttributeValue(attributeName);
            object r = b.GetAttributeValue(attributeName);
            decimal result = 0;

            string typeName = "";
            if (l != null)
                typeName = l.GetType().Name;
            else if (r != null)
                typeName = r.GetType().Name;

            if (l != r)
            {
                switch (typeName.ToLowerCase())
                {
                    case "string":
                        l = l != null ? ((string)l).ToLowerCase() : null;
                        r = r != null ? ((string)r).ToLowerCase() : null;
                        if ((bool)Script.Literal("{0}<{1}", l, r))
                            result = -1;
                        else
                            result = 1;
                        break;
                    case "date":
                        if ((bool)Script.Literal("{0}<{1}", l, r))
                            result = -1;
                        else
                            result = 1;
                        break;
                    case "number":
                        decimal ln = l != null ? ((decimal)l) : 0;
                        decimal rn = r != null ? ((decimal)r) : 0;
                        result = (ln - rn);
                        break;
                    case "money":
                        decimal lm = l != null ? ((Money)l).Value : 0;
                        decimal rm = r != null ? ((Money)r).Value : 0;
                        result = (lm - rm);
                        break;
                    case "optionsetvalue":
                        int? lo = l != null ? ((OptionSetValue)l).Value : 0;
                        lo = lo != null ? lo : 0;
                        int? ro = r != null ? ((OptionSetValue)r).Value : 0;
                        ro = ro != null ? ro : 0;
                        result = (decimal)(lo - ro);
                        break;
                    case "entityreference":
                        string le = (l != null) && (((EntityReference)l).Name != null) ? ((EntityReference)l).Name : "";
                        string re = r != null && (((EntityReference)r).Name != null) ? ((EntityReference)r).Name : "";
                        if ((bool)Script.Literal("{0}<{1}", le, re))
                            result = -1;
                        else
                            result = 1;
                        break;

                }
            }
            return (int)result;
        }
Example #3
0
        private static string GetStringValue(string field,Entity record)
        {
            string stringValue = null;
            if (field == null)
                return null;

            if (record.FormattedValues.ContainsKey(field + "name"))
            {
                return record.FormattedValues[field + "name"];
            }
            else
            {
                object value = record.GetAttributeValue(field);
                if (value == null)
                    return stringValue;
                Type valueType = value.GetType();
                switch (valueType.Name)
                {
                    case "EntityReference":
                        stringValue = ((EntityReference)value).Name.ToString();
                        break;

                    default:

                        stringValue = value.ToString();

                        break;
                }
            }

            return stringValue;
        }
        private bool IsAlsoAUser(Entity record)
        {
            if (userContacts.ContainsKey(record.Id))
                return true;
            else
            {
                if ((record.LogicalName == "contact" && record.GetAttributeValue("systemuserid") != null))
                {
                    userContacts[record.Id] = record;
                    return true;
                }

                if (record.LogicalName == "contact")
                {
                    // Check the email domain
                    string emailAddress = record.GetAttributeValueString("emailaddress1");
                    if (emailAddress != null)
                    {
                        string domain = GetEmailDomain(emailAddress);
                        return EmailDomains.ContainsKey(domain);
                    }
                }
            }
            return false;
        }
        private EntityNode GetParentEntity(Entity record, string parentAttributeName, string parentEnityLogicalName)
        {
            object parent = record.GetAttributeValue(parentAttributeName);
            string parentid = "";
            if (parent.GetType() == typeof(Guid))
            {
                parentid = ((Guid)parent).Value;

            }
            else if (parent.GetType() == typeof(EntityReference))
            {
                parentid = ((EntityReference)parent).Id.Value;
                parentEnityLogicalName = ((EntityReference)parent).LogicalName;

            }

            EntityNode parentNode = null;

            if (parent != null)
            {
                string key = parentEnityLogicalName + parentid;
                if (idIndex.ContainsKey(key))
                {
                    parentNode = idIndex[key];
                }
            }
            return parentNode;
        }
Example #6
0
        public static int SortDelegate(string attributeName, Entity a, Entity b)
        {
            object  l      = a.GetAttributeValue(attributeName);
            object  r      = b.GetAttributeValue(attributeName);
            decimal result = 0;

            string typeName = "";

            if (l != null)
            {
                typeName = l.GetType().Name;
            }
            else if (r != null)
            {
                typeName = r.GetType().Name;
            }

            if (l != r)
            {
                switch (typeName.ToLowerCase())
                {
                case "string":
                    l = l != null ? ((string)l).ToLowerCase() : null;
                    r = r != null ? ((string)r).ToLowerCase() : null;
                    if ((bool)Script.Literal("{0}<{1}", l, r))
                    {
                        result = -1;
                    }
                    else
                    {
                        result = 1;
                    }
                    break;

                case "date":
                    if (l == null)
                    {
                        result = -1;
                    }
                    else if (r == null)
                    {
                        result = 1;
                    }
                    else if ((bool)Script.Literal("{0}<{1}", l, r))
                    {
                        result = -1;
                    }
                    else
                    {
                        result = 1;
                    }
                    break;

                case "number":
                    decimal ln = l != null ? ((decimal)l) : 0;
                    decimal rn = r != null ? ((decimal)r) : 0;
                    result = (ln - rn);
                    break;

                case "money":
                    decimal lm = l != null ? ((Money)l).Value : 0;
                    decimal rm = r != null ? ((Money)r).Value : 0;
                    result = (lm - rm);
                    break;

                case "optionsetvalue":
                    int?lo = l != null ? ((OptionSetValue)l).Value : 0;
                    lo = lo != null ? lo : 0;
                    int?ro = r != null ? ((OptionSetValue)r).Value : 0;
                    ro     = ro != null ? ro : 0;
                    result = (decimal)(lo - ro);
                    break;

                case "entityreference":
                    string le = (l != null) && (((EntityReference)l).Name != null) ? ((EntityReference)l).Name : "";
                    string re = r != null && (((EntityReference)r).Name != null) ? ((EntityReference)r).Name : "";
                    if ((bool)Script.Literal("{0}<{1}", le, re))
                    {
                        result = -1;
                    }
                    else
                    {
                        result = 1;
                    }
                    break;
                }
            }
            return((int)result);
        }