Example #1
0
        /// <summary>
        /// Adds a field for every argument that the DataMethos needs in order to be invoked
        /// </summary>
        /// <param name="method">DataMethod which parameters will be used as fields</param>
        public override void AddFields(MethodInfo method)
        {
            if (method == null)
            {
                throw new ArgumentNullException("dmethod");
            }
            uint order = 0;

            //add a field for each parameter
            foreach (ParameterInfo param in method.GetParameters())
            {
                FormField field;

                field = ObjectForm.CreateField(param.ParameterType);

                //set common values
                field.Container           = this;
                field.Name                = param.Name;
                field.Required            = !param.IsOptional && !param.IsOut;
                field.CaptionControl.Text = new System.Resources.ResourceManager(method.DeclaringType).GetString(method.GetFriendlyFullName().Replace('.', '_') + '_' + param.Name);
                field.SortOrder           = order++;

                Fields.Add(field);
            }
        }
		/// <summary>
		/// Initializes a new instance of the <see cref="OKHOSTING.ORM.UI.InsertController"/> class.
		/// <para xml:lang="es">
		/// Inicilaiza una nueva instancia de la clase OKHOSTING.ORM.UI.InsertController, para el objeto especificado.
		/// </para>
		/// </summary>
		/// <param name="instance">Instance.</param>
		public InsertController(object instance)
		{
			if (instance == null)
			{
				throw new ArgumentNullException(nameof(instance));
			}

			DataType = instance.GetType();
			Instance = instance;
			Form = new ObjectForm();
		}
		/// <summary>
		/// Initializes a new instance of the <see cref="OKHOSTING.ORM.UI.InsertController"/> class.
		/// <para xml:lang="es">
		/// Inicializa una nueva instancia de la clase OKHOSTING.ORM.UI.InsertController, para el DataTipe especificado.
		/// </para>
		/// </summary>
		public InsertController(DataType dataType)
		{
			if (dataType == null)
			{
				throw new ArgumentNullException(nameof(dataType));
			}

			DataType = dataType;
			Instance = Activator.CreateInstance(DataType.InnerType);
			Form = new ObjectForm();
		}
		/// <summary>
		/// Initializes a new instance of the <see cref="OKHOSTING.ORM.UI.UpdateController"/> class, for the object specified.
		/// <para xml:lang="es">
		/// Inicializa una nueva instancia de la clase OKHOSTING.ORM.UI.UpdateController, para el objeto especificado.
		/// </para>
		/// </summary>
		/// <param name="instance">Instance.</param>
		public UpdateController(object instance)
		{
			if (instance == null)
			{
				throw new ArgumentNullException(nameof(instance));
			}

			using (var db = DataBase.CreateDataBase())
			{
				Instance = db.SelectInherited(instance).Last();
			}

			DataType = Instance.GetType();
			Form = new ObjectForm();
			Form.RepeatColumns = 4;
		}
        /// <summary>
        /// Creates a field for a DataMember
        /// </summary>
        public void AddFields(MemberInfo member)
        {
            //if there's no values defined, exit
            if (member == null)
            {
                throw new ArgumentNullException(nameof(member));
            }

            //field
            FormField fieldMin, fieldMax;
            Type      returnType = MemberExpression.GetReturnType(member);

            //DateTime and numeric, create range fields
            if (returnType.Equals(typeof(DateTime)) || returnType.IsNumeric())
            {
                //create fields
                fieldMin = ObjectForm.CreateField(returnType);
                fieldMax = ObjectForm.CreateField(returnType);

                //set id
                fieldMin.Name += "_0";
                fieldMax.Name += "_1";

                //labels
                fieldMin.CaptionControl.Text += Resources.Strings.OKHOSTING_ORM_UI_Forms_FilterDataForm_Min;
                fieldMax.CaptionControl.Text += Resources.Strings.OKHOSTING_ORM_UI_Forms_FilterDataForm_Max;

                //set container
                fieldMin.Container = this;
                fieldMax.Container = this;

                //not required
                fieldMin.Required = false;
                fieldMax.Required = false;

                //set to false always
                fieldMin.TableWide = false;
                fieldMax.TableWide = false;

                //add
                Fields.Add(fieldMin);
                Fields.Add(fieldMax);
            }
            //single value fields
            else
            {
                //create field
                fieldMin = ObjectForm.CreateField(returnType);

                //set container
                fieldMin.Container = this;

                //not required
                fieldMin.Required = false;

                //set to false always
                fieldMin.TableWide = false;

                //add
                Fields.Add(fieldMin);
            }
        }