Esempio n. 1
0
		public void FinalizeInstanceWhenObjIsScoped()
		{
			var dependency = new ObjectDependency();

			var target = new DependentTarget { ObjectDependency = dependency, Scope = new LifetimeScope() };

			new ObjectActivator(new ContainerBuilder().Build()).FinalizeInstance(target);

			Assert.IsNull(target.ObjectDependency);
			Assert.IsNotNull(target.Scope);
		}
Esempio n. 2
0
		public void InitializeInstanceWhenObjIsScoped()
		{
			var dependency = new ObjectDependency();

			var builder = new ContainerBuilder();
			builder.Register<IObjectDependency>(_ => dependency);

			var target = new DependentTarget();

			new ObjectActivator(builder.Build()).InitializeInstance(target);

			Assert.AreSame(dependency, target.ObjectDependency);
			Assert.IsNotNull(target.Scope);
		}
    protected void Page_Load(object sender, EventArgs e)
    {
        if (StopProcessing)
        {
            // No actions if processing is stopped
        }
        else
        {
            editElem.OnSelectionChanged += new EventHandler(editElem_OnSelectionChanged);

            // Create object types (BaseInfo)
            obj         = ModuleManager.GetObject(ObjectType);
            objProvider = ModuleManager.GetObject(BindingObjectType);

            // Automatic compute target object type
            if (String.IsNullOrEmpty(TargetObjectType))
            {
                // Search for parent in TYPEINFO
                String parent = objProvider.Generalized.ParentObjectType;
                if ((parent != String.Empty) && (parent != ObjectType))
                {
                    // If parent is different from control's object type use it.
                    TargetObjectType = parent;
                }
                else
                {
                    // Otherwise search in siteobject
                    String siteObject = objProvider.Generalized.SiteIDColumn;
                    if ((siteObject != String.Empty) && (siteObject != ObjectTypeInfo.COLUMN_NAME_UNKNOWN))
                    {
                        TargetObjectType = SiteInfo.OBJECT_TYPE;
                    }
                    else
                    {
                        // If site object not specified use bindings. Find first binding dependecy and use it's object type
                        ObjectDependency od = objProvider.Generalized.TypeInfo.ObjectDependencies.FirstOrDefault(x => x.DependencyType == ObjectDependencyEnum.Binding);
                        if (od != null)
                        {
                            TargetObjectType = od.DependencyObjectType;
                        }
                    }
                }
            }

            objTarget = ModuleManager.GetObject(TargetObjectType);

            //Check view permission
            if (!CheckViewPermissions(objProvider))
            {
                editElem.StopProcessing = true;
                editElem.Visible        = false;
                return;
            }

            // Check edit permissions
            if (!CheckEditPermissions(objProvider))
            {
                editElem.Enabled = false;
                ShowError(GetString("ui.notauthorizemodified"));
            }

            // Validate input data
            if (!ValidateInputData())
            {
                return;
            }

            // Set uni selector
            editElem.ObjectType     = TargetObjectType;
            editElem.ResourcePrefix = ResourcePrefix;
            editElem.WhereCondition = DialogWhereCondition;

            // Get all items based on where condition
            String where = WhereCondition;
            DataSet ds = objProvider.Generalized.GetData(null, where, String.Empty, 0, String.Empty, false);
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                currentValues = TextHelper.Join(";", DataHelper.GetStringValues(ds.Tables[0], objTarget.TypeInfo.IDColumn));
            }

            if (!RequestHelper.IsPostBack())
            {
                // Set values
                editElem.Value = currentValues;
            }
        }
    }