示例#1
0
        public void Create(MarkOperatingConditions markOperatingConditions,
                           int markId,
                           int envAggressivenessId,
                           int operatingAreaId,
                           int gasGroupId,
                           int constructionMaterialId,
                           int paintworkTypeId,
                           int highTensileBoltsTypeId)
        {
            if (markOperatingConditions == null)
            {
                throw new ArgumentNullException(nameof(markOperatingConditions));
            }
            var foundMark = _markRepo.GetById(markId);

            if (foundMark == null)
            {
                throw new ArgumentNullException(nameof(foundMark));
            }
            var uniqueConstraintViolationCheck = _repository.GetByMarkId(markId);

            if (uniqueConstraintViolationCheck != null)
            {
                throw new ConflictException(nameof(uniqueConstraintViolationCheck));
            }
            markOperatingConditions.Mark = foundMark;

            var envAggressiveness = _envAggressivenessRepo.GetById(envAggressivenessId);

            if (envAggressiveness == null)
            {
                throw new ArgumentNullException(nameof(envAggressiveness));
            }
            markOperatingConditions.EnvAggressiveness = envAggressiveness;

            var operatingArea = _operatingAreaRepo.GetById(operatingAreaId);

            if (operatingArea == null)
            {
                throw new ArgumentNullException(nameof(operatingArea));
            }
            markOperatingConditions.OperatingArea = operatingArea;

            var gasGroup = _gasGroupRepo.GetById(gasGroupId);

            if (gasGroup == null)
            {
                throw new ArgumentNullException(nameof(gasGroup));
            }
            markOperatingConditions.GasGroup = gasGroup;

            var constructionMaterial = _constructionMaterialRepo.GetById(constructionMaterialId);

            if (constructionMaterial == null)
            {
                throw new ArgumentNullException(nameof(constructionMaterial));
            }
            markOperatingConditions.ConstructionMaterial = constructionMaterial;

            var paintworkType = _paintworkTypeRepo.GetById(paintworkTypeId);

            if (paintworkType == null)
            {
                throw new ArgumentNullException(nameof(paintworkType));
            }
            markOperatingConditions.PaintworkType = paintworkType;

            var highTensileBoltsType = _highTensileBoltsTypeRepo.GetById(highTensileBoltsTypeId);

            if (highTensileBoltsType == null)
            {
                throw new ArgumentNullException(nameof(highTensileBoltsType));
            }
            markOperatingConditions.HighTensileBoltsType = highTensileBoltsType;

            _repository.Add(markOperatingConditions);

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