CS2-22: Исправлено выпадение исключения при запросе диапазона дат

This commit is contained in:
KharchenkoVV 2021-07-01 17:54:29 +05:00
parent fd5871a9ec
commit 88f0453a32

View File

@ -99,25 +99,22 @@ namespace AsbCloudInfrastructure.Services
if (telemetry is null) if (telemetry is null)
return null; return null;
try var datesRange = (from d in db.DataSaubBases
{ where d.IdTelemetry == telemetry.Id
var datesRange = (from d in db.DataSaubBases select d.Date).Union(
where d.IdTelemetry == telemetry.Id from m in db.Messages
select d.Date).Union( where m.IdTelemetry == telemetry.Id
from m in db.Messages select m.Date).DefaultIfEmpty().GroupBy(g => true)
where m.IdTelemetry == telemetry.Id .Select(g => new
select m.Date).GroupBy(g => true) {
.Select(g => new From = g.Min(),
{ To = g.Max()
From = g.Min(), }).OrderBy(gr => gr.From).FirstOrDefault();
To = g.Max()
}).FirstOrDefault(); return new DatesRangeDto {
return new DatesRangeDto { From = datesRange.From, To = datesRange.To }; From = datesRange.From,
} To = datesRange.To.Year == 1 ? DateTime.MaxValue : datesRange.To
catch(InvalidOperationException) };
{
return new DatesRangeDto { From = DateTime.MinValue, To = DateTime.MaxValue };
}
} }
private IEnumerable<Report> GetSuitableReportsFromDb(int wellId, DateTime begin, DateTime end, int stepSeconds, int format) private IEnumerable<Report> GetSuitableReportsFromDb(int wellId, DateTime begin, DateTime end, int stepSeconds, int format)