Admin
4 天以前 bd6818fc9d40f343547bafca0743658f3c0379dc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using WIDESEA.Core.Filters;
using WIDESEA.Core.ObjectActionValidator;
using WIDESEA.Entity.DomainModels;
 
namespace WIDESEA.WebApi.Controllers
{
    /// <summary>
    ///1、普通参数校验只需要标识属性:[ObjectGeneralValidatorFilter(ValidatorGeneral.xxx,ValidatorGeneral.xxx)],
    ///需要在ValidatorGeneral枚举中添加枚举值(参数名),并在UseMethodsGeneralParameters方法中注入进去即可在任何地方重复使用
    /// 
    /// 2、model校验只需要标识属性[ObjectModelValidatorFilter(ValidatorModel.xxx)]
    /// 需要在ValidatorModel枚举中添加枚举值(参数名),
    /// 并在UseMethodsModelParameters方法中注入进去(注入时可以指定需要验证的字段)即可在任何地方重复使用
    /// --如果其他方法使用的是同一个model,但验证的字段不同,在ValidatorModel重新添加一个枚举值,
    /// --并在UseMethodsModelParameters方法注入,添加新的指定字段即可
    /// </summary>
    [JWTAuthorize, ApiController]
    [Route("validatorExample")]
    public class ObjectActionValidatorExampleController: Controller
    {
        public ObjectActionValidatorExampleController()
        { 
        
        }
 
        /// <summary>
        /// 验证UserName与PhoneNo为必填
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="phoneNo"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("test1")]
        [ObjectGeneralValidatorFilter(ValidatorGeneral.UserName,ValidatorGeneral.PhoneNo)]
        public IActionResult Test1(string userName,string phoneNo)
        {
            return Json("参数验证通过");
        }
 
        /// <summary>
        /// 验证PhoneNo为必填
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="phoneNo"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("test2")]
        [ObjectGeneralValidatorFilter(ValidatorGeneral.PhoneNo)]
        public IActionResult Test2(string userName, string phoneNo)
        {
            return Json("参数验证通过");
        }
 
 
        /// <summary>
        /// 验证字符长度与值大小
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="phoneNo"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("test3")]
        [ObjectGeneralValidatorFilter(ValidatorGeneral.Local, ValidatorGeneral.Qty)]
        public IActionResult Test3(string local, string qty)
        {
            return Json("参数验证通过");
        }
 
        /// <summary>
        /// Login配置的规则用户名与密码必填
        /// </summary>
        /// <param name="loginInfo"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("Test4")]
        [ObjectModelValidatorFilter(ValidatorModel.Login)]
        public IActionResult Test4([FromBody]LoginInfo loginInfo)
        {
            return Json("参数验证通过");
        }
 
        /// <summary>
        /// LoginOnlyPassWord配置的规则密码必填
        /// </summary>
        /// <param name="loginInfo"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("Test5")]
        [ObjectModelValidatorFilter(ValidatorModel.LoginOnlyPassWord)]
        public IActionResult Test5([FromBody]LoginInfo loginInfo)
        {
            return Json("参数验证通过");
        }
 
 
        /// <summary>
        /// 同时验证实体LoginInfo与单个参数phoneNo
        ///  Login配置的规则用户名与密码必填,手机号必填
        /// </summary>
        /// <param name="loginInfo"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("Test6")]
        [ObjectModelValidatorFilter(ValidatorModel.Login)]
        [ObjectGeneralValidatorFilter(ValidatorGeneral.PhoneNo)]
        public IActionResult Test6([FromBody]LoginInfo loginInfo, string phoneNo)
        {
            return Json("参数验证通过");
        }
    }
}