Beispiel #1
0
        public void GenerateDefaultFormForResourceType_DesignMode()
        {
            EntityData form = EditFormHelper.GenerateDefaultFormForResourceType("test:allFields", true);

            Assert.IsNotNull(form);
            CheckAllTempObjectMarkedAsCreate(form);
        }
Beispiel #2
0
        public void TestDefaultLayoutEntityDataCorrectDataState( )
        {
            EntityData form = EditFormHelper.GenerateDefaultFormForResourceType("core:person", false);

            Assert.IsNotNull(form);
            CheckAllTempObjectMarkedAsCreate(form);
        }
        public void TestGetNewNumberText()
        {
            Assert.AreEqual("1", EditFormHelper.GetNewNumberTextInternal("0", null, null));
            Assert.AreEqual("18", EditFormHelper.GetNewNumberTextInternal("17", null, null));

            Assert.AreEqual("1", EditFormHelper.GetNewNumberTextInternal("5", minText: null, maxText: "5"));
            Assert.AreEqual("2", EditFormHelper.GetNewNumberTextInternal("5", minText: "2", maxText: "5"));
        }
Beispiel #4
0
        /// <summary>
        ///     Given a type, get the generated form for it.
        /// </summary>
        /// <param name="entityType">Type of the entity.</param>
        /// <param name="isInDesignMode">if set to <c>true</c> [is in design mode].</param>
        /// <returns>
        ///     A response containing entity data for the form
        /// </returns>
        public static HttpResponseMessage <JsonQueryResult> GetGeneratedFormForType(EntityRef entityType, bool isInDesignMode)
        {
            EntityData formEntityData = EditFormHelper.GenerateDefaultFormForResourceType(entityType, isInDesignMode);

            var entityBatch = new EntityPackage( );

            entityBatch.AddEntityData(formEntityData, "formEntity");

            return(new HttpResponseMessage <JsonQueryResult>(entityBatch.GetQueryResult( )));
        }
Beispiel #5
0
        public void GenerateDefaultFormForResourceType_Has_CanCreateType_Field()
        {
            EntityData form = EditFormHelper.GenerateDefaultFormForResourceType("test:allFields", true);

            Assert.IsNotNull(form);
            bool canCreateType;

            bool.TryParse(form.GetRelationship("console:typeToEditWithForm").Instances[0].Entity.GetField("canCreateType").Value.ValueString, out canCreateType);
            Assert.IsTrue(canCreateType);
        }
