Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

151 lines
2.6 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.DynamicData;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace MonoTests.DataSource
{
[PersistChildren (false)]
[ParseChildren (true)]
public class DynamicDataSource : DataSourceControl, IDynamicDataSource
{
const string DEFAULT_VIEW_NAME = "DefaultView";
static readonly string[] emptyNames = new string[] { "DefaultView" };
DataSourceView defaultView;
ParameterCollection whereCollection;
Type dataContainerType;
public DynamicDataSource ()
: this (null)
{
}
public DynamicDataSource (string dataContainerTypeName)
{
this.DataContainerTypeName = dataContainerTypeName;
}
public DataSourceView DefaultView {
get {
if (defaultView == null)
defaultView = CreateView (DEFAULT_VIEW_NAME);
return defaultView;
}
}
public Type DataContainerType {
get {
if (dataContainerType == null)
dataContainerType = Type.GetType (DataContainerTypeName, true);
return dataContainerType;
}
}
public string DataContainerTypeName {
get;
set;
}
public object DataContainerInstance
{
get;
set;
}
DataSourceView CreateView (string viewName)
{
Type genType = typeof (DynamicDataSourceView<>).GetGenericTypeDefinition ();
return Activator.CreateInstance (genType.MakeGenericType (new Type[] { ContextType }), this, viewName) as DataSourceView;
}
#region DataSourceControl Members
protected override DataSourceView GetView (string viewName)
{
if (String.IsNullOrEmpty (viewName))
return DefaultView;
return CreateView (viewName);
}
#endregion
#region IDynamicDataSource Members
public bool AutoGenerateWhereClause
{
get;
set;
}
public Type ContextType
{
get;
set;
}
public bool EnableDelete
{
get;
set;
}
public bool EnableInsert
{
get;
set;
}
public bool EnableUpdate
{
get;
set;
}
public string EntitySetName
{
get;
set;
}
public event EventHandler<DynamicValidatorEventArgs> Exception;
public string Where
{
get;
set;
}
[PersistenceMode (PersistenceMode.InnerProperty)]
public ParameterCollection WhereParameters
{
get
{
if (whereCollection == null)
whereCollection = new ParameterCollection ();
return whereCollection;
}
}
#endregion
#region IDataSource Members
DataSourceView IDataSource.GetView (string viewName)
{
return GetView (viewName);
}
ICollection IDataSource.GetViewNames ()
{
return emptyNames;
}
#endregion
}
}