Ejemplo n.º 1
0
        private T createController <T>(Type objectType, bool activate, XPObjectSpace XPObjectSpace, HandleInfo handleInfo) where T : ViewController
        {
            XafTypesInfo.Instance.RegisterEntity(objectType);
            var source     = new CollectionSource(XPObjectSpace, objectType);
            var listEditor = Isolate.Fake.Instance <ListEditor>();

            Isolate.WhenCalled(() => listEditor.RequiredProperties).WillReturn(new string[0]);
            var listView = new ListView(source, listEditor);

            Isolate.WhenCalled(() => listView.ObjectTypeInfo).WillReturn(XafTypesInfo.CastTypeToTypeInfo(objectType));
            Isolate.WhenCalled(() => listView.ObjectSpace).WillReturn(XPObjectSpace);
            var controller = Isolate.Fake.Instance <T>(Members.CallOriginal, ConstructorWillBe.Called);

            Isolate.WhenCalled(() => controller.Application).WillReturn(Isolate.Fake.Instance <XafApplication>());

            controller.Active[""] = false;
            controller.SetView(listView);
            View view = controller.View;

            Isolate.WhenCalled(() => view.ObjectSpace).WillReturn(XPObjectSpace);
            if (activate)
            {
                Activate(controller, handleInfo);
            }

            return(controller);
        }
Ejemplo n.º 2
0
        protected virtual object GetObjectCore(IModelDetailView modelView, object objectKey, IObjectSpace objectSpace)
        {
            Type   type = modelView.ModelClass.TypeInfo.Type;
            object obj;

            if (XafTypesInfo.CastTypeToTypeInfo(type).IsPersistent)
            {
                if (objectKey != null && !(objectKey is CriteriaOperator))
                {
                    obj = objectSpace.GetObjectByKey(type, objectKey);
                }
                else
                {
                    obj = objectSpace.FindObject(type, (CriteriaOperator)objectKey) ?? objectSpace.CreateObject(type);
                    if (!(objectSpace.IsNewObject(obj)))
                    {
                        _application.ViewShown += ApplicationOnViewShown;
                    }
                }
            }
            else
            {
                obj = (type.GetConstructor(new[] { typeof(Session) }) != null) ? objectSpace.CreateObject(type) : type.CreateInstance();
            }
            return(obj);
        }
Ejemplo n.º 3
0
        private static IMemberInfo GetDefaultMember(Type type)
        {
            var typeInfo      = XafTypesInfo.CastTypeToTypeInfo(type);
            var defaultMember = typeInfo.GetDefaultMember();

            return(defaultMember);
        }
Ejemplo n.º 4
0
        private static IList GetObjects(IObjectSpace objectSpace, Type dashBoardObjectType)
        {
            var proxyCollection = new ProxyCollection(objectSpace, XafTypesInfo.CastTypeToTypeInfo(dashBoardObjectType), objectSpace.GetObjects(dashBoardObjectType));

            proxyCollection.DisplayableMembers = string.Join(";", proxyCollection.DisplayableMembers.Split(';').Where(s => !s.EndsWith("!")));
            return(proxyCollection);
        }
Ejemplo n.º 5
0
 public override void UpdateDatabaseBeforeUpdateSchema()
 {
     base.UpdateDatabaseBeforeUpdateSchema();
     if (SequenceGenerator.UseGuidKey && XpandModuleBase.SequenceObjectType != null)
     {
         var classInfo            = XafTypesInfo.CastTypeToTypeInfo(XpandModuleBase.SequenceObjectType).QueryXPClassInfo();
         var dbTable              = GetDbTable(classInfo.TableName);
         var typeNamePropertyName = nameof(ISequenceObject.TypeName);
         if (dbTable != null && dbTable.PrimaryKey.Columns.Contains(typeNamePropertyName))
         {
             if (SequenceGeneratorHelper.IsMySql())
             {
                 throw new NotImplementedException("Set SequenceGenerator.UseGuidKey=false or update the set Oid as key property manually");
             }
             var memberInfo = classInfo.Members.FirstOrDefault(info => info.IsCollection && typeof(ISequenceReleasedObject).IsAssignableFrom(info.CollectionElementType.ClassType));
             if (memberInfo != null)
             {
                 var tableName = memberInfo.CollectionElementType.Table.Name;
                 if (GetDbTable(tableName) != null)
                 {
                     ExecuteNonQueryCommand("drop table " + tableName, false);
                 }
             }
             ExecuteNonQueryCommand(String.Format(
                                        CultureInfo.InvariantCulture, "alter table {0} drop constraint PK_{0}", classInfo.TableName), false);
         }
     }
 }