Beispiel #6
0
        /// <summary>
        /// 把当前程序集中的表单接口名和参数保存下来,供客户端拉取表单字段属性
        /// </summary>
        /// <param name="ass">ass</param>
        public static void Initlize()
        {
            if (apiArgs == null)
            {
                lock (root)
                {
                    if (apiArgs == null)
                    {
                        apiArgs = new Dictionary <string, List <EditFormApiResult> >();

                        // var runtimeId = RuntimeEnvironment.GetRuntimeIdentifier();
                        // var assemblies = DependencyContext.Default.GetRuntimeAssemblyNames(runtimeId);
                        // var assArrary = assemblies.ToArray(); // 找到所有依赖的程序集
                        // var GrantAss = assArrary.Where(a => a.FullName.ToLower().StartsWith("grant")).ToArray();

                        // List<Type> allTypes = new List<Type>();
                        // foreach (var qt in GrantAss)
                        // {
                        //    Assembly asb = AssemblyLoadContext.Default.LoadFromAssemblyName(qt);
                        //    allTypes.AddRange(asb.GetTypes());
                        // }
                        ApiHelper.ApiHelper helper = new ApiHelper.ApiHelper(Assembly.GetEntryAssembly());
                        var list = helper.GetAllInterface(); // 找到所有的app
                        foreach (var t in list)
                        {
                            var param = helper.GetInterfaceParam(t); // 找每个app的args

                            // 看args是否标记为EditForm
                            var editAttr = EditFormHelper.GetEditForm(param.args);
                            if (editAttr != null)
                            {
                                // List<Type> dbList = new List<Type>();
                                // foreach (var edit in editAttr.DbContextFullName)
                                // {
                                //   var dbType = allTypes.Where(a => a.FullName.ToLower().EndsWith(edit.ToLower())).ToArray();
                                //   dbList.AddRange(dbType);
                                // }
                                List <EditFormApiResult> apiList = new List <EditFormApiResult>();
                                EditFormHelper.GetEditFormField(param.args, ref apiList);
                                var key = t.Name.ToLower();
                                if (apiArgs.ContainsKey(key))
                                {
                                    apiArgs[key] = apiList;
                                }
                                else
                                {
                                    apiArgs.Add(key, apiList);
                                }
                            }
                        }
                    }
                }
            }
        }
 public void TestGetNewDateText_NoPlaceholder()
 {
     Assert.AreEqual("", EditFormHelper.GetNewDateTextInternal("", null));
     Assert.AreEqual("02/01/1983", EditFormHelper.GetNewDateTextInternal("01/01/1983", null));
     Assert.AreEqual("02/12/1983", EditFormHelper.GetNewDateTextInternal("1/12/1983", null));
     Assert.AreEqual("12/02/1983", EditFormHelper.GetNewDateTextInternal("12/1/1983", null));
     Assert.AreEqual("01/12/1983", EditFormHelper.GetNewDateTextInternal("12/12/1983", null));
     // if one is above then the lower must be manipulated
     Assert.AreEqual("13/03/1983", EditFormHelper.GetNewDateTextInternal("13/02/1983", null));
     Assert.AreEqual("03/13/1983", EditFormHelper.GetNewDateTextInternal("02/13/1983", null));
     Assert.AreEqual("20/01/2027", EditFormHelper.GetNewDateTextInternal("20/12/2027", null));
     Assert.AreEqual("20/07/2027", EditFormHelper.GetNewDateTextInternal("20/06/2027", null));
     Assert.AreEqual("2017-07-20", EditFormHelper.GetNewDateTextInternal("2017-06-20", null));
 }
        public void TestGetNewDateText_WithPlaceholder()
        {
            Assert.AreEqual("", EditFormHelper.GetNewDateTextInternal("", "MM/yyyy"));
            Assert.AreEqual("02/1983", EditFormHelper.GetNewDateTextInternal("01/1983", "MM/yyyy"));
            //different language
            Assert.AreEqual("02/1983", EditFormHelper.GetNewDateTextInternal("01/1983", "MM/aaaa"));
            //different separator
            Assert.AreEqual("02-1983", EditFormHelper.GetNewDateTextInternal("01-1983", "MM-yyyy"));

            // day first
            Assert.AreEqual("01/02/1983", EditFormHelper.GetNewDateTextInternal("01/01/1983", "dd/MM/yyyy"));
            //different language
            Assert.AreEqual("01/02/1983", EditFormHelper.GetNewDateTextInternal("01/01/1983", "dd/MM/aaaa"));
            Assert.AreEqual("2017-07-20", EditFormHelper.GetNewDateTextInternal("2017-06-20", "dd-MM-aaaa"));
        }
Beispiel #9
0
        /// <summary>
        ///     Given a type, get the default form for it.
        /// </summary>
        /// <param name="entityType">Type of the entity.</param>
        /// <param name="isInDesignMode">if set to <c>true</c> [is in design mode].</param>
        /// <param name="forceGenerate">Force a generated form to be used</param>
        /// <returns>
        ///     A response containing entity data for the form
        /// </returns>
        public static HttpResponseMessage <JsonQueryResult> GetDefaultFormForType(EntityType entityType, bool isInDesignMode, bool forceGenerate)
        {
            CustomEditForm formRef = entityType.DefaultEditForm;

            if (formRef != null && !forceGenerate)
            {
                var entityBatch = new EntityPackage( );

                EntityData formEntityData = EditFormHelper.GetFormAsEntityData(formRef);

                entityBatch.AddEntityData(formEntityData, "formEntity");

                return(new HttpResponseMessage <JsonQueryResult>(entityBatch.GetQueryResult( )));
            }
            //TODO: return something to indicate that there is no form
            return(GetGeneratedFormForType(entityType, isInDesignMode));
        }
        /// <summary>
        /// Gets the form as entity data.
        /// </summary>
        /// <param name="formId">The form identifier.</param>
        /// <param name="isInDesignMode">if set to <c>true</c> [is in design mode].</param>
        /// <returns></returns>
        public EntityData GetFormAsEntityData(long formId, bool isInDesignMode)
        {
            EntityData formEntityData;

            _formsCache.TryGetOrAdd(formId, out formEntityData, key =>
            {
                var formEntity = EditFormHelper.GetFormAsEntityData(key, isInDesignMode);
                if (formEntity == null)
                {
                    throw new Exception("entityData was null");
                }

                return(formEntity);
            });

            return(formEntityData);
        }
 public void TestCompareDates()
 {
     Assert.AreEqual(true, EditFormHelper.CompareDates("2027-12-20", "20/12/2027"));
 }
        public void Test_GetForm_DesignMode()
        {
            EntityData form = EditFormHelper.GetFormAsEntityData("console:resourceInfoEditForm", true);

            Assert.IsNotNull(form);
        }