1.结构
2.新建一个model类库CoreModel
建立model:Cinema.cs、Movie.cs、Sales.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace CoreModel
{
/// <summary>
/// 电影院
/// </summary>
public class Cinema
{
/// <summary>
/// 编码
/// </summary>
public int Id { get; set; }
/// <summary>
/// 电影院名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 地址
/// </summary>
public string Location { get; set; }
/// <summary>
/// 容量
/// </summary>
public int Capacity { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace CoreModel
{
/// <summary>
/// 电影
/// </summary>
public class Movie
{
/// <summary>
/// 编码
/// </summary>
public int Id { get; set; }
/// <summary>
/// 电影名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 电影院编码
/// </summary>
public int CinemaId { get; set; }
/// <summary>
/// 主演
/// </summary>
public string Starring { get; set; }
/// <summary>
/// 上映时间
/// </summary>
public DateTime ReleaseDate { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace CoreModel
{
public class Sales
{
public int CinemaId { get; set; }
public int MovieId { get; set; }
public int AudienceCount { get; set; }
}
}
3.建立Business:
1)接口:ICinemaService.cs、IMovieService.cs
using CoreModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace CoreModelTwo.Services
{
public interface ICinemaService
{
/// <summary>
/// 获取所有电影院数据
/// </summary>
/// <returns></returns>
Task<IEnumerable<Cinema>> GetAllAsync();
/// <summary>
/// 根据电影院编码获取电影院详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<Cinema> GetCinemaById(int id);
/// <summary>
/// 添加
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
Task AddAsync(Cinema model);
}
}
using CoreModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace CoreModelTwo.Services
{
public interface IMovieService
{
/// <summary>
/// 通过电影院编码获取电影
/// </summary>
/// <returns></returns>
Task<IEnumerable<Movie>> GetByCinemaAsync(int cinemaId);
/// <summary>
/// 添加电影
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
Task AddAsync(Movie model);
}
}
2)Service:CinemaService.cs、MovieService.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CoreModel;
namespace CoreModelTwo.Services
{
public class CinemaService : ICinemaService
{
private readonly List<Cinema> _cinemaList = new List<Cinema>();
/// <summary>
/// 初始化数据
/// </summary>
public CinemaService()
{
_cinemaList.Add(new Cinema {
Id =1,
Name = "万达影城",
Location = "湖里万达5L",
Capacity = 500
});
_cinemaList.Add(new Cinema
{
Id = 2,
Name = "万达影城2",
Location = "湖里万达5L",
Capacity = 1000
});
}
/// <summary>
/// 添加电影院
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public Task AddAsync(Cinema model)
{
var maxId = _cinemaList.Max(x=>x.Id);
model.Id = maxId + 1;
_cinemaList.Add(model);
return Task.CompletedTask;
}
/// <summary>
/// 电影院列表
/// </summary>
/// <returns></returns>
public Task<IEnumerable<Cinema>> GetAllAsync()
{
return Task.Run(()=>_cinemaList.AsEnumerable());
}
/// <summary>
/// 通过电影院编码获取详细信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public Task<Cinema> GetCinemaById(int id)
{
return Task.Run(()=>_cinemaList.FirstOrDefault(c=>c.Id == id));
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CoreModel;
namespace CoreModelTwo.Services
{
public class MovieService : IMovieService
{
private readonly List<Movie> _movieList = new List<Movie>();
public MovieService()
{
_movieList.Add(new Movie {
Id = 1,
Name = "神偷奶爸",
CinemaId = 1,
Starring = "美国佬",
ReleaseDate = Convert.ToDateTime("2018-03-27")
});
_movieList.Add(new Movie
{
Id = 1,
Name = "绿皮书",
CinemaId = 2,
Starring = "I Don't Know",
ReleaseDate = Convert.ToDateTime("2019-03-18")
});
_movieList.Add(new Movie
{
Id = 1,
Name = "海王",
CinemaId = 2,
Starring = "波塞冬",
ReleaseDate = Convert.ToDateTime("2019-03-12")
});
}
/// <summary>
/// 添加电影
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public Task AddAsync(Movie model)
{
var maxId = _movieList.Max(m=>m.Id);
model.Id = maxId + 1;
_movieList.Add(model);
return Task.CompletedTask;
}
/// <summary>
/// 根据电影院编码获取电影
/// </summary>
/// <param name="cinemaId"></param>
/// <returns></returns>
public Task<IEnumerable<Movie>> GetByCinemaAsync(int cinemaId)
{
return Task.Run(()=>_movieList.Where(m=>m.CinemaId == cinemaId));
}
}
}
3.修改Startup.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CoreModelTwo.Services;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespace CoreModelTwo
{
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
//使用Singleton进行IoC依赖注入(每当有请求IMovieService都会返回MovieService实例)
services.AddSingleton<IMovieService,MovieService>();
services.AddSingleton<ICinemaService, CinemaService>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILogger<Startup> logger)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
}
}
参阅:https://v.qq.com/x/page/r0744ix6a9s.html
谢谢Dave
转载于:https://www.cnblogs.com/dzw159/p/10562276.html