示例#1
0
        public async Task SetValue(BusinessBase obj, string value)
        {
            if (obj.IsReadOnly(FieldName) || value == null)
            {
                return;
            }

            if (BasicType == BasicType.Text || BasicType == BasicType.TextLong)
            {
                value = value.NoNullString().Trim();

                if (IsNullable && (value == "" || (value == "0" && Type == PropertyInputType.select)))
                {
                    // strings as IDs !!! :)
                    if (!(obj[FieldName] == null))
                    {
                        obj[FieldName] = null;
                    }
                }
                else
                {
                    if (obj[FieldName].NoNullString() != value)
                    {
                        obj[FieldName] = value;
                    }
                }
            }

            else if (Type == PropertyInputType.checkbox || BasicType == BasicType.Bit)
            {
                if (obj[FieldName].NoNullBool() != (value == "1"))
                {
                    obj[FieldName] = (value == "1");
                }
            }

            else if (Type == PropertyInputType.datetimeHHmm || Type == PropertyInputType.datetimeHHmmss || Type == PropertyInputType.date)
            {
                try
                {
                    if (value != "")
                    {
                        AppUser us = await obj.CurrentUser();

                        DateTime d;
                        string   _format = "yyyy/MM/dd";

                        if (Type == PropertyInputType.datetimeHHmm)
                        {
                            _format += " HH:mm";
                        }
                        else if (Type == PropertyInputType.datetimeHHmmss)
                        {
                            _format += " HH:mm:ss";
                        }

                        try
                        {
                            d = DateTime.ParseExact(value, _format, us.Culture);
                        }
                        catch
                        {
                            d = DateTime.Parse(value, us.Culture);
                        }

                        if (obj[FieldName] == null)
                        {
                            obj[FieldName] = d;
                        }
                        else
                        {
                            if ((DateTime)obj[FieldName] != d)
                            {
                                obj[FieldName] = d;
                            }
                        }
                    }
                    else
                    {
                        if (!(obj[FieldName] == null))
                        {
                            obj[FieldName] = null;
                        }
                    }
                }
                catch
                {
                    if (!(obj[FieldName] == null))
                    {
                        obj[FieldName] = null;
                    }
                }
            }

            else if (BasicType == BasicType.GUID)
            {
                Guid newGuid = Guid.Empty;

                try
                {
                    newGuid = Guid.Parse(value.ToString());
                    if ((Guid)obj[FieldName] != newGuid)
                    {
                        obj[FieldName] = newGuid;
                    }
                }
                catch
                {
                }
            }

            else if (BasicType == BasicType.Number)
            {
                try
                {
                    Lib.Numerize(ref value);

                    if (obj[FieldName] == null && !IsNullable)
                    {
                        obj[FieldName] = 0;
                    }

                    if (IsNullable && (value == "" || (value == "0" && Type == PropertyInputType.select)))
                    {
                        if (!(obj[FieldName] == null))
                        {
                            obj[FieldName] = null;
                        }
                    }
                    else
                    {
                        //value = value.NoNullDouble().ToString();

                        try
                        {
                            if (Double.Parse(value) == 0)
                            {
                                value = "0";
                            }
                        }
                        catch
                        {
                            value = "0";
                        }
                        if (obj[FieldName] == null && value != "")
                        {
                            obj[FieldName] = 0;
                        }

                        if (DataType == typeof(System.Int32))
                        {
                            int tmp = Int32.Parse(value);

                            if ((int)obj[FieldName] != tmp)
                            {
                                obj[FieldName] = tmp;
                            }
                        }
                        if (DataType == typeof(System.Int64))
                        {
                            long tmp = Int32.Parse(value);

                            if ((long)obj[FieldName] != tmp)
                            {
                                obj[FieldName] = tmp;
                            }
                        }
                        else if (DataType == typeof(System.Int16))
                        {
                            short tmp = Int16.Parse(value);

                            if ((short)obj[FieldName] != tmp)
                            {
                                obj[FieldName] = tmp;
                            }
                        }
                        if (DataType == typeof(System.Single))
                        {
                            Single tmp = Single.Parse(value);

                            if ((float)obj[FieldName] != tmp)
                            {
                                obj[FieldName] = tmp;
                            }
                        }
                        if (DataType == typeof(System.Double))
                        {
                            Double tmp = Double.Parse(value);

                            if ((double)obj[FieldName] != tmp)
                            {
                                obj[FieldName] = tmp;
                            }
                        }
                        if (DataType == typeof(System.Decimal))
                        {
                            Decimal tmp = Decimal.Parse(value);

                            if ((decimal)obj[FieldName] != tmp)
                            {
                                obj[FieldName] = tmp;
                            }
                        }
                    }
                }
                catch
                {
                    //Invalid user input
                    //value = "0";
                    //obj[PropertyName] = 0;
                }
            }
        }
示例#2
0
        public async Task <string> GetValue(BusinessBase obj)
        {
            string value = "";

            if (Type == PropertyInputType.date)
            {
                if (!(obj[FieldName] == null))
                {
                    if (obj.IsReadOnly(FieldName))
                    {
                        value = String.Format(Format, (DateTime)obj[FieldName]);
                    }
                    else
                    {
                        value = ((DateTime)obj[FieldName]).ToString("yyyy/MM/dd");
                    }
                }
            }
            else if (Type == PropertyInputType.datetimeHHmm)
            {
                if (!(obj[FieldName] == null))
                {
                    if (obj.IsReadOnly(FieldName))
                    {
                        value = String.Format(Format, (DateTime)obj[FieldName]);
                    }
                    else
                    {
                        value = ((DateTime)obj[FieldName]).ToString("yyyy/MM/dd HH:mm");
                    }
                }
            }
            else if (Type == PropertyInputType.datetimeHHmmss)
            {
                if (!(obj[FieldName] == null))
                {
                    if (obj.IsReadOnly(FieldName))
                    {
                        value = String.Format(Format, (DateTime)obj[FieldName]);
                    }
                    else
                    {
                        value = ((DateTime)obj[FieldName]).ToString("yyyy/MM/dd HH:mm:ss");
                    }
                }
            }
            else if (Type == PropertyInputType.checkbox || BasicType == BasicType.Bit)
            {
                value = obj[FieldName].NoNullBool() ? "1" : "0";
            }
            else if (Type == PropertyInputType.select)
            {
                if (obj[FieldName] == null)
                {
                    value = "0";
                }
                else
                {
                    value = obj[FieldName].ToString();
                }

                if (Required && value == "0" && !IsObjectView)
                {
                    // First element
                    ListTable dt = await obj.BusinessProvider.ListProvider.GetList(obj.ContextProvider, ListObjectName, ListName);

                    if (dt.ToClient.Count > 0)
                    {
                        value = dt.First[0].ToString();
                    }
                }
            }
            else
            {
                if (Format != "")
                {
                    value = String.Format(Format, obj[FieldName]);
                }
                else
                {
                    value = obj[FieldName].NoNullString();
                }
            }

            return(value);
        }