private void AddType(string name, СlothesType category, MeasurementUnits units, string[] keyWords, СlothesType?category2 = null, string[] keywords2 = null) { var type = ItemsTypes.FirstOrDefault(x => x.Name == name); if (type == null) { type = new ItemsType { Name = name, Category = ItemTypeCategory.wear, WearCategory = category, Units = units, }; switch (category) { case СlothesType.Wear: type.SizeType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Размер одежды"); type.HeightType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Рост"); break; case СlothesType.Shoes: type.SizeType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Размер обуви"); break; case СlothesType.WinterShoes: type.SizeType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Размер зимней обуви"); break; case СlothesType.Headgear: type.SizeType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Размер головного убора"); break; case СlothesType.Gloves: type.SizeType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Размер перчаток"); break; case СlothesType.Mittens: type.SizeType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Размер рукавиц"); break; } ItemsTypes.Add(type); } TypeDescription desc; if (category2 != null) { var type2 = new ItemsType { Name = name, Category = ItemTypeCategory.wear, WearCategory = category2.Value, Units = units }; switch (category) { case СlothesType.Wear: type2.SizeType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Размер одежды"); type2.HeightType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Рост"); break; case СlothesType.Shoes: type2.SizeType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Размер обуви"); break; case СlothesType.WinterShoes: type2.SizeType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Размер зимней обуви"); break; case СlothesType.Headgear: type2.SizeType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Размер головного убора"); break; case СlothesType.Gloves: type2.SizeType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Размер перчаток"); break; case СlothesType.Mittens: type2.SizeType = sizeService.GetSizeType(uow).FirstOrDefault(x => x.Name == "Размер рукавиц"); break; } desc = new TypeDescription(type, type2, keywords2.Select(x => x.ToLower()).ToArray()); } else { desc = new TypeDescription(type); } foreach (var word in keyWords) { KeyWords.Add(word.ToLower(), desc); } }