You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iot/projects/IoTCenter/Controllers/SwaggerController.cs

54 lines
2.3 KiB

using Application.Domain.Entities;
using Infrastructure.Data;
using Infrastructure.Extensions;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Swashbuckle.AspNetCore.Annotations;
using System.Collections.Generic;
using System.Linq;
namespace IoT.Shared.Controllers.Onvif
{
[SwaggerTag("Swagger")]
public class SwaggerController : Controller
{
private readonly IRepository<DeviceInfo> _deviceInfoRepo;
private readonly IRepository<Device> _deviceRepo;
private readonly IRepository<Node> _nodeRepo;
public SwaggerController(IRepository<DeviceInfo> deviceInfoRepo, IRepository<Device> deviceRepo, IRepository<Node> nodeRepo)
{
this._deviceInfoRepo = deviceInfoRepo;
this._deviceRepo = deviceRepo;
this._nodeRepo = nodeRepo;
}
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("")]
public List<DeviceInfo> GetDeviceInfos([SwaggerParameter("当前页序号")]int pageIndex = 1, [SwaggerParameter("单页数量")]int pageSize = 10)
{
return this._deviceInfoRepo.ReadOnlyTable().Paged(pageIndex, pageSize);
}
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("")]
public List<Node> GetNodes([SwaggerParameter("当前页序号")]int pageIndex = 1, [SwaggerParameter("单页数量")]int pageSize = 10)
{
return this._nodeRepo.ReadOnlyTable().Paged(pageIndex, pageSize);
}
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("")]
public List<Device> GetDevices([SwaggerParameter("当前页序号")]int pageIndex = 1, [SwaggerParameter("单页数量")]int pageSize = 10)
{
return this._deviceRepo.ReadOnlyTable().Paged(pageIndex, pageSize);
}
[HttpGet, Route("/[controller]/[action]"), SwaggerOperation("")]
public Device GetDevice([SwaggerParameter("网关编号")]string gateway, [SwaggerParameter("设备编号")]string number)
{
return this._deviceRepo.ReadOnlyTable()
.Include(o => o.Data)
.WhereIf(!string.IsNullOrEmpty(gateway), o => o.GatewayNumber == gateway)
.Where(o => o.Number == number)
.FirstOrDefault();
}
}
}