public int Save <T>(RepositoryRecord <T> item, string userName) where T : RepositoryRecord <T>, new() { //validation item.ValidateColumnSettings(); if (item.HasErrors()) { StringBuilder sb = new StringBuilder(); List <string> errors = item.GetErrors(); foreach (string error in errors) { sb.Append(error + Environment.NewLine); } throw new SqlQueryException("There are errors saving this item: " + sb); } int result = item.IsNew ? Insert(item, userName) : Update(item, userName); return(result); }