jy-plc/Services/RadarItemService.cs

76 lines
2.4 KiB
C#
Raw Permalink Normal View History

2024-07-24 13:30:21 +00:00
using LangGuan.Command.Model.EntityModel;
using Microsoft.Extensions.Configuration;
using MongoDB.Bson;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace LangGuan.Services
{
public class RadarItemService : BaseService<RadarItems>
{
/// <summary>
///
/// </summary>
/// <param name="config"></param>
public RadarItemService(IConfiguration config) : base(config, nameof(RadarItems))
{
}
/// <summary>
/// 批量新加
/// </summary>
/// <param name="radarItems"></param>
/// <returns></returns>
public async Task AddMany(IEnumerable<RadarItems> radarItems)
{
await base.CreateManyAsync(radarItems);
}
/// <summary>
/// 取结果
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public async Task<IEnumerable<RadarItems>> GetByPids(IEnumerable<string> ids)
{
FilterDefinitionBuilder<RadarItems> builderFilter = Builders<RadarItems>.Filter;
FilterDefinition<RadarItems> filter = builderFilter.In("pid", ids);
var result = await base.FindListyFilter(filter);
return result;
}
/// <summary>
/// 取单条
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<List<IEnumerable<double>>> GetByPid(string id)
{
Expression<Func<RadarItems, bool>> exp = num => num.pid == id;
var result = (await base.GetListWithExp(exp)).ToList().Select(s => s.Signal).ToList(); ;
return result;
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<int> getcount(string id)
{
Expression<Func<RadarItems, bool>> exp = num => num.pid == id;
var query = await base.GetListWithExp(exp);
var ids = query.Select(s => s.Id).ToList();
if (ids.Count > 36)
{
ids = ids.Take(ids.Count - 36).ToList();
foreach (var item in ids)
{
await base.RemoveAsync(item);
}
}
return query.Count();
}
}
}