DD.WellWorkover.Cloud/AsbCloudWebApi/Controllers/AdminTelemetryController.cs

50 lines
1.5 KiB
C#
Raw Normal View History

2021-09-10 11:28:57 +05:00
using AsbCloudApp.Data;
using AsbCloudApp.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
2021-09-29 10:12:54 +05:00
using System.Collections.Generic;
using System.Linq;
2021-12-17 12:48:58 +05:00
using System.Threading;
using System.Threading.Tasks;
2021-09-10 11:28:57 +05:00
namespace AsbCloudWebApi.Controllers
{
[Route("api/admin/telemetry")]
[ApiController]
[Authorize]
public class AdminTelemetryController : CrudController<TelemetryDto, ICrudService<TelemetryDto>>
{
2021-09-29 10:12:54 +05:00
private readonly ITelemetryService telemetryService;
public AdminTelemetryController(ICrudService<TelemetryDto> service,
ITelemetryService telemetryService)
2021-09-10 11:28:57 +05:00
: base(service)
{
service.Includes.Add("Well");
2021-09-29 10:12:54 +05:00
this.telemetryService = telemetryService;
}
[HttpGet]
[Route("/reduntentUids")]
public IActionResult GetRedundentRemoteUids()
{
2021-12-17 12:48:58 +05:00
var result = telemetryService.GetDuplicateRemoteUids().Select(i => new { i.Key, ids = i.Ids });
2021-09-29 10:12:54 +05:00
return Ok(result);
}
/// <summary>
/// merge telemetries
/// </summary>
/// <returns></returns>
[HttpPost]
2021-12-17 12:48:58 +05:00
[Route("/merge/{idFrom}/{idTo}")]
public async Task<IActionResult> MergeTelemetriesAsync(int idFrom, int idTo, CancellationToken token = default)
2021-09-29 10:12:54 +05:00
{
2021-12-17 12:48:58 +05:00
var count = await telemetryService.MergeAsync(idFrom, idTo, token)
.ConfigureAwait(false);
2021-09-29 10:12:54 +05:00
return Ok(count);
2021-09-10 11:28:57 +05:00
}
}
}