/// <summary> /// Creates a new page and adds it to the page collection /// </summary> /// <param name="name">Name of the page</param> /// <param name="position">Position of the page</param> /// <returns>The new page object</returns> public Page CreatePage(string name, int position) { #region Input Validation if (name == null) { throw new ArgumentNullException("name"); } if (position < 0) { throw new ArgumentOutOfRangeException("Position"); } #endregion Input Validation Page page = null; this.pages = null; this.project.Save(); page = new Page(this, 0); page.Name = name; page.Position = position; page.Id = 0; page.SaveToDb(); return page; }
/// <summary> /// Start the conversion process /// </summary> public void Convert() { if (SetStatus != null) { SetStatus("Creating form..."); } project.CreateView(formName, false); View destinationView = project.Views[formName]; List<int> pages = new List<int>(); foreach(ColumnConversionInfo cci in columnMapping) { if(!pages.Contains(cci.PageNumber)) { pages.Add(cci.PageNumber); } } pages.Sort(); if (SetStatus != null) { SetStatus("Creating pages..."); } for(int i = 0; i < pages.Count; i++) { Page page = new Page(destinationView); page.Name = "Page " + (i + 1).ToString(); page.Position = i; destinationView.Pages.Add(page); destinationView.SaveToDb(); page.SaveToDb(); } if (SetStatus != null) { SetStatus("Creating fields..."); } foreach(ColumnConversionInfo cci in columnMapping) { if (SetStatus != null) { SetStatus("Creating field " + cci.DestinationColumnName + "..."); } Page page = destinationView.GetPageByPosition(cci.PageNumber - 1); Field field = null; switch(cci.FieldType) { case MetaFieldType.Checkbox: case MetaFieldType.YesNo: case MetaFieldType.Text: case MetaFieldType.Multiline: case MetaFieldType.Date: case MetaFieldType.DateTime: case MetaFieldType.Time: case MetaFieldType.LegalValues: case MetaFieldType.Number: field = page.CreateField(cci.FieldType); break; default: throw new ApplicationException("Invalid field type"); //break; } SetFieldProperties(field, cci); page.AddNewField((RenderableField)field); } destinationView.SaveToDb(); }