示例#1
0
        private bool IsFieldValueMatched(ServiceObjectField fieldValue, string value, bool isArrayValue)
        {
            //if no filter value, then the record is matched.
            if (string.IsNullOrEmpty(value))
            {
                return(true);
            }

            //if the field properties is null, then not matched.
            if (fieldValue == null)
            {
                return(false);
            }

            if (isArrayValue)
            {
                string[] fieldValues = value.Split(new char[] { ',' });
                var      found       = (from v in fieldValues
                                        where fieldValue.isFieldValueEqualAs(v)
                                        select v).Count();

                return(found > 0);
            }

            return(fieldValue.isFieldValueEqualAs(value));
        }
示例#2
0
        private void EnsureServiceProperties(ServiceObject svcObject)
        {
            logger.LogDebug("Start EnsureServiceProperties");
            ObjectDefinition          objDef            = objectService.GetObjectDefinitionById(svcObject.ObjectDefinitionId);
            List <ObjectKeyValuePair> removedProperties = new List <ObjectKeyValuePair>();

            if (objDef != null)
            {
                logger.LogDebug("objDef : " + objDef.ObjectDefinitionName);
            }
            else
            {
                logger.LogError("objDef is null");
            }

            logger.LogDebug("svcObject.Properties.Count: " + svcObject.Properties.Count);
            for (int i = 0; i < svcObject.Properties.Count; i++)
            {
                ObjectKeyValuePair property = svcObject.Properties[i];

                var defField = (from f in objDef.ObjectFields
                                where f.ObjectDefinitionFieldName.Equals(property.KeyName, StringComparison.InvariantCultureIgnoreCase)
                                select f).FirstOrDefault();
                if (defField != null)
                {
                    ServiceObjectField fieldValue = null;
                    switch (defField.GeneralObjectDefinitionFiledType)
                    {
                    case GeneralObjectDefinitionFieldType.PrimeType:
                        fieldValue = JsonConvert.DeserializeObject <PrimeObjectField>(property.Value.ToString());
                        if (fieldValue == null)
                        {
                            removedProperties.Add(property);
                        }
                        ((PrimeObjectField)fieldValue).PrimeDataType = ((PrimeDefinitionField)defField).PrimeDataType;
                        property.Value = fieldValue;
                        break;

                    case GeneralObjectDefinitionFieldType.File:
                        fieldValue = JsonConvert.DeserializeObject <ObjectFileField>(property.Value.ToString());
                        if (fieldValue == null)
                        {
                            removedProperties.Add(property);
                        }
                        property.Value = fieldValue;
                        break;

                    case GeneralObjectDefinitionFieldType.ObjectReference:
                        fieldValue = JsonConvert.DeserializeObject <ObjectReferenceField>(property.Value.ToString());
                        if (fieldValue == null)
                        {
                            removedProperties.Add(property);
                        }
                        property.Value = fieldValue;
                        break;

                    case GeneralObjectDefinitionFieldType.SingleSelection:
                        fieldValue = JsonConvert.DeserializeObject <SingleSelectionField>(property.Value.ToString());
                        if (fieldValue == null)
                        {
                            removedProperties.Add(property);
                        }
                        property.Value = fieldValue;
                        break;

                    default:
                        //not supported yet.
                        logger.LogError("Not supported property : " + property.KeyName);
                        removedProperties.Add(property);
                        break;
                    }
                }
                else
                {
                    removedProperties.Add(property);
                }
            }

            foreach (var p in removedProperties)
            {
                svcObject.Properties.Remove(p);
            }

            logger.LogDebug("End EnsureServiceProperties");
        }