コード例 #1
0
        private static IList <Sdk.Entity> BuildActivityPartyList(DataXml.Field field, SchemaXml.Entity schemaData)
        {
            var activityParties = new List <Sdk.Entity>();

            foreach (var record in field.Activitypointerrecords)
            {
                var party = new Sdk.Entity("activityparty", Guid.Parse(record.Id));
                foreach (var attribute in record.Field)
                {
                    party[attribute.Name] = GetActivityPartyObjectFromFieldNodeType(attribute, schemaData);
                }
                activityParties.Add(party);
            }

            return(activityParties);
        }
コード例 #2
0
        private static object GetActivityPartyObjectFromFieldNodeType(DataXml.Field field, SchemaXml.Entity schemaData)
        {
            var attribute = Builders.ActivityPartyMetadata.Build().Attributes.Where(attr => attr.LogicalName.Equals(field.Name)).FirstOrDefault();

            switch (attribute.AttributeType)
            {
            case AttributeTypeCode.Boolean:
                return(Boolean.Parse(field.Value));

            case AttributeTypeCode.Lookup:
            case AttributeTypeCode.Owner:
                return(new EntityReference()
                {
                    LogicalName = field.Lookupentity,
                    Id = Guid.Parse(field.Value),
                    Name = field.Lookupentityname
                });

            case AttributeTypeCode.Picklist:
            case AttributeTypeCode.State:
            case AttributeTypeCode.Status:
                return(new OptionSetValue(Int32.Parse(field.Value)));

            case AttributeTypeCode.Uniqueidentifier:
                return(Guid.Parse(field.Value));

            case AttributeTypeCode.CalendarRules:
            case AttributeTypeCode.Virtual:
            case AttributeTypeCode.BigInt:
            case AttributeTypeCode.ManagedProperty:
            case AttributeTypeCode.EntityName:
            case AttributeTypeCode.Customer:
            case AttributeTypeCode.PartyList:
            case AttributeTypeCode.DateTime:
            case AttributeTypeCode.Decimal:
            case AttributeTypeCode.Double:
            case AttributeTypeCode.Integer:
            case AttributeTypeCode.Memo:
            case AttributeTypeCode.String:
            case AttributeTypeCode.Money:
            default:
                throw new Exception(String.Format("Unsupported attribute type {0}.", attribute.AttributeType));
            }
        }