Exemplo n.º 1
0
        //private void ToExcel(QueryView.Domain.QueryView queryView, FilterExpression filter, OrderExpression order, string fileName, bool includePrimaryKey = false, bool includeIndex = false, string title = "")
        //{
        //}

        private void SetCellValue(ICell cell, object value, Schema.Domain.Attribute attr)
        {
            if (value != null)
            {
                if (attr != null && (attr.TypeIsMoney() || attr.TypeIsSmallMoney() || attr.TypeIsFloat() || attr.TypeIsDecimal() || attr.TypeIsInt() || attr.TypeIsSmallInt()))
                {
                    cell.SetCellValue(double.Parse((string)value));
                    cell.SetCellType(CellType.Numeric);
                }
                else
                {
                    cell.SetCellValue((string)value);
                }
            }
            else
            {
                cell.SetCellValue(string.Empty);
            }
        }
Exemplo n.º 2
0
        public static object WrapAttributeValue(this Entity entity, IEntityFinder entityFinder, Schema.Domain.Attribute attr, object value)
        {
            List <string> errors = new List <string>();

            if (value == null || value.ToString().IsEmpty())
            {
                return(null);
            }
            if (attr != null)
            {
                if (attr.TypeIsBit())
                {
                    if (value.ToString().IsInteger())// if value is 0/1
                    {
                        value = value.ToString() == "1";
                    }
                    else
                    {
                        var boolValue = true;
                        if (bool.TryParse(value.ToString(), out boolValue))
                        {
                            value = boolValue;
                        }
                        else//if (!(value is bool))
                        {
                            errors.Add(string.Format("{0}'s value({1}) is not valid, it's type should be 'bool'", attr.Name, value.ToString()));
                        }
                    }
                }
                else if (attr.TypeIsLookUp())
                {
                    if (value is EntityReference)
                    {
                        var er = value as EntityReference;
                        //是否存在该引用实体
                        if (!entityFinder.Exists(er.ReferencedEntityName))
                        {
                            errors.Add(string.Format("referenced entity '{0}' is not found by attribute '{1}'", er.ReferencedEntityName, attr.Name));
                        }
                    }
                    else
                    {
                        if (value.ToString().IsGuid())
                        {
                            var referencedEntity = entityFinder.FindById(attr.ReferencedEntityId.Value);
                            value = new EntityReference(referencedEntity.Name, Guid.Parse(value.ToString()));
                        }
                        else
                        {
                            errors.Add(string.Format("{0}'s value({1}) is not valid, it's type should be 'SDK.EntityReference'", attr.Name, value.ToString()));
                        }
                    }
                }
                else if (attr.TypeIsPickList())
                {
                    //是否正确的格式
                    if (!(value is OptionSetValue))
                    {
                        if (value.ToString().IsInteger())
                        {
                            value = new OptionSetValue(int.Parse(value.ToString()));
                        }
                        else
                        {
                            errors.Add(string.Format("{0}'s value({1}) is not valid, it's type should be 'SDK.OptionSetValue'", attr.Name, value.ToString()));
                        }
                    }
                    //是否存在该值
                }
                else if (attr.TypeIsOwner())
                {
                    //是否正确的格式
                    if (!(value is OwnerObject))
                    {
                        if (value.ToString().IsGuid())
                        {
                            value = new OwnerObject(OwnerTypes.SystemUser, Guid.Parse(value.ToString()));
                        }
                        else
                        {
                            errors.Add(string.Format("{0}'s value({1}) is not valid, it's type should be 'SDK.OwnerObject'", attr.Name, value.ToString()));
                        }
                    }
                    //是否存在该值
                }
                else if (attr.TypeIsState())
                {
                    if (value.ToString().IsInteger())// if value is 0/1
                    {
                        value = value.ToString() == "1";
                    }
                    else
                    {
                        var boolValue = true;
                        if (bool.TryParse(value.ToString(), out boolValue))
                        {
                            value = boolValue;
                        }
                        else//if (!(value is bool))
                        {
                            errors.Add(string.Format("{0}'s value({1}) is not valid, it's type should be 'bool'", attr.Name, value.ToString()));
                        }
                    }
                }
                else if (attr.TypeIsInt())
                {
                    //是否正确的格式
                    if (!value.ToString().IsInteger())
                    {
                        errors.Add(string.Format("{0}'s value({1}) is not valid, it's type should be 'int'", attr.Name, value.ToString()));
                    }
                }
                else if (attr.TypeIsFloat())
                {
                    //是否正确的格式
                    if (!value.ToString().IsNumeric())
                    {
                        errors.Add(string.Format("{0}'s value({1}) is not valid, it's type should be 'float'", attr.Name, value.ToString()));
                    }
                }
                else if (attr.TypeIsMoney())
                {
                    //是否正确的格式
                    if (!(value is Money))
                    {
                        if (value.ToString().IsNumeric())
                        {
                            value = new Money(decimal.Parse(value.ToString()));
                        }
                        else
                        {
                            errors.Add(string.Format("{0}'s value({1}) is not valid, it's type should be 'SDK.Money'", attr.Name, value.ToString()));
                        }
                    }
                }
                else if (attr.TypeIsDateTime())
                {
                    //是否正确的格式
                    if (!value.ToString().IsDateTime())
                    {
                        errors.Add(string.Format("{0}'s value({1}) is not valid, it's type should be 'datetime'", attr.Name, value.ToString()));
                    }
                }
            }
            if (errors.NotEmpty())
            {
                throw new XmsException(string.Join("\n", errors));
            }
            return(value);
        }
