using System.ComponentModel;

namespace QC.QTMInterface.Business_Objects;

public class TestParameter : INotifyPropertyChanged
{
	private string _value;

	[ReadOnly(true)]
	[Browsable(false)]
	public long ParamCollectionId { get; set; }

	[Browsable(false)]
	[ReadOnly(true)]
	public long StepParamId { get; set; }

	[Browsable(false)]
	[ReadOnly(true)]
	public long ParamDataId { get; set; }

	[Browsable(false)]
	[DisplayName("Add to TestCase?")]
	public bool IsSelected { get; set; }

	public string Name { get; set; }

	public string Description { get; set; }

	public string Value
	{
		get
		{
			return _value;
		}
		set
		{
			_value = value;
			RaisePropertyChangedEvent("Value");
		}
	}

	public string UL { get; set; }

	public string LL { get; set; }

	public string Unit { get; set; }

	[Browsable(false)]
	public string DefaultValue { get; set; }

	[Browsable(false)]
	public string DefaultLL { get; set; }

	[Browsable(false)]
	public string DefaultUL { get; set; }

	[Browsable(false)]
	[ReadOnly(true)]
	public string Type { get; set; }

	[ReadOnly(true)]
	[Browsable(false)]
	public bool IsOutput { get; set; }

	[Browsable(false)]
	public bool IsManual { get; set; }

	[Browsable(false)]
	public int NoOfElements { get; set; }

	[Browsable(false)]
	public string GVSet { get; set; }

	[Browsable(false)]
	public string GVGet { get; set; }

	[Browsable(false)]
	public int AttributeFlags { get; set; }

	[Browsable(false)]
	public long NodeDataRID { get; set; }

	[ReadOnly(true)]
	[Browsable(false)]
	public bool IsEditable { get; set; }

	public event PropertyChangedEventHandler PropertyChanged;

	private void RaisePropertyChangedEvent(string property)
	{
		if (this.PropertyChanged != null)
		{
			this.PropertyChanged(this, new PropertyChangedEventArgs(property));
		}
	}
}
