文件内容 TestAppService.cs 6 KB 6728 字符
using Microsoft.AspNetCore.Mvc;
using ExampleForm.Application.Contracts;
using ExampleForm.Application.testmodels;
using PasteApeart.Helper;
using ExampleForm.usermodels;
using System.Reflection;
using PasteApeart.Application.Contracts;

namespace ExampleForm.testmodels
{
    /// <summary>
    ///
    ///</summary>
    public class TestAppService : ExampleFormAppService
    {

        /// <summary>
        ///
        ///</summary>
        public TestAppService() : base()
        {

        }


        /// <summary>
        /// 读取AddDto的数据模型
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("/api/app/auto/model")]
        public VoloModelInfo ReadAddModel20([FromQuery] string module)
        {
            if (String.IsNullOrEmpty(module))
            {
                throw new PasteCodeException("参数module必填!");
            }
            //下面的代码要做缓存 最好要做限定 比如NameSpace的限定,这样会安全些
            var _path = "ExampleForm.Application.Contracts.dll";
            Type _target = null;
            if (System.IO.File.Exists(_path))
            {
                var assembly = Assembly.LoadFrom(_path);
                foreach (var type in assembly.GetTypes())
                {
                    if (type.IsClass && !type.IsAbstract)
                    {
                        if (type?.Namespace == "ExampleForm.Application.testmodels")
                        {
                            if (type.Name == module)
                            {
                                _target = type;
                                break;
                            }
                        }
                    }
                }
            }
            if (_target != null)
            {
                var _model = BuilderHelper.ReadTypeProperty(_target);
                return _model;
            }
            else
            {
                throw new PasteCodeException("没有找到这个类型" + module);
            }
        }

        /// <summary>
        /// select lselect selects
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("/api/app/select/readAddModel")]
        public VoloModelInfo ReadAddModel1()
        {
            var _model = BuilderHelper.AttributeReadModelProperty<SelectDto>(new SelectDto(), true);
            return _model;
        }

        /// <summary>
        /// date time datetime dateplan
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("/api/app/date/readAddModel")]
        public VoloModelInfo ReadAddModel2()
        {
            var _model = BuilderHelper.AttributeReadModelProperty<DateTimeDto>(new DateTimeDto());
            return _model;
        }

        /// <summary>
        /// date time datetime dateplan
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("/api/app/date/1/readDetailModel")]
        public VoloModelInfo ReadAddModel12()
        {
            var _model = BuilderHelper.DynamicReadModelProperty<DateTimeDto>(new DateTimeDto());
            return _model;
        }

        /// <summary>
        /// text textarea html md 等
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("/api/app/text/readAddModel")]
        public VoloModelInfo ReadAddModel3()
        {
            var _model = BuilderHelper.AttributeReadModelProperty<StringDto>(new StringDto());
            return _model;
        }

        /// <summary>
        /// outer outers object objects
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("/api/app/obj/readAddModel")]
        public VoloModelInfo ReadAddModel4()
        {
            var _model = BuilderHelper.AttributeReadModelProperty<ObjectDto>(new ObjectDto());

            ////排序 自行处理
            //_model.Properties.Sort((p1,p2)=>p1.Sort.CompareTo(p2.Sort));
            ////排序自行处理
            //_model.Properties = _model.Properties.OrderBy(x => x.Sort).ThenBy(x => x.Name).ToList();

            return _model;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("/api/app/obj/item")]
        public VoloModelProperty Item()
        {
            var _property = new VoloModelProperty
            {
                Name = "name",
                Title = "abc",
                Value = base._httpContext.Request.QueryString.Value.ToString(),
                Summary = "修改后的信息",
                DataType = "String",
                Maxlength = 16
            };
            _property.Attributes = new System.Collections.Generic.List<VoloModelAttribute>
            {
                new VoloModelAttribute
                {
                    Name="sunform",
                     Args1="./pasteform/view.html?path=mod1&vid=112233"
                }
            };
            return _property;
        }

        /// <summary>
        /// object的外援
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("/api/app/mod1/readAddModel")]
        public VoloModelInfo ReadAddModel5()
        {
            //ObjectMapper.Map<UserInfo, UserInfoDto>(null);
            var _model = BuilderHelper.AttributeReadModelProperty<Model1>(new Model1());
            return _model;
        }

        /// <summary>
        /// object的外援
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("/api/app/mod2/readAddModel")]
        public VoloModelInfo ReadAddModel6()
        {
            var _model = BuilderHelper.AttributeReadModelProperty<Model2>(new Model2());
            return _model;
        }

        /// <summary>
        /// image测试
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("/api/app/img/readAddModel")]
        public VoloModelInfo ReadAddModel7()
        {
            var _model = BuilderHelper.AttributeReadModelProperty<ImageModel>(new ImageModel());
            return _model;
        }

        /// <summary>
        /// file测试
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("/api/app/file/readAddModel")]
        public VoloModelInfo ReadAddModel8()
        {
            var _model = BuilderHelper.AttributeReadModelProperty<FileModel>(new FileModel());
            return _model;
        }

        /// <summary>
        /// file测试
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("/api/app/num/readAddModel")]
        public VoloModelInfo ReadAddModel9()
        {
            var _model = BuilderHelper.AttributeReadModelProperty<DataFormat>(new DataFormat());
            return _model;
        }

    }
}
​ ​