Ejemplo n.º 6
0
        public static TypeDecorator GetTypeDecorator(Type decorator, Position position)
        {
            IEnumerable <TypeDecorator> typeDecorators = GetTypeDecorators(new List <ITypeInfo> {
                XafTypesInfo.CastTypeToTypeInfo(decorator)
            });

            return(typeDecorators.Where(PredicatePosition(position)).FirstOrDefault());
        }
Ejemplo n.º 7
0
        void AddMember(XPMemberInfo memberInfo, List <XPMemberInfo> result)
        {
            var memberClassInfo = XafTypesInfo.CastTypeToTypeInfo(memberInfo.MemberType).QueryXPClassInfo();

            if (memberClassInfo != null && !memberClassInfo.IsPersistent)
            {
                return;
            }
            result.Add(memberInfo);
        }
Ejemplo n.º 8
0
        protected virtual Type[] EditorTypes()
        {
            var typeInfo = ReflectionHelper.FindTypeDescendants(XafTypesInfo.CastTypeToTypeInfo(typeof(TreeListEditorVisibilityCalculatorHelper))).SingleOrDefault();

            if (typeInfo != null)
            {
                var visibilityCalculatorHelper = (TreeListEditorVisibilityCalculatorHelper)typeInfo.Type.CreateInstance();
                return(visibilityCalculatorHelper.TreelistEditorType());
            }
            return(Type.EmptyTypes);
        }
Ejemplo n.º 9
0
        static string GetPropertiesCode(AttributeInfoAttribute attributeInfoAttribute)
        {
            if (attributeInfoAttribute.Instance == null)
            {
                return(null);
            }
            var typeInfo    = XafTypesInfo.CastTypeToTypeInfo(attributeInfoAttribute.Instance.GetType());
            var memberInfos = typeInfo.Members.Where(info => info.FindAttribute <AttributeInfoAttribute>() != null);

            string Func(string current, IMemberInfo memberInfo) => current + (memberInfo.Name + "=" + GetArgumentCodeCore(memberInfo.GetValue(attributeInfoAttribute.Instance)) + ",");

            return(memberInfos.Aggregate(null, (Func <string, IMemberInfo, string>)Func)?.TrimEnd(','));
        }
Ejemplo n.º 10
0
        private AssociationAttribute assertMemberCreation(object collection, string name, Type type)
        {
            Assert.IsNotNull(collection);
            ITypeInfo   typeInfo   = XafTypesInfo.CastTypeToTypeInfo(type);
            IMemberInfo memberInfo = typeInfo.FindMember(name);

            Assert.IsNotNull(memberInfo);
            var attribute = memberInfo.FindAttribute <AssociationAttribute>();

            Assert.IsNotNull(attribute);
            Assert.AreEqual("association", attribute.Name);
            return(attribute);
        }
Ejemplo n.º 11
0
        static string GetPropertiesCode(AttributeInfoAttribute attributeInfoAttribute)
        {
            if (attributeInfoAttribute.Instance == null)
            {
                return(null);
            }
            var typeInfo    = XafTypesInfo.CastTypeToTypeInfo(attributeInfoAttribute.Instance.GetType());
            var memberInfos = typeInfo.Members.Where(info => info.FindAttribute <AttributeInfoAttribute>() != null);
            Func <string, IMemberInfo, string> func = (current, memberInfo)
                                                      => current + (memberInfo.Name + "=" + GetArgumentCodeCore(memberInfo.MemberType, memberInfo.GetValue(attributeInfoAttribute.Instance)) + ",");
            string code = memberInfos.Aggregate(null, func).TrimEnd(',');

            return(string.IsNullOrEmpty(code) ? null : string.Format(",{0}", code));
        }
