using AutoMapper;
using LangGuan.Command.AutoMapper;
using LangGuan.Command.Model;
using LangGuan.Command.Model.EntityModel;
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace LangGuan.Services
{
///
///
///
public class RadarService : BaseService
{
private readonly IMapper _mapper;
private DeviceSerive _deviceSerive;
private RadarItemService _radarItemService;
///
///
///
///
///
///
///
public RadarService(IConfiguration config, IMapper mapper,
DeviceSerive deviceSerive, RadarItemService radarItemService) : base(config, nameof(Radar))
{
_mapper = mapper;
_deviceSerive = deviceSerive;
_radarItemService = radarItemService;
}
///
/// 新加数据
///
///
///
public async Task Add(RadarView request)
{
var entity = _mapper.Map(request);
await _deviceSerive.Add(new Device()
{
deviceId = request.deviceId,
deviceIp = request.deviceIp,
state = 1
});
//数据量过大,这里要分开存储
var result = await base.CreateAsync(entity);
List items = new List();
foreach (var item in request.Signal)
{
items.Add(new RadarItems() { pid = result.Id, Signal = item });
}
await _radarItemService.AddMany(items);
return new ApiResult() { code = 0, msg = "" };
}
///
/// 首页用图
///
///
///
public async Task> Top(int n)
{
Expression> exp = filter => true;
var query = await base.GetListWithExp(exp);
var items = query.OrderByDescending(s => s.AcqTime).Take(n)
.Select(s => new
{
s.Id,
s.deviceId,
s.AcqTime,
s.DataPointNum,
s.DetectRange,
s.ExposureTime,
s.ScanAngle,
s.SystemBlind
}).ToList();
List