namespace QC.CorpTest.Libraries.ExcelLibrary;

public class AxisProperties
{
	private int crossesAt = 1;

	private string crosses = "xlAxisCrossesAutomatic";

	private bool hasMajorGridLines = true;

	private bool hasMinorGridLines;

	private string axisGroup = "xlPrimary";

	private string axisType = "xlCategory";

	private string majorTickMark = "xlTickMarkCross";

	private string minorTickMark = "xlTickMarkNone";

	private double maximumScale = 100.0;

	private double minimumScale;

	private bool minimumScaleIsAuto = true;

	private bool maximumScaleIsAuto = true;

	private TickLabelProperties tickLabel;

	public string AxisGroup => axisGroup;

	public string AxisType => axisType;

	public int CrossesAt
	{
		get
		{
			return crossesAt;
		}
		set
		{
			crossesAt = value;
		}
	}

	public string Crosses
	{
		get
		{
			return crosses;
		}
		set
		{
			crosses = value;
		}
	}

	public bool HasMajorGridLines
	{
		get
		{
			return hasMajorGridLines;
		}
		set
		{
			if (axisGroup == "xlPrimary")
			{
				hasMajorGridLines = value;
			}
			else
			{
				hasMajorGridLines = false;
			}
		}
	}

	public bool HasMinorGridLines
	{
		get
		{
			return hasMinorGridLines;
		}
		set
		{
			if (axisGroup == "xlPrimary")
			{
				hasMinorGridLines = value;
			}
			else
			{
				hasMinorGridLines = false;
			}
		}
	}

	public string MajorTickMark
	{
		get
		{
			return majorTickMark;
		}
		set
		{
			majorTickMark = value;
		}
	}

	public string MinorTickMark
	{
		get
		{
			return minorTickMark;
		}
		set
		{
			minorTickMark = value;
		}
	}

	public double MinimumScale
	{
		get
		{
			return minimumScale;
		}
		set
		{
			minimumScale = value;
		}
	}

	public double MaximumScale
	{
		get
		{
			return maximumScale;
		}
		set
		{
			maximumScale = value;
		}
	}

	public bool MinimumScaleIsAuto
	{
		get
		{
			return minimumScaleIsAuto;
		}
		set
		{
			minimumScaleIsAuto = value;
		}
	}

	public bool MaximumScaleIsAuto
	{
		get
		{
			return maximumScaleIsAuto;
		}
		set
		{
			maximumScaleIsAuto = value;
		}
	}

	public TickLabelProperties TickLabel
	{
		get
		{
			return tickLabel;
		}
		set
		{
			tickLabel = value;
		}
	}

	public AxisProperties(string axisType, string axisGroup)
	{
		this.axisGroup = axisGroup;
		this.axisType = axisType;
		tickLabel = new TickLabelProperties();
	}
}