Ejemplo n.º 12
0
        void CreateRefElelement(IClassInfoGraphNode classInfoGraphNode, Type objectType, XElement root,
                                object theObject, XElement propertyElement, ElementSchema elementSchema)
        {
            var serializedObjectRefElement = new XElement(elementSchema.SerializedObjectRef);

            propertyElement.Add(serializedObjectRefElement);
            serializedObjectRefElement.Add(new XAttribute(elementSchema.Type, objectType.Name));
            serializedObjectRefElement.Add(new XAttribute(elementSchema.Strategy, classInfoGraphNode.SerializationStrategy));
            if (theObject != null)
            {
                var classInfoGraphNodes = _serializeClassInfoGraphNodesCalculator.GetSerializedClassInfoGraphNodes(theObject, objectType.Name).ToArray();
                CreateRefKeyElements(XafTypesInfo.CastTypeToTypeInfo(objectType), classInfoGraphNodes, theObject, serializedObjectRefElement, elementSchema);
                if (classInfoGraphNode.SerializationStrategy == SerializationStrategy.SerializeAsObject)
                {
                    ExportCore(theObject, classInfoGraphNodes, root, elementSchema);
                }
            }
        }
Ejemplo n.º 13
0
        public void Generate(ISerializationConfiguration serializationConfiguration)
        {
            var typeToSerialize    = serializationConfiguration.TypeToSerialize;
            var castTypeToTypeInfo = XafTypesInfo.CastTypeToTypeInfo(typeToSerialize);
            var objectSpace        = XPObjectSpace.FindObjectSpaceByObject(serializationConfiguration);

            _serializationConfigurationGroup = serializationConfiguration.SerializationConfigurationGroup;
            if (_serializationConfigurationGroup == null)
            {
                throw new NullReferenceException("_serializationConfigurationGroup");
            }
            foreach (var descendant in ReflectionHelper.FindTypeDescendants(castTypeToTypeInfo))
            {
                Generate(objectSpace, descendant.Type);
            }
            foreach (IClassInfoGraphNode classInfoGraphNode in CreateGraph(objectSpace, castTypeToTypeInfo))
            {
                serializationConfiguration.SerializationGraph.Add(classInfoGraphNode);
            }
        }
Ejemplo n.º 14
0
        public override void UpdateDatabaseAfterUpdateSchema()
        {
            base.UpdateDatabaseAfterUpdateSchema();

            InitializeSecurity(ObjectSpace);

            new DummyDataBuilder((XPObjectSpace)ObjectSpace).CreateObjects();
            var workflowServiceUser = ObjectSpace.FindObject(SecuritySystem.UserType, new BinaryOperator("UserName", "WorkflowService"));

            if (workflowServiceUser == null)
            {
                CriteriaOperator criteriaOperator = CriteriaOperator.Parse("Name=?", SecurityStrategy.AdministratorRoleName);
                CreateworkflowServiceUser(ObjectSpace.FindObject <Role>(criteriaOperator));
                ObjectSpace.CommitChanges();


                var updaters = ReflectionHelper.FindTypeDescendants(XafTypesInfo.CastTypeToTypeInfo(typeof(FCUpdater)));
                foreach (var findTypeDescendant in updaters)
                {
                    var updater = (FCUpdater)Activator.CreateInstance(findTypeDescendant.Type, ObjectSpace, CurrentDBVersion);
                    updater.UpdateDatabaseAfterUpdateSchema();
                }
            }
        }
Ejemplo n.º 15
0
        protected virtual ICollection GetPermissionTypeNames()
        {
            var typeDescendants = ReflectionHelper.FindTypeDescendants(XafTypesInfo.CastTypeToTypeInfo(typeof(XpandPermissionData)));

            return(typeDescendants.Select(info => info.FullName).ToList());
        }