MVC-Service、IService

MVC-Service、IService

  这次记录的是MVC的服务层和接口层,分别建命名为MyWeb.IService和MyWeb.Service两个类库。

IService接口

  IService层主要是接口,新建一个接口IUserServie,里面是一个异步登录的方法。

1 public interface IUserService 
2     {
3         Task<ExecutedResult<User>> Login(string userName, string password);
4     }

  同步登录的方法

1 ExecutedResult<User> Login(string userName, string password);

Service服务

  新建一个名为Repository的类,继承DBUtility的EFRepository<MyWebDbContext>

 1  public class Repository : EFRepository<MyWebDbContext>
 2     {
 3         public MyWebDbContext DB
 4         {
 5             get
 6             {
 7                 return this.DbContext;
 8             }
 9         }
10     }

  接下来就是具体的服务,新建一个UserService,继承IUserService,实现用户登录的方法

 1 public async Task<ExecutedResult<User>> Login(string userName, string password)
 2         {
 3             using (Repository db = new Repository())
 4             {
 5                 ExecutedResult<User> result = new ExecutedResult<User>();
 6                 try
 7                 {
 8                     var tempUser = await db.Get<User>(x => x.UserName == userName && x.Password == password).FirstOrDefaultAsync();
 9                     //同步,将上面改为
10                     //var tempUser = db.Get<User>(x => x.UserName == userName && x.Password == password).FirstOrDefault();
11                     if (tempUser != null)
12                     {
13                         result.Result = tempUser;
14                     }
15                     else
16                     {
17                         result.Result = null;
18                         result.Message = "用户不存在!";
19                     }
20                 }
21                 catch (Exception ex)
22                 {
23                     result.Exception = ex;
24                     result.Result = null;
25                 }
26 
27                 return result;
28             }
29         }

  ExecutedResult是一个执行结果类,用于规范方法的返回结果

 1 public class ExecutedResult<T>
 2     {
 3         public ExecutedResult()
 4         {
 5             this.Errors = new List<string>();
 6         }
 7 
 8         /// <summary>
 9         /// 是否有错,如果Exception不为空,则为true(有错误),否则,为false
10         /// </summary>
11         public bool HasError { get { return this.Exception != null; } }
12 
13         /// <summary>
14         /// 返回一些信息,可以是查询结果信息,可以是提示信息
15         /// </summary>
16         public string Message { get; set; }
17 
18         /// <summary>
19         /// 异常错误
20         /// </summary>
21         public Exception Exception { get; set; }
22 
23         /// <summary>
24         /// 对返回结果的描述
25         /// </summary>
26         public string Description { get; set; }
27 
28         /// <summary>
29         /// 返回的结果,泛型
30         /// </summary>
31         public T Result { get; set; }
32 
33         /// <summary>
34         /// 标签,可以为任意类型
35         /// </summary>
36         public object Tag { get; set; }
37 
38         /// <summary>
39         /// 编号
40         /// </summary>
41         public string Code { get; set; }
42 
43         /// <summary>
44         /// 错误信息集合
45         /// </summary>
46         public ICollection<string> Errors { get; set; }
47     }

 数据层已经完了,接下来是业务层,还在一点点研究和实验中,希望能早点完~

 

posted on 2015-07-22 13:13  shadow_飛  阅读(1915)  评论(0编辑  收藏  举报

Shadow