hrntsm/STBDotNet

View on GitHub
STBDotNet/v140/StbColumnRc.cs

Summary

Maintainability
A
0 mins
Test Coverage
using System;
using System.ComponentModel;
using System.Xml.Serialization;

namespace STBDotNet.v140
{
    public class StbSecColumnRc : RcSection, ISecColumn, IStbSerializable
    {
        [XmlAttribute("D_reinforcement_axial")] public string DBarAxial { get; set; }
        [XmlAttribute("D_reinforcement_band")] public string DBarBand { get; set; }
        [XmlAttribute("Strength_reinforcement_axial")] public string StrengthBarAxial { get; set; }
        [XmlAttribute("Strength_reinforcement_band")] public string StrengthBarBand { get; set; }
        [XmlAttribute("kind_reinforcement_corner")] public string KindBarCorner { get; set; }
        [XmlAttribute("center_reinforcement_start_X")] [DefaultValue(0d)] public double CenterBarStartX { get; set; }
        [XmlAttribute("center_reinforcement_start_Y")] [DefaultValue(0d)] public double CenterBarStartY { get; set; }
        [XmlAttribute("center_reinforcement_end_X")] [DefaultValue(0d)] public double CenterBarEndX { get; set; }
        [XmlAttribute("center_reinforcement_end_Y")] [DefaultValue(0d)] public double CenterBarEndY { get; set; }
        [XmlAttribute("kind_column")] public string KindColumn { get; set; }
        [XmlAttribute("depth_cover_start_X")] [DefaultValue(0d)] public double DepthCoverStartX { get; set; }
        [XmlAttribute("depth_cover_end_X")] [DefaultValue(0d)] public double DepthCoverEndX { get; set; }
        [XmlAttribute("depth_cover_start_Y")] [DefaultValue(0d)] public double DepthCoverStartY { get; set; }
        [XmlAttribute("depth_cover_end_Y")] [DefaultValue(0d)] public double DepthCoverEndY { get; set; }
        // child element
        [XmlElement("StbSecFigure")] public RcColumnSecFigure Figure { get; set; }
        [XmlElement("StbSecBar_Arrangement")] public RcColumnSecBarArrangement BarArrangement { get; set; }
        [XmlIgnore] public RcColumnFigureType FigureType { get; private set; }

        public void OnAfterDeserialize()
        {
            FigureType = Figure.SecRect == null ? RcColumnFigureType.Circle : RcColumnFigureType.Rectangle;
        }

        public void OnBeforeSerialize()
        {
            throw new NotImplementedException();
        }

        public override string ToString()
        {
            return $"Id:{Id} {Name}, Type:ColRc, DMain:{DBarMain}, DBand:{DBarBand}";
        }
    }

    public class RcColumnSecFigure
    {
        [XmlElement("StbSecRect")] public Rectangle SecRect { get; set; }
        [XmlElement("StbSecCircle")] public Circle SecCircle { get; set; }

        public class Rectangle
        {
            [XmlAttribute("DX")] public double DX { get; set; }
            [XmlAttribute("DY")] public double DY { get; set; }
        }

        public class Circle
        {
            [XmlAttribute("D")] public double D { get; set; }
        }
    }

    public class RcColumnSecBarArrangement
    {
        [XmlElement("StbSecRect_Column_Same")] public RectSame RectSameSection { get; set; }
        [XmlElement("StbSecRect_Column_Not_Same")] public RectNotSame[] RectNotSameSection { get; set; }
        [XmlElement("StbSecCircle_Column_Same")] public CircleSame CircleSameSection { get; set; }
        [XmlElement("StbSecCircle_Column_Not_Same")] public CircleNotSame[] CircleNotSameSection { get; set; }
        [XmlElement("StbSecRect_Column_XReinforced")] public RectXReinforced XReinforced { get; set; }

        public class RectSame
        {
            [XmlAttribute("count_main_X_1st")] public int CountMainX1st { get; set; }
            [XmlAttribute("count_main_X_2nd")] [DefaultValue(0)] public int CountMainX2nd { get; set; }
            [XmlAttribute("count_main_Y_1st")] public int CountMainY1st { get; set; }
            [XmlAttribute("count_main_Y_2nd")] [DefaultValue(0)] public int CountMainY2nd { get; set; }
            [XmlAttribute("count_2nd_main_X_1st")] [DefaultValue(0)] public int Count2ndMainX1st { get; set; }
            [XmlAttribute("count_2nd_main_X_2nd")] [DefaultValue(0)] public int Count2ndMainX2nd { get; set; }
            [XmlAttribute("count_2nd_main_Y_1st")] [DefaultValue(0)] public int Count2ndMainY1st { get; set; }
            [XmlAttribute("count_2nd_main_Y_2nd")] [DefaultValue(0)] public int Count2ndMainY2nd { get; set; }
            [XmlAttribute("count_main_total")] public int CountMainTotal { get; set; }
            [XmlAttribute("count_axial")] [DefaultValue(0)] public int CountAxial { get; set; }
            [XmlAttribute("pitch_band")] public double PitchBand { get; set; }
            [XmlAttribute("count_band_dir_X")] public int CountBandDirX { get; set; }
            [XmlAttribute("count_band_dir_Y")] public int CountBandDirY { get; set; }
            [XmlAttribute("pitch_bar_spacing")] [DefaultValue(0d)] public double PitchBarSpacing { get; set; }
            [XmlAttribute("count_bar_spacing_X")] [DefaultValue(0)] public int CountBarSpacingX { get; set; }
            [XmlAttribute("count_bar_spacing_Y")] [DefaultValue(0)] public int CountBarSpacingY { get; set; }
        }

        public class RectNotSame : RectSame
        {
            [XmlAttribute("pos")] public string Position { get; set; }
        }

        public class CircleSame
        {
            [XmlAttribute("count_main")] public int CountMain { get; set; }
            [XmlAttribute("count_axial")] [DefaultValue(0)] public int CountAxial { get; set; }
            [XmlAttribute("count_band")] [DefaultValue(0)] public int CountBand { get; set; }
            [XmlAttribute("pitch_band")] public double PitchBand { get; set; }
            [XmlAttribute("pitch_bar_spacing")] [DefaultValue(0d)] public double PitchBarSpacing { get; set; }
            [XmlAttribute("count_bar_spacing_X")] [DefaultValue(0)] public int CountBarSpacingX { get; set; }
            [XmlAttribute("count_bar_spacing_Y")] [DefaultValue(0)] public int CountBarSpacingY { get; set; }
        }

        public class CircleNotSame : CircleSame
        {
            [XmlAttribute("pos")] public string Position { get; set; }
        }

        public class RectXReinforced
        {
            [XmlAttribute("count_main_X")] [DefaultValue(0)] public int CountMainX { get; set; }
            [XmlAttribute("count_main_Y")] [DefaultValue(0)] public int CountMainY { get; set; }
            [XmlAttribute("count_main_total")] [DefaultValue(0)] public int CountMainTotal { get; set; }
        }
    }

    public enum RcColumnFigureType
    {
        Rectangle,
        Circle
    }
}