示例#1
0
 public SelectedGuidItem(Guid id, string code, string name, SelectedGuidItemType type)
 {
     ID   = id;
     Code = code;
     Name = name;
     Type = type;
 }
示例#2
0
        public static bool set_element_value(string value, ref FormElement element)
        {
            if (string.IsNullOrEmpty(value))
            {
                value = string.Empty;
            }
            FormElementTypes type = element.Type.HasValue ? element.Type.Value : FormElementTypes.Text;

            switch (type)
            {
            case FormElementTypes.Text:
            case FormElementTypes.Select:
            case FormElementTypes.Checkbox:
                element.TextValue = value;
                return(!string.IsNullOrEmpty(element.TextValue));

            case FormElementTypes.Binary:
                element.BitValue = value.ToLower() == "true";
                return(true);

            case FormElementTypes.Date:
                if (value.ToLower() == "now")
                {
                    element.DateValue = DateTime.Now;
                }
                else
                {
                    DateTime dt = new DateTime();
                    if (DateTime.TryParse(value, out dt))
                    {
                        element.DateValue = dt;
                    }
                }
                return(element.DateValue.HasValue);

            case FormElementTypes.Node:
            case FormElementTypes.User:
                SelectedGuidItemType tp = type == FormElementTypes.Node ? SelectedGuidItemType.Node : SelectedGuidItemType.User;
                Guid id = Guid.Empty;
                if (Guid.TryParse(value, out id) && id != Guid.Empty)
                {
                    element.GuidItems.Add(new SelectedGuidItem(id, string.Empty, string.Empty, tp));
                }
                return(id != Guid.Empty);

            case FormElementTypes.Numeric:
                float flt = 0;
                if (float.TryParse(value, out flt))
                {
                    element.FloatValue = flt;
                }
                return(element.FloatValue.HasValue);
            }

            return(false);
        }
示例#3
0
        public static List <FormElement> get_form_elements(string strElements, bool formDesignMode = false)
        {
            try
            {
                List <FormElement> retList = new List <FormElement>();

                if (string.IsNullOrEmpty(strElements))
                {
                    return(retList);
                }

                Dictionary <string, object> dic = PublicMethods.fromJSON(Base64.decode(strElements));

                if (!dic.ContainsKey("Elements") || dic["Elements"].GetType() != typeof(ArrayList))
                {
                    return(retList);
                }

                foreach (Dictionary <string, object> elem in (ArrayList)dic["Elements"])
                {
                    FormElement newElement = new FormElement()
                    {
                        ElementID      = PublicMethods.parse_guid(PublicMethods.get_dic_value(elem, "ElementID")),
                        RefElementID   = PublicMethods.parse_guid(PublicMethods.get_dic_value(elem, "RefElementID")),
                        FormInstanceID = PublicMethods.parse_guid(PublicMethods.get_dic_value(elem, "InstanceID")),
                        Title          = PublicMethods.parse_string(PublicMethods.get_dic_value(elem, "Title"), defaultValue: null),
                        Name           = formDesignMode ? Base64.decode(PublicMethods.get_dic_value(elem, "Name", defaultValue: null)) :
                                         PublicMethods.get_dic_value(elem, "Name", defaultValue: null),
                        Filled         = PublicMethods.parse_bool(PublicMethods.get_dic_value(elem, "Filled"), defaultValue: false),
                        SequenceNumber = PublicMethods.parse_int(PublicMethods.get_dic_value(elem, "SequenceNumber"), defaultValue: -1),
                        Necessary      = PublicMethods.parse_bool(PublicMethods.get_dic_value(elem, "Necessary")),
                        UniqueValue    = PublicMethods.parse_bool(PublicMethods.get_dic_value(elem, "UniqueValue")),
                        Help           = PublicMethods.parse_string(PublicMethods.get_dic_value(elem, "Help"), defaultValue: null),
                        Info           = PublicMethods.parse_string(PublicMethods.get_dic_value(elem, "Info"), defaultValue: null),
                        Weight         = PublicMethods.parse_double(PublicMethods.get_dic_value(elem, "Weight")),
                        TextValue      = PublicMethods.parse_string(PublicMethods.get_dic_value(elem, "TextValue"), defaultValue: null),
                        FloatValue     = PublicMethods.parse_double(PublicMethods.get_dic_value(elem, "FloatValue")),
                        BitValue       = PublicMethods.parse_bool(PublicMethods.get_dic_value(elem, "BitValue")),
                        DateValue      = PublicMethods.parse_date(PublicMethods.get_dic_value(elem, "DateValue")),
                        AttachedFiles  = DocumentUtilities.get_files_info(PublicMethods.get_dic_value(elem, "Files"))
                    };

                    if (newElement.Type == FormElementTypes.Separator)
                    {
                        newElement.Necessary = null;
                    }
                    if (newElement.Type != FormElementTypes.Text && newElement.Type != FormElementTypes.Numeric)
                    {
                        newElement.UniqueValue = null;
                    }

                    FormElementTypes fet = FormElementTypes.Text;
                    if (Enum.TryParse <FormElementTypes>(PublicMethods.get_dic_value(elem, "Type"), out fet))
                    {
                        newElement.Type = fet;
                    }

                    if (elem.ContainsKey("GuidItems") && elem["GuidItems"] != null && elem["GuidItems"].GetType() == typeof(ArrayList))
                    {
                        SelectedGuidItemType tp = SelectedGuidItemType.None;
                        if (newElement.Type == FormElementTypes.Node)
                        {
                            tp = SelectedGuidItemType.Node;
                        }
                        else if (newElement.Type == FormElementTypes.User)
                        {
                            tp = SelectedGuidItemType.User;
                        }

                        foreach (Dictionary <string, object> d in (ArrayList)elem["GuidItems"])
                        {
                            newElement.GuidItems.Add(new SelectedGuidItem(Guid.Parse((string)d["ID"]), code: string.Empty,
                                                                          name: Base64.decode((string)d["Name"]), type: tp));
                        }
                    }

                    if (newElement.ElementID.HasValue && !formDesignMode && (!newElement.Filled.HasValue || !newElement.Filled.Value))
                    {
                        newElement.RefElementID = newElement.ElementID;
                        newElement.ElementID    = Guid.NewGuid();
                    }

                    if (newElement.AttachedFiles != null)
                    {
                        for (var i = 0; i < newElement.AttachedFiles.Count; ++i)
                        {
                            newElement.AttachedFiles[i].OwnerID   = newElement.ElementID;
                            newElement.AttachedFiles[i].OwnerType = FileOwnerTypes.FormElement;
                        }
                    }

                    retList.Add(newElement);
                }

                return(retList);
            }
            catch { return(new List <FormElement>()); }
        }
示例#4
0
 public SelectedGuidItem()
 {
     Type = SelectedGuidItemType.None;
 }