zoukankan      html  css  js  c++  java
  • 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     }

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

  • 相关阅读:
    Java精选笔记_EL表达式
    Java精选笔记_文件上传与下载
    Java精选笔记_Servlet事件监听器
    windows 下安装perl Tk 模块
    html 基础
    用grep 筛选fastq 序列
    php 统计fasta 序列长度和GC含量
    perl 截取 fastq文件
    Java_基础知识回顾
    Git_期末总结
  • 原文地址:https://www.cnblogs.com/shadow-fei/p/4667123.html
Copyright © 2011-2022 走看看