/// <summary>
        /// Generic method for getting the data features of your choosing as an asynchronous operation.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="location"></param>
        /// <param name="dataFeatures"></param>
        /// <returns></returns>
        public async Task <T> GetDataAsync <T>(PwsGeographicLocation location, WunDataFeatures dataFeatures) where T : IWunData
        {
            UriProvider  uriProvider   = new UriProvider();
            string       pwsIdentifier = GetPwsIdentifier(location);
            Uri          pwsUri        = uriProvider.CreateWunUri(dataFeatures, pwsIdentifier);
            JsonProvider jsonProvider  = new JsonProvider();
            string       jsonData      = await jsonProvider.DownloadJsonStringAsync(pwsUri);

            return(await Task.Factory.StartNew(() => JsonConvert.DeserializeObject <T>(jsonData)));
        }
        /// <summary>
        /// Generic method for getting the data features of your choosing as a synchronous operation.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="location"></param>
        /// <param name="dataFeatures"></param>
        /// <returns></returns>
        public T GetData <T>(PwsGeographicLocation location, WunDataFeatures dataFeatures) where T : IWunData
        {
            UriProvider  uriProvider   = new UriProvider();
            string       pwsIdentifier = GetPwsIdentifier(location);
            Uri          pwsUri        = uriProvider.CreateWunUri(dataFeatures, pwsIdentifier);
            JsonProvider jsonProvider  = new JsonProvider();
            string       jsonData      = jsonProvider.DownloadJsonString(pwsUri);

            return(JsonConvert.DeserializeObject <T>(jsonData));
        }
        public string GetPwsIdentifier(PwsGeographicLocation location)
        {
            string pwsIdentifier = "";

            switch (location)
            {
            case PwsGeographicLocation.Oban_StewartIsland_NZ:
                pwsIdentifier = "ISOUTHLA34";
                break;

            case PwsGeographicLocation.Kaitaia_Northland_NZ:
                pwsIdentifier = "INORTHLA43";
                break;
            }
            return(pwsIdentifier);
        }