From d4935b0e7b59a4530686bc8f271a1bf35591b486 Mon Sep 17 00:00:00 2001 From: Olga Nemt Date: Thu, 25 Jan 2024 16:22:40 +0500 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=81=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=D0=BC=20yield?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repository/WellOperationRepository.cs | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/AsbCloudInfrastructure/Repository/WellOperationRepository.cs b/AsbCloudInfrastructure/Repository/WellOperationRepository.cs index 8a389e74..2e4e956a 100644 --- a/AsbCloudInfrastructure/Repository/WellOperationRepository.cs +++ b/AsbCloudInfrastructure/Repository/WellOperationRepository.cs @@ -339,7 +339,7 @@ public class WellOperationRepository : IWellOperationRepository var firstOperation = wellOperationDtos .FirstOrDefault(); if (firstOperation is null) - return Enumerable.Empty(); + yield break; var request = new WellOperationRequest() { @@ -353,7 +353,9 @@ public class WellOperationRepository : IWellOperationRepository var wellOperationsUnion = entities.Union(wellOperationDtos).OrderBy(o => o.DateStart); - return Validate(wellOperationsUnion); + var results = Validate(wellOperationsUnion); + foreach ( var result in results) + yield return result; } public IEnumerable Validate(IEnumerable wellOperationDtos) @@ -361,12 +363,10 @@ public class WellOperationRepository : IWellOperationRepository var firstOperation = wellOperationDtos .FirstOrDefault(); if (firstOperation is null) - return Enumerable.Empty(); + yield break; - var validationResults = new List(); - - var wellOperations = wellOperationDtos.ToArray(); - for (var i = wellOperations.Count() - 1; i >= 1; i--) + var wellOperations = wellOperationDtos.OrderBy(o => o.DateStart).ToArray(); + for (var i = 1; i < wellOperations.Length; i++) { var prevOperation = wellOperations[i - 1]; var currentOperation = wellOperations[i]; @@ -378,20 +378,18 @@ public class WellOperationRepository : IWellOperationRepository if (prevOperationDateStart.AddDays(Gap) < currentOperationDateStart) { - validationResults.Add(new ValidationResult( + yield return new ValidationResult( $"Разница дат между операциями не должна превышать 90 дней", - new[] { nameof(wellOperations) })); + new[] { nameof(wellOperations) }); } if (prevOperationDateEnd > currentOperationDateStart) { - validationResults.Add(new ValidationResult( + yield return new ValidationResult( $"Предыдущая операция не завершена", - new[] { nameof(wellOperations) })); + new[] { nameof(wellOperations) }); } } - - return validationResults; } ///