Refactor all usages of SqlHelper, ExecuteReader and ExecuteXmlReader into using blocks

This commit is contained in:
Sebastiaan Janssen
2016-11-25 22:18:35 +01:00
parent 47c8e6854e
commit ee3a4614c3
78 changed files with 2143 additions and 1684 deletions

View File

@@ -21,200 +21,204 @@ namespace umbraco.editorControls.userControlGrapper
{
[Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")]
public class usercontrolPrevalueEditor : System.Web.UI.WebControls.PlaceHolder, umbraco.interfaces.IDataPrevalue
{
public ISqlHelper SqlHelper
{
get { return Application.SqlHelper; }
}
{
/// <summary>
/// Unused, please do not use
/// </summary>
[Obsolete("Obsolete, For querying the database use the new UmbracoDatabase object ApplicationContext.Current.DatabaseContext.Database", false)]
public static ISqlHelper SqlHelper
{
get { return Application.SqlHelper; }
}
#region IDataPrevalue Members
#region IDataPrevalue Members
// referenced datatype
private umbraco.cms.businesslogic.datatype.BaseDataType _datatype;
// referenced datatype
private umbraco.cms.businesslogic.datatype.BaseDataType _datatype;
private DropDownList _dropdownlist;
private DropDownList _dropdownlistUserControl;
private PlaceHolder _phSettings;
private DropDownList _dropdownlist;
private DropDownList _dropdownlistUserControl;
private PlaceHolder _phSettings;
private Dictionary<string, DataEditorSettingType> dtSettings = new Dictionary<string, DataEditorSettingType>();
private Dictionary<string, DataEditorSettingType> dtSettings = new Dictionary<string, DataEditorSettingType>();
public usercontrolPrevalueEditor(umbraco.cms.businesslogic.datatype.BaseDataType DataType)
{
// state it knows its datatypedefinitionid
_datatype = DataType;
setupChildControls();
public usercontrolPrevalueEditor(umbraco.cms.businesslogic.datatype.BaseDataType DataType)
{
// state it knows its datatypedefinitionid
_datatype = DataType;
setupChildControls();
}
private void setupChildControls()
{
_dropdownlist = new DropDownList();
_dropdownlist.ID = "dbtype";
_dropdownlist.Items.Add(DBTypes.Date.ToString());
_dropdownlist.Items.Add(DBTypes.Integer.ToString());
_dropdownlist.Items.Add(DBTypes.Ntext.ToString());
_dropdownlist.Items.Add(DBTypes.Nvarchar.ToString());
_dropdownlistUserControl = new DropDownList();
_dropdownlistUserControl.ID = "usercontrol";
}
_phSettings = new PlaceHolder();
_phSettings.ID = "settings";
private void setupChildControls()
{
_dropdownlist = new DropDownList();
_dropdownlist.ID = "dbtype";
_dropdownlist.Items.Add(DBTypes.Date.ToString());
_dropdownlist.Items.Add(DBTypes.Integer.ToString());
_dropdownlist.Items.Add(DBTypes.Ntext.ToString());
_dropdownlist.Items.Add(DBTypes.Nvarchar.ToString());
// put the childcontrols in context - ensuring that
// the viewstate is persisted etc.
Controls.Add(_dropdownlist);
Controls.Add(_dropdownlistUserControl);
Controls.Add(_phSettings);
_dropdownlistUserControl = new DropDownList();
_dropdownlistUserControl.ID = "usercontrol";
// populate the usercontrol dropdown
_dropdownlistUserControl.Items.Add(new ListItem(ui.Text("choose"), ""));
populateUserControls( IOHelper.MapPath( SystemDirectories.UserControls) );
_phSettings = new PlaceHolder();
_phSettings.ID = "settings";
}
// put the childcontrols in context - ensuring that
// the viewstate is persisted etc.
Controls.Add(_dropdownlist);
Controls.Add(_dropdownlistUserControl);
Controls.Add(_phSettings);
private void populateUserControls(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
// populate the usercontrol dropdown
_dropdownlistUserControl.Items.Add(new ListItem(ui.Text("choose"), ""));
populateUserControls(IOHelper.MapPath(SystemDirectories.UserControls));
}
private void populateUserControls(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
if (di.Exists == false) return;
foreach (FileInfo uc in di.GetFiles("*.ascx"))
{
foreach (FileInfo uc in di.GetFiles("*.ascx"))
{
string ucRoot = IOHelper.MapPath(SystemDirectories.UserControls);
_dropdownlistUserControl.Items.Add(
_dropdownlistUserControl.Items.Add(
new ListItem(SystemDirectories.UserControls +
uc.FullName.Substring(ucRoot.Length).Replace(IOHelper.DirSepChar, '/'))
/*
new ListItem(
uc.FullName.Substring( uc.FullName.IndexOf(root), uc.FullName.Length - uc.FullName.IndexOf(root)).Replace(IOHelper.DirSepChar, '/'))
*/
);
/*
new ListItem(
uc.FullName.Substring( uc.FullName.IndexOf(root), uc.FullName.Length - uc.FullName.IndexOf(root)).Replace(IOHelper.DirSepChar, '/'))
*/
);
}
foreach (DirectoryInfo dir in di.GetDirectories())
populateUserControls(dir.FullName);
}
}
foreach (DirectoryInfo dir in di.GetDirectories())
populateUserControls(dir.FullName);
}
public Control Editor
{
get
{
return this;
}
}
public Control Editor
{
get
{
return this;
}
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!Page.IsPostBack)
{
string config = Configuration;
if (config != "")
{
_dropdownlistUserControl.SelectedValue = config;
}
_dropdownlist.SelectedValue = _datatype.DBType.ToString();
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!Page.IsPostBack)
{
string config = Configuration;
if (config != "")
{
_dropdownlistUserControl.SelectedValue = config;
}
}
_dropdownlist.SelectedValue = _datatype.DBType.ToString();
//check for settings
if (!string.IsNullOrEmpty(Configuration))
LoadSetttings(Configuration);
}
private Dictionary<string, DataEditorSetting> GetSettings(Type t)
{
Dictionary<string, DataEditorSetting> settings = new Dictionary<string, DataEditorSetting>();
}
foreach (System.Reflection.PropertyInfo p in t.GetProperties())
{
//check for settings
if (!string.IsNullOrEmpty(Configuration))
LoadSetttings(Configuration);
object[] o = p.GetCustomAttributes(typeof(DataEditorSetting), true);
if (o.Length > 0)
settings.Add(p.Name, (DataEditorSetting)o[0]);
}
return settings;
}
}
private bool HasSettings(Type t)
{
bool hasSettings = false;
foreach (System.Reflection.PropertyInfo p in t.GetProperties())
{
object[] o = p.GetCustomAttributes(typeof(DataEditorSetting), true);
private Dictionary<string, DataEditorSetting> GetSettings(Type t)
{
Dictionary<string, DataEditorSetting> settings = new Dictionary<string, DataEditorSetting>();
if (o.Length > 0)
{
hasSettings = true;
break;
}
}
foreach (System.Reflection.PropertyInfo p in t.GetProperties())
{
return hasSettings;
}
object[] o = p.GetCustomAttributes(typeof(DataEditorSetting), true);
private void LoadSetttings(string fileName)
{
if (o.Length > 0)
settings.Add(p.Name, (DataEditorSetting)o[0]);
}
return settings;
}
private bool HasSettings(Type t)
{
bool hasSettings = false;
foreach (System.Reflection.PropertyInfo p in t.GetProperties())
{
object[] o = p.GetCustomAttributes(typeof(DataEditorSetting), true);
if (o.Length > 0)
{
hasSettings = true;
break;
}
}
return hasSettings;
}
private void LoadSetttings(string fileName)
{
// due to legacy, some user controls may not have the tilde start
if (fileName.StartsWith("~/"))
fileName = fileName.Substring(2);
if (System.IO.File.Exists(IOHelper.MapPath("~/" + fileName)))
{
UserControl oControl = (UserControl)this.Page.LoadControl(@"~/" + fileName);
if (System.IO.File.Exists(IOHelper.MapPath("~/" + fileName)))
{
Type type = oControl.GetType();
UserControl oControl = (UserControl)this.Page.LoadControl(@"~/" + fileName);
Type type = oControl.GetType();
Dictionary<string, DataEditorSetting> settings = GetSettings(type);
Dictionary<string, DataEditorSetting> settings = GetSettings(type);
foreach (KeyValuePair<string, DataEditorSetting> kv in settings)
{
DataEditorSettingType dst = kv.Value.GetDataEditorSettingType();
dtSettings.Add(kv.Key, dst);
foreach (KeyValuePair<string, DataEditorSetting> kv in settings)
{
DataEditorSettingType dst = kv.Value.GetDataEditorSettingType();
dtSettings.Add(kv.Key, dst);
DataEditorPropertyPanel panel = new DataEditorPropertyPanel();
panel.Text = kv.Value.GetName();
panel.Text += "<br/><small>" + kv.Value.description + "</small>";
DataEditorPropertyPanel panel = new DataEditorPropertyPanel();
panel.Text = kv.Value.GetName();
panel.Text += "<br/><small>" + kv.Value.description + "</small>";
if (HasSettings(type))
{
DataEditorSettingsStorage ss = new DataEditorSettingsStorage();
if (HasSettings(type))
{
DataEditorSettingsStorage ss = new DataEditorSettingsStorage();
List<Setting<string, string>> s = ss.GetSettings(_datatype.DataTypeDefinitionId);
ss.Dispose();
List<Setting<string, string>> s = ss.GetSettings(_datatype.DataTypeDefinitionId);
ss.Dispose();
if (s.Find(set => set.Key == kv.Key).Value != null)
dst.Value = s.Find(set => set.Key == kv.Key).Value;
if (s.Find(set => set.Key == kv.Key).Value != null)
dst.Value = s.Find(set => set.Key == kv.Key).Value;
}
}
panel.Controls.Add(dst.RenderControl(kv.Value));
panel.Controls.Add(dst.RenderControl(kv.Value));
Label invalid = new Label();
invalid.Attributes.Add("style", "color:#8A1F11");
invalid.ID = "lbl" + kv.Key;
panel.Controls.Add(invalid);
Label invalid = new Label();
invalid.Attributes.Add("style", "color:#8A1F11");
invalid.ID = "lbl" + kv.Key;
panel.Controls.Add(invalid);
_phSettings.Controls.Add(panel);
}
}
}
_phSettings.Controls.Add(panel);
}
}
}
public void Save()
{
@@ -247,23 +251,25 @@ namespace umbraco.editorControls.userControlGrapper
// Generate data-string
string data = _dropdownlistUserControl.SelectedValue;
// If the add new prevalue textbox is filled out - add the value to the collection.
IParameter[] SqlParams = new IParameter[]
{
SqlHelper.CreateParameter("@value", data),
SqlHelper.CreateParameter("@dtdefid", _datatype.DataTypeDefinitionId)
};
SqlHelper.ExecuteNonQuery("delete from cmsDataTypePreValues where datatypenodeid = @dtdefid", SqlParams);
// we need to populate the parameters again due to an issue with SQL CE
SqlParams = new IParameter[]
{
SqlHelper.CreateParameter("@value", data),
SqlHelper.CreateParameter("@dtdefid", _datatype.DataTypeDefinitionId)
};
SqlHelper.ExecuteNonQuery(
"insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')",
SqlParams);
// If the add new prevalue textbox is filled out - add the value to the collection.
using (var sqlHelper = Application.SqlHelper)
{
IParameter[] SqlParams = new IParameter[]
{
sqlHelper.CreateParameter("@value", data),
sqlHelper.CreateParameter("@dtdefid", _datatype.DataTypeDefinitionId)
};
sqlHelper.ExecuteNonQuery("delete from cmsDataTypePreValues where datatypenodeid = @dtdefid", SqlParams);
// we need to populate the parameters again due to an issue with SQL CE
SqlParams = new IParameter[]
{
sqlHelper.CreateParameter("@value", data),
sqlHelper.CreateParameter("@dtdefid", _datatype.DataTypeDefinitionId)
};
sqlHelper.ExecuteNonQuery(
"insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')",
SqlParams);
}
//settings
@@ -290,35 +296,36 @@ namespace umbraco.editorControls.userControlGrapper
}
}
protected override void Render(HtmlTextWriter writer)
{
writer.WriteLine("<div class=\"propertyItem\">");
writer.WriteLine("<div class=\"propertyItemheader\">Database datatype</div>");
writer.WriteLine("<div class=\"propertyItemContent\">");
_dropdownlist.RenderControl(writer);
writer.Write("</div></div>");
protected override void Render(HtmlTextWriter writer)
{
writer.WriteLine("<div class=\"propertyItem\">");
writer.WriteLine("<div class=\"propertyItemheader\">Database datatype</div>");
writer.WriteLine("<div class=\"propertyItemContent\">");
_dropdownlist.RenderControl(writer);
writer.Write("</div></div>");
writer.WriteLine("<div class=\"propertyItem\">");
writer.WriteLine("<div class=\"propertyItemheader\">Usercontrol:</div>");
writer.WriteLine("<div class=\"propertyItemContent\">");
_dropdownlistUserControl.RenderControl(writer);
writer.Write("</div></div>");
writer.WriteLine("<div class=\"propertyItem\">");
writer.WriteLine("<div class=\"propertyItemheader\">Usercontrol:</div>");
writer.WriteLine("<div class=\"propertyItemContent\">");
_dropdownlistUserControl.RenderControl(writer);
writer.Write("</div></div>");
_phSettings.RenderControl(writer);
}
_phSettings.RenderControl(writer);
}
public string Configuration
{
get
{
object conf =
SqlHelper.ExecuteScalar<object>("select value from cmsDataTypePreValues where datatypenodeid = @datatypenodeid",
SqlHelper.CreateParameter("@datatypenodeid", _datatype.DataTypeDefinitionId));
if (conf != null)
return conf.ToString();
else
return "";
using (var sqlHelper = Application.SqlHelper) {
object conf =
sqlHelper.ExecuteScalar<object>("select value from cmsDataTypePreValues where datatypenodeid = @datatypenodeid",
sqlHelper.CreateParameter("@datatypenodeid", _datatype.DataTypeDefinitionId));
if (conf != null)
return conf.ToString();
else
return "";
}
}
}