public virtual void CheckPossibilityToClose() { ValidationUtils.Assert(!IsClosed, "Невозможно закрыть уже закрытый заказ."); ValidationUtils.Assert(!Batches.Any(x => !x.IsClosed), "Невозможно закрыть заказ, если не закрыты партии."); //Нельзя успешно закрыть последнюю партию заказа, если заказ полностью не оплачен. //Кроме тех случаев, если есть неуспешно закрытые партии if (!Batches.Any(x => x.IsClosed && !x.IsClosedSuccessfully)) { ValidationUtils.Assert(IsFullyPaid, "Невозможно успешно закрыть заказ, если заказ полностью не оплачен."); } ValidationUtils.Assert(IsArticleTransportingPrimeCostCalculationTypeSet || !(Batches.Any(x => x.IsClosedSuccessfully)), "Невозможно закрыть заказ с успешно закрытыми партиями, так как в заказе не указан способ учета транспортировки в себестоимости товаров."); }
private List <string> GetSensorNames() { var sensorNames = new List <string>(); if (Batches != null && Batches.Any()) { foreach (var measurementBatch in Batches) { if (measurementBatch.Measurements != null && measurementBatch.Measurements.Any()) { foreach (var measurement in measurementBatch.Measurements) { if (!sensorNames.Contains(measurement.SensorName)) { sensorNames.Add(measurement.SensorName); } } } } return(sensorNames); } return(new List <string>()); }