/// <summary>
        /// Constructs a unique well identifier from the supplied arguments This overload is used to build from DLS components.
        /// </summary>
        public UniqueWellIdentifier(string except, byte lsd, byte section, byte town, byte range, char direction, byte mer, char eventSeq)
        {
            string id =
                $"1{except}{lsd:00}{section:00}{town:000}{range:00}{direction}{mer:0}0{eventSeq}";

            _id           = id.ToCharArray(0, 16);
            _surveySystem = SurveySystemCode.DominionLandSurvey;
        }
        /// <summary>
        /// Constructs a unique well identifier from the supplied arguments. This overload is used to build from NTS components.
        /// </summary>
        public UniqueWellIdentifier(char except, char quarterUnit, byte unit, char block, byte series, char mapArea, byte sheet, char eventSeq)
        {
            string id =
                $"20{except}{quarterUnit}{unit:000}{block}{series:000}{mapArea}{sheet:00}0{eventSeq}";

            _id           = id.ToCharArray(0, 16);
            _surveySystem = SurveySystemCode.NationalTopographicSeries;
        }
 private UniqueWellIdentifier(char[] uwi, SurveySystemCode surveySystem)
 {
     _id           = uwi;
     _surveySystem = surveySystem;
 }