Example #1
0
        public void Create_ShouldFailWithConflict_WhenConflictValue()
        {
            // Arrange
            int markId = 1;
            int envAggressivenessId    = _rnd.Next(1, TestData.envAggressiveness.Count());
            int operatingAreaId        = _rnd.Next(1, TestData.operatingAreas.Count());
            int gasGroupId             = _rnd.Next(1, TestData.gasGroups.Count());
            int constructionMaterialId = _rnd.Next(1, TestData.constructionMaterials.Count());
            int paintworkTypeId        = _rnd.Next(1, TestData.paintworkTypes.Count());
            int highTensileBoltsTypeId = _rnd.Next(1, TestData.highTensileBoltsTypes.Count());

            var newMarkOperatingConditions = new MarkOperatingConditions
            {
                SafetyCoeff = 1.0f,
                Temperature = -34,
            };

            // Act & Assert
            Assert.Throws <ConflictException>(() => _service.Create(newMarkOperatingConditions,
                                                                    markId,
                                                                    envAggressivenessId,
                                                                    operatingAreaId,
                                                                    gasGroupId,
                                                                    constructionMaterialId,
                                                                    paintworkTypeId,
                                                                    highTensileBoltsTypeId));

            _repository.Verify(mock => mock.Add(It.IsAny <MarkOperatingConditions>()), Times.Never);
        }
Example #2
0
        public void Create_ShouldCreateMarkOperatingConditions()
        {
            // Arrange
            int markId = 3;
            int envAggressivenessId    = _rnd.Next(1, TestData.envAggressiveness.Count());
            int operatingAreaId        = _rnd.Next(1, TestData.operatingAreas.Count());
            int gasGroupId             = _rnd.Next(1, TestData.gasGroups.Count());
            int constructionMaterialId = _rnd.Next(1, TestData.constructionMaterials.Count());
            int paintworkTypeId        = _rnd.Next(1, TestData.paintworkTypes.Count());
            int highTensileBoltsTypeId = _rnd.Next(1, TestData.highTensileBoltsTypes.Count());

            var newMarkOperatingConditions = new MarkOperatingConditions
            {
                SafetyCoeff = 1.0f,
                Temperature = -34,
            };

            // Act
            _service.Create(newMarkOperatingConditions,
                            markId,
                            envAggressivenessId,
                            operatingAreaId,
                            gasGroupId,
                            constructionMaterialId,
                            paintworkTypeId,
                            highTensileBoltsTypeId);

            // Assert
            _repository.Verify(mock => mock.Add(
                                   It.IsAny <MarkOperatingConditions>()), Times.Once);
            Assert.NotNull(newMarkOperatingConditions.Mark);
        }
