public ActionResult EditColumn(DataSetSchemaColumn dsColumn, string categoryName, string schemaName) { try { if (!ModelState.IsValid) { ViewBag.SchemaName = schemaName; ViewBag.CategoryName = categoryName; return(View("AddColumn", dsColumn)); } _dataSetSchemaColumnService.Save(dsColumn); ViewBag.Message = string.Format("<p class='note'>Changes to column {0} successfully saved.</p>", dsColumn.Title); return(Redirect(string.Format("/Admin/Schema/{0}/{1}/Edit?showfields=2", categoryName, schemaName))); } catch (Exception ex) { Elmah.ErrorLog.GetDefault(null).Log(new Elmah.Error(ex)); ViewBag.SchemaName = schemaName; ViewBag.CategoryName = categoryName; ViewBag.Message = string.Format("<p class='warning'>Unable to save column. {0}.</p>", ex.Message); ViewBag.AlreadySorted = IsAlreadySorted(schemaName); var col = _dataSetSchemaColumnService.Get(categoryName, schemaName, dsColumn.Title); return(View("AddColumn", col)); } }
public void Create_when_schema_column_type_not_latlng_repository_inserts_1_column_item() { //arrange var definition = new DataSetSchemaDefinition() { TableName = "tablename", Columns = new List <DataSetSchemaColumn>() }; var col = new DataSetSchemaColumn() { Type = "", SchemaDefinition = definition }; var mock = new Mock <IDataSetSchemaColumnSqlRepo>(); mock.Setup(x => x.CheckSqlColumnExists("tablename", "")).Returns(false); _sqlrepo = mock.Object; var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Create(col); var result = _repositoryDataSetSchemaColumn.GetAll().ToList(); //assert Assert.AreEqual(1, result.Count); //cleanup _repositoryDataSetSchemaColumn.Delete(col); }
public void Delete_will_remove_column_from_repository() { //arrange var originalCol = new DataSetSchemaColumn() { Id = 1, IsStandardisedSchemaUrl = false, ColumnName = "columnname", SchemaDefinition = new DataSetSchemaDefinition() { TableName = "tablename" } }; _repositoryDataSetSchemaColumn.Add(originalCol); var mock = new Mock <IDataSetSchemaColumnSqlRepo>(); mock.Setup(x => x.CheckSqlColumnExists(originalCol.SchemaDefinition.TableName, originalCol.ColumnName)) .Returns(true); _sqlrepo = mock.Object; var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Delete(originalCol); var result = _repositoryDataSetSchemaColumn.GetQuery().FirstOrDefault(x => x.Id == originalCol.Id); //assert Assert.AreEqual(null, result); //cleanup _repositoryDataSetSchemaColumn.Delete(originalCol); _sqlrepo = null; }
public void Create_when_schema_column_name_exists_in_exiting_schemadefinition_columns_throws_exception_a_column_columnname_already_exists_in_tablename() { //arrange var definition = new DataSetSchemaDefinition() { TableName = "tablename", Columns = new List <DataSetSchemaColumn>() { new DataSetSchemaColumn() { ColumnName = "Latitude" } } }; var col = new DataSetSchemaColumn() { Type = "lat/lng", SchemaDefinition = definition }; var mock = new Mock <IDataSetSchemaColumnSqlRepo>(); mock.Setup(x => x.CheckSqlColumnExists("tablename", "Latitude")).Returns(false); mock.Setup(x => x.CheckSqlColumnExists("tablename", "Longitude")).Returns(false); _sqlrepo = mock.Object; var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Create(col); //assert -- throwing exception //cleanup }
public ActionResult AddColumn(DataSetSchemaColumn column, string schemaName, string categoryName) { try { var schemaDetails = _dataSetSchemaService.Get(schemaName); if (!ModelState.IsValid) { ViewBag.SchemaName = schemaName; ViewBag.CategoryName = categoryName; ViewBag.AlreadySorted = IsAlreadySorted(schemaName); ViewBag.IsError = true; return(View("AddColumn", column)); } column.SchemaDefinition = schemaDetails.Definition; _dataSetSchemaColumnService.Create(column); return(Redirect(string.Format("/Admin/Schema/{0}/{1}/Edit?showfields=2", categoryName, schemaName))); } catch (Exception ex) { Elmah.ErrorLog.GetDefault(null).Log(new Elmah.Error(ex)); ViewBag.SchemaName = schemaName; ViewBag.CategoryName = categoryName; ViewBag.AlreadySorted = IsAlreadySorted(schemaName); ViewBag.Message = string.Format("<p class='warning'>Unable to create field definition. {0}</p>", ex.Message); return(View()); } }
public void Delete(DataSetSchemaColumn column) { //Delete column from sql table if (_dataSetSchemaColumnSqlRepo.CheckSqlColumnExists(column.SchemaDefinition.TableName, column.ColumnName)) { _dataSetSchemaColumnSqlRepo.DeleteColumn(column); } //Delete column from schema def _repository.Delete(column); _repository.SaveChanges(); }
public void DeleteColumn(DataSetSchemaColumn column) { using (var cn = new SqlConnection(ConfigurationManager.ConnectionStrings["DataShareContext"].ConnectionString)) { cn.Open(); var server = new Server(new ServerConnection(cn)); var db = server.Databases[cn.Database]; if (db.Tables.Contains(column.SchemaDefinition.TableName)) { var dbtable = db.Tables[column.SchemaDefinition.TableName]; var dbColumn = dbtable.Columns[column.ColumnName]; dbColumn.Drop(); } } }
//public void AddColumn(DataSetSchemaColumn column, DataType sqlDataType) //{ // using (var cn = new SqlConnection(ConfigurationManager.ConnectionStrings["DataShareContext"].ConnectionString)) // { // cn.Open(); // var server = new Server(new ServerConnection(cn)); // var db = server.Databases[cn.Database]; // var dbTable = db.Tables[column.SchemaDefinition.TableName]; // var newColumn = new Column(dbTable, column.ColumnName) // { // DataType = sqlDataType // }; // dbTable.Columns.Add(newColumn); // dbTable.Alter(); // } //} public void AddColumn(DataSetSchemaColumn column, string sqlDataType, int maxLength) { using (var cn = new SqlConnection(ConfigurationManager.ConnectionStrings["DataShareContext"].ConnectionString)) { cn.Open(); var server = new Server(new ServerConnection(cn)); var db = server.Databases[cn.Database]; var dbTable = db.Tables[column.SchemaDefinition.TableName]; var newColumn = new Column(dbTable, column.ColumnName) { DataType = GetDataType(sqlDataType, maxLength) }; dbTable.Columns.Add(newColumn); dbTable.Alter(); } }
private void UpdateColumnMaxSize(DataSetSchemaColumn column, int newSize) { if (!SqlColumnExists(column.SchemaDefinition.TableName, column.ColumnName)) { return; } using (var cn = new SqlConnection(ConfigurationManager.ConnectionStrings["DataShareContext"].ConnectionString)) { cn.Open(); var server = new Server(new ServerConnection(cn)); var db = server.Databases[cn.Database]; var dbTable = db.Tables[column.SchemaDefinition.TableName]; dbTable.Columns[column.ColumnName].DataType = DataType.NVarChar(newSize); dbTable.Alter(); } }
private void AddColumn(DataSetSchemaColumn column, string sqlDataType, int maxLength = 0) { var columnName = string.IsNullOrEmpty(column.ColumnName) ? column.Title.RemovePunctuationAndSpacing(false) : column.ColumnName.RemovePunctuationAndSpacing(false); if (!SqlColumnExists(column.SchemaDefinition.TableName, columnName) && !column.SchemaDefinition.Columns.Exists(c => c.ColumnName == columnName)) { column.ColumnName = columnName; //add physical column to table _dataSetSchemaColumnSqlRepo.AddColumn(column, sqlDataType, maxLength); //add entry to definition table _repository.Add(column); _repository.SaveChanges(); } else { throw new Exception(String.Format("A column named {0} already exists in {1}.", columnName, column.SchemaDefinition.TableName)); } }
public void Save_when_column_isstandardisedurl_is_true_column_minnumber_is_not_updated() { //arrange var originalCol = new DataSetSchemaColumn() { Id = 1, IsStandardisedSchemaUrl = true, MinNumber = 200 }; var colToChange = new DataSetSchemaColumn() { Id = 1, MinNumber = 300 }; _repositoryDataSetSchemaColumn.Add(originalCol); var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Save(colToChange); //assert Assert.AreEqual(200, originalCol.MinNumber); //cleanup _repositoryDataSetSchemaColumn.Delete(originalCol); }
public void Save_when_column_isstandardisedurl_is_true_column_isRequired_is_not_updated() { //arrange var originalCol = new DataSetSchemaColumn() { Id = 1, IsStandardisedSchemaUrl = true, IsRequired = true }; var colToChange = new DataSetSchemaColumn() { Id = 1, IsRequired = false }; _repositoryDataSetSchemaColumn.Add(originalCol); var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Save(colToChange); //assert Assert.AreEqual(true, originalCol.IsRequired); //cleanup _repositoryDataSetSchemaColumn.Delete(originalCol); }
public void Save_column_istotalisable_is_updated() { //arrange var originalCol = new DataSetSchemaColumn() { Id = 1, IsTotalisable = true }; var colToChange = new DataSetSchemaColumn() { Id = 1, IsTotalisable = false }; _repositoryDataSetSchemaColumn.Add(originalCol); var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Save(colToChange); //assert Assert.AreEqual(false, originalCol.IsTotalisable); //cleanup _repositoryDataSetSchemaColumn.Delete(originalCol); }
public void Save_when_helptext_is_null_column_helptext_is_emptystring() { //arrange var originalCol = new DataSetSchemaColumn() { Id = 1 }; var colToChange = new DataSetSchemaColumn() { Id = 1, HelpText = null }; _repositoryDataSetSchemaColumn.Add(originalCol); var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Save(colToChange); //assert Assert.AreEqual("", originalCol.HelpText); //cleanup _repositoryDataSetSchemaColumn.Delete(originalCol); }
public void Save_when_column_isstandardisedurl_is_false_and_linkeddatauri_is_null_column_linkeddatauri_is_empty_string() { //arrange var originalCol = new DataSetSchemaColumn() { Id = 1, IsStandardisedSchemaUrl = false, LinkedDataUri = "unchanged-linkeduri" }; var colToChange = new DataSetSchemaColumn() { Id = 1, LinkedDataUri = null }; _repositoryDataSetSchemaColumn.Add(originalCol); var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Save(colToChange); //assert Assert.AreEqual("", originalCol.LinkedDataUri); //cleanup _repositoryDataSetSchemaColumn.Delete(originalCol); }
public void Save_when_column_isstandardisedurl_is_false_column_maxcurrency_is_updated() { //arrange var originalCol = new DataSetSchemaColumn() { Id = 1, IsStandardisedSchemaUrl = false, MaxCurrency = 200 }; var colToChange = new DataSetSchemaColumn() { Id = 1, MaxCurrency = 300 }; _repositoryDataSetSchemaColumn.Add(originalCol); var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Save(colToChange); //assert Assert.AreEqual(300, originalCol.MaxCurrency); //cleanup _repositoryDataSetSchemaColumn.Delete(originalCol); }
public void Save_when_column_isstandardisedurl_is_true_column_maxdate_is_not_updated() { //arrange var originalCol = new DataSetSchemaColumn() { Id = 1, IsStandardisedSchemaUrl = true, MaxDate = new DateTime(1900, 1, 1) }; var colToChange = new DataSetSchemaColumn() { Id = 1, MaxDate = new DateTime(2000, 1, 1) }; _repositoryDataSetSchemaColumn.Add(originalCol); var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Save(colToChange); //assert Assert.AreEqual(new DateTime(1900, 1, 1), originalCol.MaxDate); //cleanup _repositoryDataSetSchemaColumn.Delete(originalCol); }
public void Save_when_column_type_text_and_maxsize_is_larger_than_current_max_size_updates() { //arrange var originalCol = new DataSetSchemaColumn() { Id = 1, MaxSize = 100 }; var colToChange = new DataSetSchemaColumn() { Id = 1, MaxSize = 300 }; _repositoryDataSetSchemaColumn.Add(originalCol); var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Save(colToChange); //assert Assert.AreEqual(300, originalCol.MaxSize); //cleanup _repositoryDataSetSchemaColumn.Delete(originalCol); }
public void Save_when_column_isstandardisedurl_is_false_and_linkeddataurivalue_does_not_contain_http_or_https_column_linkeddatauri_is_prefixed_with_http() { //arrange var originalCol = new DataSetSchemaColumn() { Id = 1, IsStandardisedSchemaUrl = false, LinkedDataUri = "unchanged-linkeduri" }; var colToChange = new DataSetSchemaColumn() { Id = 1, LinkedDataUri = "test" }; _repositoryDataSetSchemaColumn.Add(originalCol); var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Save(colToChange); //assert Assert.AreEqual("http://test", originalCol.LinkedDataUri); //cleanup _repositoryDataSetSchemaColumn.Delete(originalCol); }
public void Save_column_helptext_is_updated() { //arrange var originalCol = new DataSetSchemaColumn() { Id = 1 }; var colToChange = new DataSetSchemaColumn() { Id = 1, HelpText = "changed-help-text" }; _repositoryDataSetSchemaColumn.Add(originalCol); var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Save(colToChange); //assert Assert.AreEqual("changed-help-text", originalCol.HelpText); //cleanup _repositoryDataSetSchemaColumn.Delete(originalCol); }
public void Save_when_column_isstandardisedurl_is_false_column_title_is_updated() { //arrange var originalCol = new DataSetSchemaColumn() { Id = 1, IsStandardisedSchemaUrl = false, Title = "unchanged-title" }; var colToChange = new DataSetSchemaColumn() { Id = 1, Title = "changed-title" }; _repositoryDataSetSchemaColumn.Add(originalCol); var service = new DataSetSchemaColumnService(_repositoryDataSetSchemaColumn, _repositoryDataSetSchema, _sqlrepo); //act service.Save(colToChange); //assert Assert.AreEqual("changed-title", originalCol.Title); //cleanup _repositoryDataSetSchemaColumn.Delete(originalCol); }
public void Save(DataSetSchemaColumn columnData) { var column = _repository.GetQuery().Include(s => s.SchemaDefinition).FirstOrDefault(c => c.Id == columnData.Id); if (column.Type == "Text" && columnData.MaxSize > column.MaxSize) { //update the colsize in the database UpdateColumnMaxSize(column, columnData.MaxSize); } column.HelpText = columnData.HelpText ?? ""; column.IsDefaultSort = columnData.IsDefaultSort; column.DefaultSortDirection = columnData.IsDefaultSort ? columnData.DefaultSortDirection : ""; column.IsFilterable = columnData.IsFilterable; column.IsShownInitially = columnData.IsShownInitially; column.IsTotalisable = columnData.IsTotalisable; if (Convert.ToBoolean(column.IsStandardisedSchemaUrl)) { _repository.SaveChanges(); return; } column.Title = columnData.Title; column.IsRequired = columnData.IsRequired; column.MaxSize = columnData.MaxSize; column.MinNumber = columnData.MinNumber; column.MaxNumber = columnData.MaxNumber; column.MinCurrency = columnData.MinCurrency; column.MaxCurrency = columnData.MaxCurrency; column.MinDate = columnData.MinDate; column.MaxDate = columnData.MaxDate; column.LinkedDataUri = columnData.LinkedDataUri == null ? "" : (columnData.LinkedDataUri.Contains("http://") || columnData.LinkedDataUri.Contains("https://")) ? columnData.LinkedDataUri : String.Format("http://{0}", columnData.LinkedDataUri); _repository.SaveChanges(); }
private void AddColumnData(DataRow row, int i, string[] headers, string valueToValidate, DataSetSchemaColumn validateRules) { switch (validateRules.Type.ToLower()) { case "text": case "image": case "url": row[headers[i]] = !String.IsNullOrEmpty(valueToValidate) ? valueToValidate.Trim() : ""; break; case "currency": row[headers[i]] = !String.IsNullOrEmpty(valueToValidate) ? Convert.ToDouble(valueToValidate.Trim()) : 0; break; case "number": row[headers[i]] = !String.IsNullOrEmpty(valueToValidate) ? Convert.ToDouble(valueToValidate.Trim()) : SqlDouble.Null; break; case @"lat/lng": row[headers[i]] = !String.IsNullOrEmpty(valueToValidate) ? Convert.ToDouble(valueToValidate.Trim()) : 0; break; case "datetime": row[headers[i]] = !String.IsNullOrEmpty(valueToValidate) ? new SqlDateTime(Convert.ToDateTime(valueToValidate.Trim())) : SqlDateTime.Null; break; } }
private void ValidateColumn(string valueToValidate, int i, string[] headers, DataSetSchemaColumn validateRules, ICollection <string> errorList, int rowNumber) { var errorRow = rowNumber + 1;//take header in the csv into account if (validateRules.IsRequired) { if (valueToValidate.Length == 0) { errorList.Add(String.Format("Row {0}, Column {1} - is empty. This field must contain a value.", errorRow, headers[i])); } } if (valueToValidate.Length > 0) { switch (validateRules.Type.ToLower()) { case "text": if (valueToValidate.Length > validateRules.MaxSize) { errorList.Add(String.Format("Row {0}, Column {1} - ({2} characters) is too big. The maximum size is {3}.", errorRow, headers[i], valueToValidate.Length, validateRules.MaxSize)); } break; case "currency": var result = Regex.Match(valueToValidate, @"^\-?\(?\$?\s*\-?\s*\(?(((\d{1,3}((\,\d{3})*|\d*))?(\.\d{1,9})?)|((\d{1,3}((\,\d{3})*|\d*))(\.\d{0,9})?))\)?$"); if (!result.Success) { errorList.Add(String.Format(@"Row {0}, Column {1} - ""{2}"" is not a valid currency value.", errorRow, headers[i], valueToValidate)); } if ((validateRules.MaxCurrency != null) && (Convert.ToDouble(valueToValidate) > validateRules.MaxCurrency)) { errorList.Add(String.Format(@"Row {0}, Column {1} - ""{2}"" is too big. The maximum currency amount allowed is {3}.", errorRow, headers[i], valueToValidate, StringExtensions.FormatCurrency(validateRules.MaxCurrency.ToString()))); } if ((validateRules.MinCurrency != null) && (Convert.ToDouble(valueToValidate) < validateRules.MinCurrency)) { errorList.Add(String.Format(@"Row {0}, Column {1} - ""{2}"" is too small. The minimum currency amount allowed is {3}.", errorRow, headers[i], valueToValidate, StringExtensions.FormatCurrency(validateRules.MinCurrency.ToString()))); } break; case "number": var resultNum = Regex.Match(valueToValidate, @"^\-?\(?\$?\s*\-?\s*\(?(((\d{1,3}((\,\d{3})*|\d*))?(\.\d{1,9})?)|((\d{1,3}((\,\d{3})*|\d*))(\.\d{0,9})?))\)?$"); if (!resultNum.Success) { errorList.Add(String.Format(@"Row {0}, Column {1} - ""{2}"" is not a valid number value.", errorRow, headers[i], valueToValidate)); } if ((validateRules.MaxNumber != null) && (Convert.ToDouble(valueToValidate) > validateRules.MaxNumber)) { errorList.Add(String.Format(@"Row {0}, Column {1} - ""{2}"" is too big. The maximum number allowed is {3}.", errorRow, headers[i], valueToValidate, validateRules.MaxNumber)); } if ((validateRules.MinNumber != null) && (Convert.ToDouble(valueToValidate) < validateRules.MinNumber)) { errorList.Add(String.Format(@"Row {0}, Column {1} - ""{2}"" is too small. The minimum number allowed is {3}.", errorRow, headers[i], valueToValidate, validateRules.MinNumber)); } break; case "datetime": try //DateTime.TryParseExact is far too slow. trt/catch is much faster way to validate the date { var dateValue = Convert.ToDateTime(valueToValidate); if ((validateRules.MaxDate != null) && (dateValue > validateRules.MaxDate)) { errorList.Add(String.Format(@"Row {0}, Column {1} - ""{2}"" is too big. The maximum date allowed is {3}.", errorRow, headers[i], valueToValidate, validateRules.MaxDate)); } if (validateRules.MinDate != null && dateValue < validateRules.MinDate) { errorList.Add(String.Format(@"Row {0}, Column {1} - ""{2}"" is too small. The minimum date allowed is {3}.", errorRow, headers[i], valueToValidate, validateRules.MinDate)); } } catch (Exception ex) { Elmah.ErrorLog.GetDefault(null).Log(new Elmah.Error(ex)); errorList.Add(String.Format(@"Row {0}, Column {1} - ""{2}"" is not a valid value for a date.", errorRow, headers[i], valueToValidate)); } break; } } }
public void Create(DataSetSchemaColumn schemaCol) { if (schemaCol.Type.ToLower() == "lat/lng") { var originalTitle = schemaCol.Title ?? ""; var originalColumnName = schemaCol.ColumnName ?? ""; if (originalColumnName.EndsWith("Latitude") || originalColumnName.EndsWith("Longitude")) { //AddColumn(schemaCol, DataType.Float); AddColumn(schemaCol, "Float"); return; } //create field for Latitude schemaCol.Title = originalTitle + " Latitude"; schemaCol.ColumnName = originalColumnName + " Latitude"; AddColumn(schemaCol, "Float"); //AddColumn(schemaCol, DataType.Float); //create field for longitude schemaCol.Title = originalTitle + " Longitude"; schemaCol.ColumnName = originalColumnName + " Longitude"; AddColumn(schemaCol, "Float"); //AddColumn(schemaCol, DataType.Float); } else { //var sqlDataType = new DataType(); switch (schemaCol.Type.ToLower()) { case "text": //sqlDataType = DataType.NVarChar(schemaCol.MaxSize); AddColumn(schemaCol, "NVarChar", schemaCol.MaxSize); break; case "number": //sqlDataType = DataType.Float; AddColumn(schemaCol, "Float"); break; case "datetime": //sqlDataType = DataType.DateTime; AddColumn(schemaCol, "DateTime"); break; case "currency": //sqlDataType = DataType.Float; AddColumn(schemaCol, "Float"); break; case "image": //sqlDataType = DataType.NVarChar(1024); AddColumn(schemaCol, "NVarChar", 1024); break; case "url": //sqlDataType = DataType.NVarChar(2048); AddColumn(schemaCol, "NVarChar", 2048); break; default: AddColumn(schemaCol, ""); break; } } }
private DataSetSchemaColumn InitializeColumn(RestColumnDefinition col) { var newCol = new DataSetSchemaColumn() { Title = col.Description, ColumnName = col.Name, Type = col.Type, IsRequired = col.IsRequired, HelpText = col.HelpText, LinkedDataUri = col.Uri ?? "", IsShownInitially = col.DisplayInitial, IsDefaultSort = col.Sorted, DefaultSortDirection = col.SortDirection, IsTotalisable = col.IsTotalled }; switch (col.Type.ToLowerInvariant()) { case "image": case "url": case "text": newCol.MaxSize = Convert.ToInt32(col.MaxSize); break; case "datetime": DateTime outDate; if (DateTime.TryParse(col.MinDate, out outDate)) { newCol.MinDate = Convert.ToDateTime(col.MinDate); } if (DateTime.TryParse(col.MaxDate, out outDate)) { newCol.MaxDate = Convert.ToDateTime(col.MaxDate); } newCol.MaxSize = 8; break; case "currency": double outDouble; if (Double.TryParse(col.MaxCurrency, out outDouble)) { newCol.MaxCurrency = Convert.ToDouble(col.MaxCurrency); } if (Double.TryParse(col.MinCurrency, out outDouble)) { newCol.MinCurrency = Convert.ToDouble(col.MinCurrency); } newCol.MaxSize = 1; break; case "number": int outInt; if (int.TryParse(col.MinNumber, out outInt)) { newCol.MinNumber = Convert.ToInt32(col.MinNumber); } if (int.TryParse(col.MaxNumber, out outInt)) { newCol.MaxNumber = Convert.ToInt32(col.MaxNumber); } newCol.MaxSize = 1; break; default: newCol.MaxSize = newCol.MaxSize <= 0 ? 1 : newCol.MaxSize; break; } return(newCol); }