/// <summary> /// Insert a GlobalRecordIdField record into the metaFields table. /// </summary> /// <param name="field">GlobalRecordIdField</param> /// <returns>Returns the Id of the last GlobalRecordIdField added.</returns> public int CreateField(GlobalRecordIdField field) { try { #region InputValidation if (field == null) { throw new ArgumentNullException("GlobalRecordIdField"); } #endregion Query insertQuery = db.CreateQuery("insert into metaFields([DataTableName], [ViewId], [UniqueId], [FieldTypeId], [Name]) " + "values (@DataTableName, @ViewId, @UniqueId, @FieldTypeId, @Name)"); insertQuery.Parameters.Add(new QueryParameter("@DataTableName", DbType.String, field.TableName)); insertQuery.Parameters.Add(new QueryParameter("@ViewId", DbType.Int32, field.GetView().Id)); insertQuery.Parameters.Add(new QueryParameter("@UniqueId", DbType.Guid, field.UniqueId)); insertQuery.Parameters.Add(new QueryParameter("@FieldTypeId", DbType.Int32, (int)field.FieldType)); insertQuery.Parameters.Add(new QueryParameter("@Name", DbType.String, field.Name)); db.ExecuteNonQuery(insertQuery); return GetMaxFieldId(field.GetView().Id); } finally { } }
/// <summary> /// Creates a view in a specified project /// </summary> /// <old-param name="isrelatedview">Whether or not this view is a related (child) view</old-param> /// <old-param name="viewname">Name of the view</old-param> public void InsertView(View view) { #region Input Validation if (view == null) { throw new ArgumentNullException("view"); } #endregion Input Validation try { Query insertQuery = db.CreateQuery("insert into metaViews([Name], [IsRelatedView], [CheckCode], [Width], [Height], [Orientation], [LabelAlign] ) values (@Name, @IsRelatedView, @CheckCode, @Width, @Height, @Orientation, @LabelAlign)"); insertQuery.Parameters.Add(new QueryParameter("@Name", DbType.String, view.Name)); insertQuery.Parameters.Add(new QueryParameter("@IsRelatedView", DbType.Boolean, view.IsRelatedView)); insertQuery.Parameters.Add(new QueryParameter("@CheckCode", DbType.String, view.CheckCode)); insertQuery.Parameters.Add(new QueryParameter("@Width", DbType.Int32, view.PageWidth)); insertQuery.Parameters.Add(new QueryParameter("@Height", DbType.Int32, view.PageHeight)); insertQuery.Parameters.Add(new QueryParameter("@Orientation", DbType.String, view.PageOrientation)); insertQuery.Parameters.Add(new QueryParameter("@LabelAlign", DbType.String, view.PageLabelAlign)); db.ExecuteNonQuery(insertQuery); view.Id = this.GetMaxViewId(); RecStatusField recStatusField = new RecStatusField(view); UniqueKeyField uniqueKeyField = new UniqueKeyField(view); GlobalRecordIdField globalRecordIdField = new GlobalRecordIdField(view); uniqueKeyField.SaveToDb(); recStatusField.SaveToDb(); globalRecordIdField.SaveToDb(); if (view.IsRelatedView) { ForeignKeyField foreignKeyField = new ForeignKeyField(view); foreignKeyField.SaveToDb(); } } catch (Exception ex) { throw new GeneralException("Could not create view in the database", ex); } }
/// <summary> /// Fills the listbox with controls to be searched for /// </summary> private void BuildControlsList() { lbxSearchFields.Items.Clear(); if (view.Pages.Count > 0) { foreach (Page page in view.Pages) { foreach (Epi.Fields.Field field in page.Fields) { if (!(field is UniqueKeyField) && !(field is RecStatusField) && !(field is MirrorField) && !(field is RelatedViewField) && !(field is LabelField) && !(field is GridField) && !(field is GroupField) && !(field is CommandButtonField)) { if (field is IPatternable) { lbxSearchFields.Items.Add(new SearchListBoxItem(field.Name.ToString(), field.Id, field.FieldType.ToString(), ((IPatternable)field).Pattern, string.Empty)); } else { lbxSearchFields.Items.Add(new SearchListBoxItem(field.Name.ToString(), field.Id, field.FieldType.ToString(), string.Empty, string.Empty)); } } } } //--Ei-139 RecStatusField recstatus = new RecStatusField(view); lbxSearchFields.Items.Add(new SearchListBoxItem(recstatus.Name.ToString(), recstatus.Id, recstatus.FieldType.ToString(), string.Empty, string.Empty)); GlobalRecordIdField globalfld = new GlobalRecordIdField(view); lbxSearchFields.Items.Add(new SearchListBoxItem(globalfld.Name.ToString(), globalfld.Id, globalfld.FieldType.ToString(), string.Empty, string.Empty)); FirstSaveTimeField firstsavetime = new FirstSaveTimeField(view); lbxSearchFields.Items.Add(new SearchListBoxItem(firstsavetime.Name.ToString(), firstsavetime.Id, firstsavetime.FieldType.ToString(), string.Empty, string.Empty)); LastSaveTimeField lastsavetime = new LastSaveTimeField(view); lbxSearchFields.Items.Add(new SearchListBoxItem(lastsavetime.Name.ToString(), lastsavetime.Id, lastsavetime.FieldType.ToString(), string.Empty, string.Empty)); //-- } }
/// <summary> /// Gets all the fields in a view /// </summary> /// <param name="view">A view object</param> /// <returns>A collection of fields</returns> public virtual FieldCollectionMaster GetFields(View view) { FieldCollectionMaster fields = new FieldCollectionMaster(); try { DataTable table = GetFieldsAsDataTable(view); foreach (DataRow row in table.Rows) { MetaFieldType fieldTypeId = (MetaFieldType)row[ColumnNames.FIELD_TYPE_ID]; Field field = null; switch (fieldTypeId) { case MetaFieldType.Text: field = new SingleLineTextField(view); field.LoadFromRow(row); break; case MetaFieldType.LabelTitle: field = new LabelField(view); field.LoadFromRow(row); break; case MetaFieldType.TextUppercase: field = new UpperCaseTextField(view); field.LoadFromRow(row); break; case MetaFieldType.Multiline: field = new MultilineTextField(view); field.LoadFromRow(row); break; case MetaFieldType.Number: field = new NumberField(view); field.LoadFromRow(row); break; case MetaFieldType.PhoneNumber: field = new PhoneNumberField(view); field.LoadFromRow(row); break; case MetaFieldType.Date: field = new DateField(view); field.LoadFromRow(row); break; case MetaFieldType.Time: field = new TimeField(view); field.LoadFromRow(row); break; case MetaFieldType.DateTime: field = new DateTimeField(view); field.LoadFromRow(row); break; case MetaFieldType.Checkbox: field = new CheckBoxField(view); field.LoadFromRow(row); break; case MetaFieldType.YesNo: field = new YesNoField(view); field.LoadFromRow(row); break; case MetaFieldType.Option: field = new OptionField(view); field.LoadFromRow(row); break; case MetaFieldType.CommandButton: field = new CommandButtonField(view); field.LoadFromRow(row); break; case MetaFieldType.Image: field = new ImageField(view); field.LoadFromRow(row); break; case MetaFieldType.Mirror: field = new MirrorField(view); field.LoadFromRow(row); break; case MetaFieldType.Grid: field = new GridField(view); field.LoadFromRow(row); break; case MetaFieldType.Group: field = new GroupField(view); field.LoadFromRow(row); break; case MetaFieldType.GUID: field = new GUIDField(view); field.LoadFromRow(row); break; case MetaFieldType.LegalValues: field = new DDLFieldOfLegalValues(view); field.LoadFromRow(row); break; case MetaFieldType.Codes: field = new DDLFieldOfCodes(view); ((DDLFieldOfCodes)field).LoadFromRow(row); //zack break; case MetaFieldType.List: field = new DDListField(view); ((DDListField)field).LoadFromRow(row); break; case MetaFieldType.CommentLegal: field = new DDLFieldOfCommentLegal(view); field.LoadFromRow(row); break; case MetaFieldType.Relate: field = new RelatedViewField(view); field.LoadFromRow(row); break; case MetaFieldType.RecStatus: field = new RecStatusField(view); field.LoadFromRow(row); break; case MetaFieldType.UniqueKey: field = new UniqueKeyField(view); field.LoadFromRow(row); break; case MetaFieldType.ForeignKey: field = new ForeignKeyField(view); field.LoadFromRow(row); break; case MetaFieldType.GlobalRecordId: field = new GlobalRecordIdField(view); field.LoadFromRow(row); break; default: throw new ApplicationException("Invalid Field Type"); } // Note: This check ideally shouldn't be necessary, but Epi 3.5.1 and previous versions actually do allow duplicate field names for group fields. if (fields.Contains(field)) { Logger.Log(DateTime.Now + ": " + string.Format("The {0} field with name \"{1}\" already exists in {2}. This field has not been imported.", field.GetType().ToString(), field.Name, view.Name)); } else { fields.Add(field); } } } catch (Exception ex) { } return (fields); }
/// <summary> /// Insert a GlobalRecordIdField record into the metaFields table. /// </summary> /// <param name="field">Global Record Id Field.</param> /// <returns>Returns the Id of the last GlobalRecordIdField added.</returns> public int CreateField(GlobalRecordIdField field) { throw new System.ApplicationException("Not implemented"); }