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); }