示例#1
0
        public void Update(
            int markId,
            MarkOperatingConditionsUpdateRequest markOperatingConditions)
        {
            if (markOperatingConditions == null)
            {
                throw new ArgumentNullException(nameof(markOperatingConditions));
            }
            var foundMarkOperatingConditions = _repository.GetByMarkId(markId);

            if (foundMarkOperatingConditions == null)
            {
                throw new ArgumentNullException(nameof(foundMarkOperatingConditions));
            }

            if (markOperatingConditions.SafetyCoeff != null)
            {
                foundMarkOperatingConditions.SafetyCoeff = markOperatingConditions.SafetyCoeff.GetValueOrDefault();
            }
            if (markOperatingConditions.Temperature != null)
            {
                foundMarkOperatingConditions.Temperature = markOperatingConditions.Temperature.GetValueOrDefault();
            }

            if (markOperatingConditions.EnvAggressivenessId != null)
            {
                var envAggressiveness = _envAggressivenessRepo.GetById(
                    markOperatingConditions.EnvAggressivenessId.GetValueOrDefault());
                if (envAggressiveness == null)
                {
                    throw new ArgumentNullException(nameof(envAggressiveness));
                }
                foundMarkOperatingConditions.EnvAggressiveness = envAggressiveness;
            }
            if (markOperatingConditions.OperatingAreaId != null)
            {
                var operatingArea = _operatingAreaRepo.GetById(
                    markOperatingConditions.OperatingAreaId.GetValueOrDefault());
                if (operatingArea == null)
                {
                    throw new ArgumentNullException(nameof(operatingArea));
                }
                foundMarkOperatingConditions.OperatingArea = operatingArea;
            }
            if (markOperatingConditions.GasGroupId != null)
            {
                var gasGroup = _gasGroupRepo.GetById(
                    markOperatingConditions.GasGroupId.GetValueOrDefault());
                if (gasGroup == null)
                {
                    throw new ArgumentNullException(nameof(gasGroup));
                }
                foundMarkOperatingConditions.GasGroup = gasGroup;
            }
            if (markOperatingConditions.ConstructionMaterialId != null)
            {
                var constructionMaterial = _constructionMaterialRepo.GetById(
                    markOperatingConditions.ConstructionMaterialId.GetValueOrDefault());
                if (constructionMaterial == null)
                {
                    throw new ArgumentNullException(nameof(constructionMaterial));
                }
                foundMarkOperatingConditions.ConstructionMaterial = constructionMaterial;
            }
            if (markOperatingConditions.PaintworkTypeId != null)
            {
                var paintworkType = _paintworkTypeRepo.GetById
                                        (markOperatingConditions.PaintworkTypeId.GetValueOrDefault());
                if (paintworkType == null)
                {
                    throw new ArgumentNullException(nameof(paintworkType));
                }
                foundMarkOperatingConditions.PaintworkType = paintworkType;
            }
            if (markOperatingConditions.HighTensileBoltsTypeId != null)
            {
                var highTensileBoltsType = _highTensileBoltsTypeRepo.GetById(
                    markOperatingConditions.HighTensileBoltsTypeId.GetValueOrDefault());
                if (highTensileBoltsType == null)
                {
                    throw new ArgumentNullException(nameof(highTensileBoltsType));
                }
                foundMarkOperatingConditions.HighTensileBoltsType = highTensileBoltsType;
            }
            _repository.Update(foundMarkOperatingConditions);

            var foundMark = _markRepo.GetById(markId);

            foundMark.EditedDate = DateTime.Now;
            _markRepo.Update(foundMark);
        }