Exemplo n.º 3
0
 private ConditionExpression GetCondition(Schema.Domain.Attribute attr, object keyword, string entityAlias = "")
 {
     //数字类型
     if (keyword.ToString().IsNumeric() && (attr.TypeIsInt() ||
                                            attr.TypeIsFloat() ||
                                            attr.TypeIsDecimal() ||
                                            attr.TypeIsMoney() ||
                                            attr.TypeIsSmallMoney() ||
                                            attr.TypeIsSmallInt()
                                            ))
     {
         return(new ConditionExpression(GetSearchName(attr, entityAlias), GetConditionOperator(attr), keyword));
     }
     //日期类型
     else if ((attr.TypeIsDateTime() ||
               attr.TypeIsSmallDateTime()
               ))
     {
         if (DateTime.TryParse(keyword.ToString(), out DateTime d))
         {
             return(new ConditionExpression(GetSearchName(attr, entityAlias), GetConditionOperator(attr), keyword));
         }
     }
     //guid类型
     else if (attr.TypeIsPrimaryKey() ||
              attr.TypeIsLookUp() ||
              attr.TypeIsOwner() ||
              attr.TypeIsCustomer())
     {
         if (keyword.ToString().IsGuid())
         {
             return(new ConditionExpression(attr.Name, GetConditionOperator(attr), keyword));
         }
         return(new ConditionExpression(GetSearchName(attr, entityAlias), ConditionOperator.Like, keyword));
     }
     //选项类型
     else if ((attr.TypeIsState() ||
               attr.TypeIsBit() ||
               attr.TypeIsPickList() || attr.TypeIsStatus()))
     {
         if (keyword.ToString().IsInteger())//如果是数值
         {
             return(new ConditionExpression(entityAlias.IsEmpty() ? attr.Name : entityAlias + "." + attr.Name, GetConditionOperator(attr), keyword));
         }
         else
         {
             //按名称查找选项值
             //...
             if (attr.TypeIsState() || attr.TypeIsBit())
             {
                 if (attr.PickLists.IsEmpty())
                 {
                     attr.PickLists = _stringMapFinder.Query(n => n.Where(f => f.AttributeId == attr.AttributeId));
                 }
                 var value = attr.PickLists.Find(n => n.Name.IsCaseInsensitiveEqual(keyword.ToString()));
                 if (null != value)
                 {
                     keyword = value.Value;
                 }
             }
             else if (attr.TypeIsPickList() || attr.TypeIsStatus())
             {
                 if (attr.OptionSet == null)
                 {
                     attr.OptionSet = new OptionSet();//_optionSetFinder.FindById(attr.OptionSetId.Value);
                 }
                 var value = attr.OptionSet.Items.Find(n => n.Name.IsCaseInsensitiveEqual(keyword.ToString()));
                 if (null != value)
                 {
                     keyword = value.Value;
                 }
             }
         }
         //if (keyword.ToString().IsInteger())
         //{
         //    return new ConditionExpression(attr.Name, ConditionOperator.Equal, keyword);
         //}
     }
     //字符串类型
     else if ((attr.TypeIsNvarchar() ||
               attr.TypeIsVarchar() ||
               attr.TypeIsChar()))
     {
         return(new ConditionExpression(GetSearchName(attr, entityAlias), GetConditionOperator(attr), keyword));
     }
     return(null);
 }