using System;
using System.Collections.Generic;
using System.Text;

namespace CarbonLib.Carbon.Models
{
    public class SoilPropertyType
    {
        public double OM_Cont { get; set; }
        public double OM_Corr { get; set; }
        public double C_Cont { get; set; }
        public double C_Corr { get; set; }
        public double Bulk_Density { get; set; }
        public double Clay_Content { get; set; }
        public int? Depth { get; set; }
        public bool Depth10 { get; set; }
    }

    struct SoilTypePropertyKey
    {
        public string SoilType { get; set; }
        public string SoilProperty{ get; set; }

        public override int GetHashCode()
        {
            return SoilType.GetHashCode() ^ SoilProperty.GetHashCode();
        }

        public override bool Equals(object obj)
        {
            if (obj is SoilTypePropertyKey)
            {
                SoilTypePropertyKey compositeKey = (SoilTypePropertyKey)obj;

                return ((this.SoilType == compositeKey.SoilType) &&
                        (this.SoilProperty == compositeKey.SoilProperty));
            }

            return false;
        }
    }
}
