Materials were refactored
This commit is contained in:
16
StructureHelperCommon/Infrastructures/Enums/NatSystems.cs
Normal file
16
StructureHelperCommon/Infrastructures/Enums/NatSystems.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Infrastructures.Enums
|
||||
{
|
||||
public enum NatSystems
|
||||
{
|
||||
RU,
|
||||
EU,
|
||||
US,
|
||||
IS
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Infrastructures.Interfaces
|
||||
{
|
||||
public interface IDataRepository<T>
|
||||
{
|
||||
void Save(T entity);
|
||||
T Load(Guid Id);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,13 @@
|
||||
namespace StructureHelperCommon.Infrastructures.Interfaces
|
||||
using System;
|
||||
|
||||
namespace StructureHelperCommon.Infrastructures.Interfaces
|
||||
{
|
||||
public interface ISaveable
|
||||
{
|
||||
int Id { get; set; }
|
||||
/// <summary>
|
||||
/// Unique identifier
|
||||
/// </summary>
|
||||
Guid Id { get;}
|
||||
void Save();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,55 @@
|
||||
using StructureHelperCommon.Infrastructures.Enums;
|
||||
using StructureHelperCommon.Models.Codes;
|
||||
using StructureHelperCommon.Models.Codes.Factories;
|
||||
using StructureHelperCommon.Models.Materials.Libraries;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Navigation;
|
||||
|
||||
namespace StructureHelperCommon.Infrastructures.Settings
|
||||
{
|
||||
public static class ProgramSetting
|
||||
{
|
||||
private static List<ICodeEntity> codesList;
|
||||
private static IMaterialRepository materialRepository;
|
||||
private static NatSystems natSystem;
|
||||
|
||||
public static CodeTypes CodeType => CodeTypes.SP63_2018;
|
||||
public static CodeTypes FRCodeType => CodeTypes.SP164_2014;
|
||||
public static NatSystems NatSystem
|
||||
{
|
||||
get => natSystem;
|
||||
set
|
||||
{
|
||||
natSystem = value;
|
||||
codesList = CodeFactory.GetCodeEntities()
|
||||
.Where(x => x.NatSystem == natSystem)
|
||||
.ToList();
|
||||
materialRepository = new MaterialRepository(codesList);
|
||||
}
|
||||
}
|
||||
public static CrossSectionAxisNames CrossSectionAxisNames => new CrossSectionAxisNames();
|
||||
public static LimitStatesList LimitStatesList => new LimitStatesList();
|
||||
public static CalcTermList CalcTermList => new CalcTermList();
|
||||
public static List<ICodeEntity> CodesList
|
||||
{ get
|
||||
{
|
||||
codesList ??= CodeFactory.GetCodeEntities()
|
||||
.Where(x => x.NatSystem == NatSystem)
|
||||
.ToList();
|
||||
return codesList;
|
||||
}
|
||||
}
|
||||
|
||||
public static IMaterialRepository MaterialRepository
|
||||
{
|
||||
get
|
||||
{
|
||||
materialRepository ??= new MaterialRepository(codesList);
|
||||
return materialRepository;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
31
StructureHelperCommon/Models/Codes/CodeEntity.cs
Normal file
31
StructureHelperCommon/Models/Codes/CodeEntity.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using StructureHelperCommon.Infrastructures.Enums;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Codes
|
||||
{
|
||||
public class CodeEntity : ICodeEntity
|
||||
{
|
||||
public Guid Id { get; }
|
||||
public NatSystems NatSystem { get; }
|
||||
public string Name { get; set; }
|
||||
public string FullName { get; set; }
|
||||
|
||||
|
||||
public CodeEntity(Guid id, NatSystems natSystem)
|
||||
{
|
||||
Id = id;
|
||||
NatSystem = natSystem;
|
||||
Name = "";
|
||||
FullName = "";
|
||||
}
|
||||
|
||||
public void Save()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
61
StructureHelperCommon/Models/Codes/Factories/CodeFactory.cs
Normal file
61
StructureHelperCommon/Models/Codes/Factories/CodeFactory.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
using StructureHelperCommon.Infrastructures.Enums;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Codes.Factories
|
||||
{
|
||||
public static class CodeFactory
|
||||
{
|
||||
public static List<ICodeEntity> GetCodeEntities()
|
||||
{
|
||||
List<ICodeEntity> items = new List<ICodeEntity>();
|
||||
items.AddRange(GetRussianCodes());
|
||||
items.AddRange(GetEuropeanCodes());
|
||||
return items;
|
||||
}
|
||||
|
||||
private static List<ICodeEntity> GetRussianCodes()
|
||||
{
|
||||
const NatSystems natSystem = NatSystems.RU;
|
||||
return new List<ICodeEntity>
|
||||
{
|
||||
new CodeEntity(new Guid("d4ab402a-ce2f-46db-8b3b-a5a66fb384e1"), natSystem)
|
||||
{
|
||||
Name = "SP 63.13330.2018",
|
||||
FullName = "Plain concrete and reinforced concrete structures"
|
||||
},
|
||||
new CodeEntity(new Guid("1a717049-cee7-40e0-923c-7a32a573a303"), natSystem)
|
||||
{
|
||||
Name = "GOST 26633-2015",
|
||||
FullName = "Heavy-weight and sand concretes. Specifications"
|
||||
},
|
||||
new CodeEntity(new Guid("c7c0f60f-2c82-45d1-8786-4c340fb5fb98"), natSystem)
|
||||
{
|
||||
Name = "GOST 34028-2016",
|
||||
FullName = "Reinforcing rolled products for reinforced concrete constructions. Specifications"
|
||||
}
|
||||
,
|
||||
new CodeEntity(new Guid("d934763d-4cb4-4923-ad15-2e78b0fe3b37"), natSystem)
|
||||
{
|
||||
Name = "GOST 53772-2010",
|
||||
FullName = "Reinforced steel low-relaxation 7-wire strands. Specifications"
|
||||
}
|
||||
};
|
||||
}
|
||||
private static List<ICodeEntity> GetEuropeanCodes()
|
||||
{
|
||||
const NatSystems natSystem = NatSystems.EU;
|
||||
return new List<ICodeEntity>
|
||||
{
|
||||
new CodeEntity(new Guid("a72c4448-7d05-4076-9636-1a6da3bfdd40"), natSystem)
|
||||
{
|
||||
Name = "EuroCode2-1990",
|
||||
FullName = "Plain concrete and reinforced concrete structures"
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
18
StructureHelperCommon/Models/Codes/ICodeEntity.cs
Normal file
18
StructureHelperCommon/Models/Codes/ICodeEntity.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using StructureHelperCommon.Infrastructures.Enums;
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Codes
|
||||
{
|
||||
public interface ICodeEntity : ISaveable
|
||||
{
|
||||
NatSystems NatSystem { get; }
|
||||
string Name { get; set; }
|
||||
string FullName { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,25 @@
|
||||
using StructureHelperCommon.Infrastructures.Enums;
|
||||
using StructureHelperCommon.Models.Codes;
|
||||
using System;
|
||||
|
||||
namespace StructureHelperCommon.Models.Materials.Libraries
|
||||
{
|
||||
public class ConcreteMaterialEntity : IConcreteMaterialEntity
|
||||
{
|
||||
public Guid Id { get; }
|
||||
public CodeTypes CodeType { get; set; }
|
||||
public ICodeEntity Code { get; set; }
|
||||
public string Name { get; set; }
|
||||
public double MainStrength { get; set; }
|
||||
|
||||
public ConcreteMaterialEntity(Guid id)
|
||||
{
|
||||
Id = id;
|
||||
}
|
||||
|
||||
public void Save()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using StructureHelperCommon.Infrastructures.Enums;
|
||||
using StructureHelperCommon.Infrastructures.Exceptions;
|
||||
using StructureHelperCommon.Infrastructures.Settings;
|
||||
using StructureHelperCommon.Infrastructures.Strings;
|
||||
using StructureHelperCommon.Models.Codes;
|
||||
|
||||
namespace StructureHelperCommon.Models.Materials.Libraries
|
||||
{
|
||||
@@ -8,61 +14,293 @@ namespace StructureHelperCommon.Models.Materials.Libraries
|
||||
public static List<ILibMaterialEntity> GetLibMaterials()
|
||||
{
|
||||
List<ILibMaterialEntity> libMaterials = new List<ILibMaterialEntity>();
|
||||
libMaterials.AddRange(GetConcreteEurocode());
|
||||
libMaterials.AddRange(GetConcreteSP63());
|
||||
libMaterials.AddRange(GetReinforcementEurocode());
|
||||
libMaterials.AddRange(GetReinforcementSP63());
|
||||
if (ProgramSetting.NatSystem == NatSystems.RU)
|
||||
{
|
||||
libMaterials.AddRange(GetConcreteSP63());
|
||||
libMaterials.AddRange(GetReinforcementSP63());
|
||||
}
|
||||
else if (ProgramSetting.NatSystem == NatSystems.EU)
|
||||
{
|
||||
libMaterials.AddRange(GetConcreteEurocode());
|
||||
libMaterials.AddRange(GetReinforcementEurocode());
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown + $": {ProgramSetting.NatSystem}");
|
||||
}
|
||||
return libMaterials;
|
||||
}
|
||||
|
||||
private static IEnumerable<ILibMaterialEntity> GetConcreteEurocode()
|
||||
{
|
||||
var code = CodeTypes.EuroCode_2_1990;
|
||||
List<ILibMaterialEntity> libMaterials = new List<ILibMaterialEntity>();
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C12", MainStrength = 12e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C20", MainStrength = 20e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C30", MainStrength = 30e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C40", MainStrength = 40e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C50", MainStrength = 50e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C60", MainStrength = 60e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C70", MainStrength = 70e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C80", MainStrength = 80e6 });
|
||||
ICodeEntity code = ProgramSetting.CodesList.Where(x => x.Name == "EuroCode2-1990").Single();
|
||||
var codeType = CodeTypes.EuroCode_2_1990;
|
||||
List<ILibMaterialEntity> libMaterials = new List<ILibMaterialEntity>
|
||||
{
|
||||
new ConcreteMaterialEntity(new Guid("145f3994-347b-466e-9c26-c7a8bf4a207a"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "C12",
|
||||
MainStrength = 12e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("f264ef97-ebbe-4c0b-b68e-905feb1e210e"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "C20",
|
||||
MainStrength = 20e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("b0d9df4d-f601-473e-8e52-05ef82b2d974"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "C30",
|
||||
MainStrength = 30e6 },
|
||||
new ConcreteMaterialEntity(new Guid("196dac5f-42b6-4a43-ab24-8cd5fe8af0a4"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "C40",
|
||||
MainStrength = 40e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("89e2ae9c-43e5-425f-93c6-f4b42e9916bd"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "C50",
|
||||
MainStrength = 50e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("0aea6c0d-6d49-4f61-a1c5-c599af73df76"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "C60",
|
||||
MainStrength = 60e6 },
|
||||
new ConcreteMaterialEntity(new Guid("a4fb66f8-6689-489e-ab40-adab1e90ab14"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "C70",
|
||||
MainStrength = 70e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("b5c36b22-ebb9-45c6-88cf-bb636187a2ed"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "C80",
|
||||
MainStrength = 80e6
|
||||
}
|
||||
};
|
||||
return libMaterials;
|
||||
}
|
||||
private static IEnumerable<ILibMaterialEntity> GetReinforcementEurocode()
|
||||
{
|
||||
var code = CodeTypes.EuroCode_2_1990;
|
||||
List<ILibMaterialEntity> libMaterials = new List<ILibMaterialEntity>();
|
||||
libMaterials.Add(new ReinforcementMaterialEntity() { CodeType = code, Name = "S240", MainStrength = 240e6 });
|
||||
libMaterials.Add(new ReinforcementMaterialEntity() { CodeType = code, Name = "S400", MainStrength = 400e6 });
|
||||
libMaterials.Add(new ReinforcementMaterialEntity() { CodeType = code, Name = "S500", MainStrength = 500e6 });
|
||||
ICodeEntity code = ProgramSetting.CodesList.Where(x => x.Name == "EuroCode2-1990").Single();
|
||||
var codeType = CodeTypes.EuroCode_2_1990;
|
||||
List<ILibMaterialEntity> libMaterials = new List<ILibMaterialEntity>
|
||||
{
|
||||
new ReinforcementMaterialEntity(new Guid("5413ba46-9bad-4cb3-a129-4e1a09373fd9"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "S240",
|
||||
MainStrength = 240e6
|
||||
},
|
||||
new ReinforcementMaterialEntity(new Guid("c60c8296-82bd-4bf8-8bb5-d0cc532e7372"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "S400",
|
||||
MainStrength = 400e6
|
||||
},
|
||||
new ReinforcementMaterialEntity(new Guid("0efb56bf-dc7f-4970-86e7-ddefb5ea7b93"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "S500",
|
||||
MainStrength = 500e6
|
||||
}
|
||||
};
|
||||
return libMaterials;
|
||||
}
|
||||
private static IEnumerable<ILibMaterialEntity> GetConcreteSP63()
|
||||
{
|
||||
var code = CodeTypes.SP63_2018;
|
||||
List<ILibMaterialEntity> libMaterials = new List<ILibMaterialEntity>();
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B5", MainStrength = 5e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B7,5", MainStrength = 7.5e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B10", MainStrength = 10e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B15", MainStrength = 15e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B20", MainStrength = 20e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B25", MainStrength = 25e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B30", MainStrength = 30e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B35", MainStrength = 35e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B40", MainStrength = 40e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B50", MainStrength = 50e6 });
|
||||
libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B60", MainStrength = 60e6 });
|
||||
ICodeEntity code = ProgramSetting.CodesList
|
||||
.Where(x => x.Name == "GOST 26633-2015")
|
||||
.Single();
|
||||
var codeType = CodeTypes.SP63_2018;
|
||||
List<ILibMaterialEntity> libMaterials = new List<ILibMaterialEntity>
|
||||
{
|
||||
new ConcreteMaterialEntity(new Guid("c63ce3b3-af54-44aa-bc06-130e6b6450ff"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "B5",
|
||||
MainStrength = 5e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("9b679822-0332-4504-8435-c7e718cdb6f4"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "B7,5",
|
||||
MainStrength = 7.5e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("9339af2b-46da-4354-a62e-fa330f46c165"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Name = "B10",
|
||||
Code = code,
|
||||
MainStrength = 10e6,
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("1cdc3598-c67b-4e35-89ac-3f7c0a9db167"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "B15",
|
||||
MainStrength = 15e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("f1d05405-2fd7-465e-82fc-d69f74e482aa"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "B20",
|
||||
MainStrength = 20e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("27ca419d-cff3-4f7f-82af-d577bb343651"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "B25",
|
||||
MainStrength = 25e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("2f5b70b9-f4c1-470d-ac27-a39a7093b6ea"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Name = "B30",
|
||||
MainStrength = 30e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("edd16698-cbe8-43ba-b249-7bab99fa0163"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "B35",
|
||||
MainStrength = 35e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("32614a91-fc85-4690-aa82-af45e00f7638"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "B40",
|
||||
MainStrength = 40e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("6182b496-9d80-4323-8b1e-7347923d7ceb"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "B50",
|
||||
MainStrength = 50e6
|
||||
},
|
||||
new ConcreteMaterialEntity(new Guid("96217bf1-564c-4150-afd6-9fe661c2e121"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "B60",
|
||||
MainStrength = 60e6 }
|
||||
};
|
||||
return libMaterials;
|
||||
}
|
||||
private static IEnumerable<ILibMaterialEntity> GetReinforcementSP63()
|
||||
{
|
||||
var code = CodeTypes.SP63_2018;
|
||||
var codeType = CodeTypes.SP63_2018;
|
||||
List<ILibMaterialEntity> libMaterials = new List<ILibMaterialEntity>();
|
||||
libMaterials.Add(new ReinforcementMaterialEntity() { CodeType = code, Name = "A240", MainStrength = 240e6 });
|
||||
libMaterials.Add(new ReinforcementMaterialEntity() { CodeType = code, Name = "A400", MainStrength = 400e6 });
|
||||
libMaterials.Add(new ReinforcementMaterialEntity() { CodeType = code, Name = "A500", MainStrength = 500e6 });
|
||||
libMaterials.AddRange(AddGOST34028(codeType));
|
||||
libMaterials.AddRange(AddGOST53772(codeType));
|
||||
return libMaterials;
|
||||
}
|
||||
|
||||
private static List<ILibMaterialEntity> AddGOST34028(CodeTypes codeType)
|
||||
{
|
||||
var code = ProgramSetting.CodesList
|
||||
.Where(x => x.Name == "GOST 34028-2016")
|
||||
.Single();
|
||||
List<ILibMaterialEntity> range = new List<ILibMaterialEntity>
|
||||
{
|
||||
new ReinforcementMaterialEntity(new Guid("c47ebbd7-2e0c-4247-81b6-dc3fbd064bab"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "A240",
|
||||
MainStrength = 240e6
|
||||
},
|
||||
new ReinforcementMaterialEntity(new Guid("ea422282-3465-433c-9b93-c5bbfba5a904"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "A400",
|
||||
MainStrength = 400e6
|
||||
},
|
||||
new ReinforcementMaterialEntity(new Guid("045b54b1-0bbf-41fd-a27d-aeb20f600bb4"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "A500",
|
||||
MainStrength = 500e6
|
||||
}
|
||||
};
|
||||
return range;
|
||||
}
|
||||
private static List<ILibMaterialEntity> AddGOST53772(CodeTypes codeType)
|
||||
{
|
||||
var code = ProgramSetting.CodesList
|
||||
.Where(x => x.Name == "GOST 53772-2010")
|
||||
.Single();
|
||||
List<ILibMaterialEntity> range = new List<ILibMaterialEntity>()
|
||||
{
|
||||
new ReinforcementMaterialEntity(new Guid("1b44e9eb-d19d-4fd5-9755-33ae01683dc1"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "K1400/1670",
|
||||
MainStrength = 1400e6
|
||||
},
|
||||
new ReinforcementMaterialEntity(new Guid("93c48a27-ab37-4bd2-aeb8-2a7247e74a1b"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "K1500/1770",
|
||||
MainStrength = 1500e6
|
||||
},
|
||||
new ReinforcementMaterialEntity(new Guid("6e0df35e-4839-4cf1-9182-c7ad7f81a548"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "K1600/1860",
|
||||
MainStrength = 1600e6
|
||||
},
|
||||
new ReinforcementMaterialEntity(new Guid("29d7ef1b-bd30-471e-af0e-8b419eb9f043"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "K1700/1960",
|
||||
MainStrength = 1700e6
|
||||
},
|
||||
new ReinforcementMaterialEntity(new Guid("494b959f-0194-4f02-9dcf-ff313c5e352b"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "K1800/2060",
|
||||
MainStrength = 1800e6
|
||||
},
|
||||
new ReinforcementMaterialEntity(new Guid("02031332-fe1e-456d-b339-143eb9ca8293"))
|
||||
{
|
||||
CodeType = codeType,
|
||||
Code = code,
|
||||
Name = "K1900/2160",
|
||||
MainStrength = 1900e6
|
||||
}
|
||||
};
|
||||
return range;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
using StructureHelperCommon.Infrastructures.Enums;
|
||||
using StructureHelperCommon.Models.Codes;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Materials.Libraries
|
||||
{
|
||||
internal class FiberMaterialEntity : IFiberMaterialEntity
|
||||
{
|
||||
///<inheritdoc/>
|
||||
public Guid Id { get; }
|
||||
public CodeTypes CodeType { get; }
|
||||
public ICodeEntity Code { get; set; }
|
||||
public string Name { get; }
|
||||
///<inheritdoc/>
|
||||
public double YoungsModulus { get; set; }
|
||||
///<inheritdoc/>
|
||||
public double MainStrength { get; }
|
||||
public FiberMaterialEntity(Guid id)
|
||||
{
|
||||
Id = id;
|
||||
Name = "";
|
||||
}
|
||||
public void Save()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Materials.Libraries
|
||||
{
|
||||
public interface IFiberMaterialEntity : ILibMaterialEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// Modulus of elasticity, Pa
|
||||
/// </summary>
|
||||
double YoungsModulus { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,17 @@
|
||||
using StructureHelperCommon.Infrastructures.Enums;
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
using StructureHelperCommon.Models.Codes;
|
||||
|
||||
namespace StructureHelperCommon.Models.Materials.Libraries
|
||||
{
|
||||
public interface ILibMaterialEntity
|
||||
public interface ILibMaterialEntity : ISaveable
|
||||
{
|
||||
CodeTypes CodeType { get; }
|
||||
ICodeEntity Code { get; set; }
|
||||
string Name { get; }
|
||||
/// <summary>
|
||||
/// Strength of material, Pa
|
||||
/// </summary>
|
||||
double MainStrength { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Materials.Libraries
|
||||
{
|
||||
public interface IMaterialRepository
|
||||
{
|
||||
List<ILibMaterialEntity> Repository { get; }
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using StructureHelperCommon.Infrastructures.Enums;
|
||||
using StructureHelperCommon.Infrastructures.Settings;
|
||||
|
||||
namespace StructureHelperCommon.Models.Materials.Libraries
|
||||
{
|
||||
@@ -9,19 +10,31 @@ namespace StructureHelperCommon.Models.Materials.Libraries
|
||||
private static List<ILibMaterialEntity> libMaterials;
|
||||
public static List<ILibMaterialEntity> GetRepository()
|
||||
{
|
||||
if (libMaterials is null) { libMaterials = LibMaterialFactory.GetLibMaterials(); }
|
||||
|
||||
libMaterials = LibMaterialFactory.GetLibMaterials();
|
||||
//if (libMaterials is null)
|
||||
//{
|
||||
//}
|
||||
return libMaterials;
|
||||
}
|
||||
|
||||
public static IEnumerable<ILibMaterialEntity> GetConcreteRepository(CodeTypes code)
|
||||
public static List<ILibMaterialEntity> GetConcreteRepository()
|
||||
{
|
||||
return GetRepository().Where(x => x.CodeType == code & x is IConcreteMaterialEntity); ;
|
||||
var natCodes = ProgramSetting.CodesList;
|
||||
var rep = GetRepository();
|
||||
var repository = rep
|
||||
.Where(x => natCodes.Contains(x.Code) & x is IConcreteMaterialEntity)
|
||||
.ToList();
|
||||
return repository;
|
||||
}
|
||||
|
||||
public static IEnumerable<ILibMaterialEntity> GetReinforcementRepository(CodeTypes code)
|
||||
public static List<ILibMaterialEntity> GetReinforcementRepository()
|
||||
{
|
||||
return GetRepository().Where(x => x.CodeType == code & x is IReinforcementMaterialEntity);
|
||||
var natCodes = ProgramSetting.CodesList;
|
||||
var rep = GetRepository();
|
||||
var repository = rep
|
||||
.Where(x => natCodes.Contains(x.Code) & x is IReinforcementMaterialEntity)
|
||||
.ToList();
|
||||
return repository;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
using StructureHelperCommon.Infrastructures.Settings;
|
||||
using StructureHelperCommon.Models.Codes;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperCommon.Models.Materials.Libraries
|
||||
{
|
||||
public class MaterialRepository : IMaterialRepository
|
||||
{
|
||||
public List<ILibMaterialEntity> Repository { get; }
|
||||
|
||||
public MaterialRepository(IEnumerable<ICodeEntity> codes)
|
||||
{
|
||||
Repository = LibMaterialFactory.GetLibMaterials()
|
||||
.Where(x => codes.Contains(x.Code))
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,24 @@
|
||||
using StructureHelperCommon.Infrastructures.Enums;
|
||||
using StructureHelperCommon.Models.Codes;
|
||||
using System;
|
||||
|
||||
namespace StructureHelperCommon.Models.Materials.Libraries
|
||||
{
|
||||
public class ReinforcementMaterialEntity : IReinforcementMaterialEntity
|
||||
{
|
||||
public Guid Id { get; }
|
||||
public CodeTypes CodeType { get; set; }
|
||||
public ICodeEntity Code { get; set; }
|
||||
public string Name { get; set; }
|
||||
public double MainStrength { get; set; }
|
||||
|
||||
public ReinforcementMaterialEntity(Guid id)
|
||||
{
|
||||
Id = id;
|
||||
}
|
||||
public void Save()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user