Example #3
0
        public void Add_ShouldAddMarkOperatingConditions()
        {
            // Arrange
            var context = GetContext(TestData.markOperatingConditions);
            var repo    = new SqlMarkOperatingConditionsRepo(context);

            int markId = 3;
            int envAggressivenessId     = _rnd.Next(1, TestData.envAggressiveness.Count());
            int operatingAreaId         = _rnd.Next(1, TestData.operatingAreas.Count());
            int gasGroupId              = _rnd.Next(1, TestData.gasGroups.Count());
            int constructionMaterialId  = _rnd.Next(1, TestData.constructionMaterials.Count());
            int paintworkTypeId         = _rnd.Next(1, TestData.paintworkTypes.Count());
            int highTensileBoltsTypeId  = _rnd.Next(1, TestData.highTensileBoltsTypes.Count());
            var markOperatingConditions = new MarkOperatingConditions
            {
                Mark                 = TestData.marks.FirstOrDefault(v => v.Id == markId),
                SafetyCoeff          = 1.0f,
                EnvAggressiveness    = TestData.envAggressiveness.FirstOrDefault(v => v.Id == envAggressivenessId),
                Temperature          = -34,
                OperatingArea        = TestData.operatingAreas.FirstOrDefault(v => v.Id == operatingAreaId),
                GasGroup             = TestData.gasGroups.FirstOrDefault(v => v.Id == gasGroupId),
                ConstructionMaterial = TestData.constructionMaterials.FirstOrDefault(v => v.Id == constructionMaterialId),
                PaintworkType        = TestData.paintworkTypes.FirstOrDefault(v => v.Id == paintworkTypeId),
                HighTensileBoltsType = TestData.highTensileBoltsTypes.FirstOrDefault(v => v.Id == highTensileBoltsTypeId),
            };

            // Act
            repo.Add(markOperatingConditions);

            // Assert
            Assert.NotNull(repo.GetByMarkId(markId));

            context.Database.EnsureDeleted();
            context.Dispose();
        }
        public void FinalStep(MarkOperatingConditions conditions)
        {
            var corrProtVariant = _corrProtVariantRepo.GetByOperatingConditionIdsWithPaintwork(
                conditions.EnvAggressiveness.Id,
                conditions.ConstructionMaterial.Id,
                conditions.GasGroup.Id,
                conditions.OperatingArea.Id,
                conditions.PaintworkType.Id);
            var corrProtCoating = _corrProtCoatingRepo.GetByFastnessTypeAndGroup(
                corrProtVariant.PaintworkFastness.Id,
                corrProtVariant.PaintworkType.Id,
                corrProtVariant.PaintworkGroup.GetValueOrDefault());
            var primer = _primerRepo.GetByGroup(corrProtCoating.PrimerGroup);

            protectionString   = protectionString + " группы " + corrProtVariant.PaintworkGroup + ":";
            installationString = "- на монтаже - " + corrProtCoating.Name + " в " + corrProtVariant.PaintworkNumOfLayers + " сл. толщиной " + corrProtVariant.PaintworkPrimerThickness + " мкм;";
            factoryString      = "- на заводе - " + primer.Name + " в " + corrProtVariant.PrimerNumOfLayers + " сл.";
            cleaningString     = "Степень очистки поверхности стальных конструкций от окислов перед окраской - " + corrProtVariant.CleaningDegree.Name + ".";
        }
        public void NextStep(MarkOperatingConditions conditions)
        {
            var corrProtVariant = _corrProtVariantRepo.GetByOperatingConditionIds(
                conditions.EnvAggressiveness.Id,
                conditions.ConstructionMaterial.Id,
                conditions.GasGroup.Id,
                conditions.OperatingArea.Id);

            if (corrProtVariant.Status == 2)
            {
                paintworkString = "# Окраска лакокрасочными материалами не требуется.";
                cleaningString  = "# Степень очистки поверхности стальных конструкций от окислов - " + corrProtVariant.CleaningDegree.Name + ".";
                return;
            }
            else if (corrProtVariant.Status == 3)
            {
                paintworkString = "# При заданной зоне эксплуатации, группе газов, агрессивности и материале конструкций окраска лакокрасочными материалами не возможна";
                return;
            }
            FinalStep(conditions);
        }
 public void Update(MarkOperatingConditions markOperatingConditions)
 {
     _context.Entry(markOperatingConditions).State = EntityState.Modified;
     _context.SaveChanges();
 }
 public void Add(MarkOperatingConditions markOperatingConditions)
 {
     _context.MarkOperatingConditions.Add(markOperatingConditions);
     _context.SaveChanges();
 }
        private void AppendList(
            WordprocessingDocument wordDoc,
            IEnumerable <MarkGeneralDataPoint> markGeneralDataPoints,
            MarkOperatingConditions markOperatingConditions)
        {
            NumberingDefinitionsPart numberingPart = wordDoc.MainDocumentPart.NumberingDefinitionsPart;

            if (numberingPart == null)
            {
                numberingPart = wordDoc.MainDocumentPart.AddNewPart <NumberingDefinitionsPart>(
                    "NumberingDefinitionsPart1");
                Numbering element = new Numbering();
                element.Save(numberingPart);
            }

            var abstractNumberId = numberingPart.Numbering.Elements <AbstractNum>().Count() + 1;
            var abstractLevel    = new Level(
                new NumberingFormat()
            {
                Val = NumberFormatValues.Decimal
            },
                new LevelText()
            {
                Val = "%1"
            },
                new StartNumberingValue()
            {
                Val = 1,
            },
                new RunProperties()
            {
                RunFonts = new RunFonts()
                {
                    Ascii         = "GOST type B",
                    HighAnsi      = "GOST type B",
                    ComplexScript = "GOST type B"
                },
                Italic = new Italic()
                {
                    Val = OnOffValue.FromBoolean(true)
                },
                FontSize = new FontSize()
                {
                    Val = 26.ToString(),
                }
            })
            {
                LevelIndex = 0
            };
            var abstractLevel2 = new Level(
                new NumberingFormat()
            {
                Val = NumberFormatValues.Decimal
            },
                new LevelText()
            {
                Val = "%1.%2"
            },
                new StartNumberingValue()
            {
                Val = 1,
            },
                new RunProperties()
            {
                RunFonts = new RunFonts()
                {
                    Ascii         = "GOST type B",
                    HighAnsi      = "GOST type B",
                    ComplexScript = "GOST type B"
                },
                Italic = new Italic()
                {
                    Val = OnOffValue.FromBoolean(true)
                },
                FontSize = new FontSize()
                {
                    Val = 26.ToString(),
                }
            })
            {
                LevelIndex = 1
            };
            var abstractLevel3 = new Level(
                new NumberingFormat()
            {
                Val = NumberFormatValues.Bullet
            },
                new LevelText()
            {
                Val = "–"
            },
                new RunProperties()
            {
                RunFonts = new RunFonts()
                {
                    Ascii         = "Calibri",
                    HighAnsi      = "Calibri",
                    ComplexScript = "Calibri"
                },
            })
            {
                LevelIndex = 2
            };
            var abstractLevel4 = new Level(
                new LevelSuffix()
            {
                Val = LevelSuffixValues.Space
            })
            {
                LevelIndex = 3
            };

            var abstractNum = new AbstractNum(
                abstractLevel, abstractLevel2, abstractLevel3, abstractLevel4)
            {
                AbstractNumberId = abstractNumberId
            };

            if (abstractNumberId == 1)
            {
                numberingPart.Numbering.Append(abstractNum);
            }
            else
            {
                AbstractNum lastAbstractNum = numberingPart.Numbering.Elements <AbstractNum>().Last();
                numberingPart.Numbering.InsertAfter(abstractNum, lastAbstractNum);
            }

            var numberId = numberingPart.Numbering.Elements <NumberingInstance>().Count() + 1;
            NumberingInstance numberingInstance = new NumberingInstance()
            {
                NumberID = numberId
            };
            AbstractNumId abstractNumId = new AbstractNumId()
            {
                Val = abstractNumberId
            };

            numberingInstance.Append(abstractNumId);

            if (numberId == 1)
            {
                numberingPart.Numbering.Append(numberingInstance);
            }
            else
            {
                var lastNumberingInstance = numberingPart.Numbering.Elements <NumberingInstance>().Last();
                numberingPart.Numbering.InsertAfter(numberingInstance, lastNumberingInstance);
            }

            Body body = wordDoc.MainDocumentPart.Document.Body;
            var  markGeneralDataPointsList = markGeneralDataPoints.ToList();

            for (var i = 0; i < markGeneralDataPoints.Count(); i++)
            {
                var item = markGeneralDataPointsList[i];
                var spacingBetweenLines = new SpacingBetweenLines()
                {
                    After = "120", Line = "240"
                };
                var indentation = new Indentation()
                {
                    Left = "360", Right = "360", FirstLine = "720"
                };

                NumberingProperties numberingProperties;
                var pointText = item.Text;
                if (item.OrderNum == 1)
                {
                    numberingProperties = new NumberingProperties(
                        new NumberingLevelReference()
                    {
                        Val = 0
                    }, new NumberingId()
                    {
                        Val = numberId
                    });
                }
                else if (item.Text[0] == '#' && item.Text[1] == ' ')
                {
                    numberingProperties = new NumberingProperties(
                        new NumberingLevelReference()
                    {
                        Val = 1
                    }, new NumberingId()
                    {
                        Val = numberId
                    });

                    pointText = pointText.Substring(2) + ".";
                }
                else if (item.Text[0] == '-' && item.Text[1] == ' ')
                {
                    numberingProperties = new NumberingProperties(
                        new NumberingLevelReference()
                    {
                        Val = 2
                    }, new NumberingId()
                    {
                        Val = numberId
                    });

                    if (i == 0)
                    {
                        pointText = pointText.Substring(2) + ".";
                    }
                    else if (markGeneralDataPointsList[i - 1].OrderNum == 1)
                    {
                        pointText = pointText.Substring(2) + ".";
                    }
                    else if (markGeneralDataPointsList[i - 1].Text[0] == '#' &&
                             markGeneralDataPointsList[i - 1].Text[1] == ' ')
                    {
                        pointText = pointText.Substring(2) + ".";
                    }
                    else
                    {
                        pointText = pointText.Substring(2) + ";";
                    }
                }
                else
                {
                    numberingProperties = new NumberingProperties(
                        new NumberingLevelReference()
                    {
                        Val = 3
                    }, new NumberingId()
                    {
                        Val = numberId
                    });
                    pointText   = pointText + ".";
                    indentation = new Indentation()
                    {
                        Left = "360", Right = "360", FirstLine = "640"
                    };
                }

                var paragraphProperties = new ParagraphProperties(
                    numberingProperties, spacingBetweenLines, indentation);
                var newPara = new Paragraph(paragraphProperties);

                if (item.Section.Id == 7)
                {
                    if (pointText.Contains("коэффициент надежности по ответственности"))
                    {
                        pointText = pointText.Replace("{}", markOperatingConditions.SafetyCoeff.ToString());
                    }
                    else if (pointText.Contains("степень агрессивного воздействия среды"))
                    {
                        pointText = pointText.Replace("{}", markOperatingConditions.EnvAggressiveness.Name);
                    }
                    else if (pointText.Contains("расчетная температура эксплуатации"))
                    {
                        pointText = pointText.Replace("{}",
                                                      $"{(markOperatingConditions.Temperature < 0 ? ("минус " + -markOperatingConditions.Temperature) : markOperatingConditions.Temperature)}");
                    }
                }

                if (pointText.Contains('^'))
                {
                    var split = pointText.Split('^');
                    if (split.Count() > 1)
                    {
                        for (int k = 0; k < split.Count(); k++)
                        {
                            if (k > 0)
                            {
                                newPara.AppendChild(Word.GetTextElement(split[k][0].ToString(), 26, false, true));
                            }
                            if (k == 0)
                            {
                                newPara.AppendChild(Word.GetTextElement(split[k], 26));
                            }
                            else
                            if (split[k].Length > 1)
                            {
                                newPara.AppendChild(Word.GetTextElement(split[k].Substring(1), 26));
                            }
                        }
                    }
                    else
                    {
                        newPara.AppendChild(Word.GetTextElement(pointText, 26));
                    }
                }
                else
                {
                    newPara.AppendChild(Word.GetTextElement(pointText, 26));
                }
                body.PrependChild(newPara);
            }
        }
Example #9
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);
        }