/// <summary> /// Creates a SongDataContainer from a Serialized JSON string /// </summary> /// <param name="value"></param> /// <returns></returns> public static SongDataContainer ConvertFromJSONData(string value) { NameValueCollection valuePairs = GlobalFunctions.ParseDictionaryToNVC(new JavaScriptSerializer().Deserialize <Dictionary <string, string> >(value)); if (bool.TryParse(valuePairs["LocalFile"], out bool boolvalue) && boolvalue) // Local { if (valuePairs["DirLocation"] == null || !File.Exists(valuePairs["DirLocation"])) { throw new ArgumentException("DirLocation: location for local file not found or valid"); } else { return(CreateNewContainer(valuePairs["DirLocation"], string.IsNullOrEmpty(valuePairs["OriginalRequester"]) ? "#DATA MISSING#" : valuePairs["OriginalRequester"], string.IsNullOrEmpty(valuePairs["Link"]) ? "#DATA MISSING#" : valuePairs["Link"], DateTime.TryParse(valuePairs["LastValidPing"], out DateTime date) ? date : new DateTime(), string.IsNullOrEmpty(valuePairs["Title"]) ? "#DATA MISSING#" : valuePairs["Title"], int.TryParse(valuePairs["LengthSec"], out int length) ? length : 0, bool.TryParse(valuePairs["LastPingFailed"], out bool failping) && failping, boolvalue)); } } else { if (valuePairs["Link"] == null) { throw new ArgumentException("Link: Link for secondary song not found or valid"); } else { return(CreateNewContainer(string.IsNullOrEmpty(valuePairs["DirLocation"]) ? "#DATA MISSING#" : valuePairs["DirLocation"], string.IsNullOrEmpty(valuePairs["OriginalRequester"]) ? "#DATA MISSING#" : valuePairs["OriginalRequester"], valuePairs["Link"], DateTime.TryParse(valuePairs["LastValidPing"], out DateTime date) ? date : new DateTime(), string.IsNullOrEmpty(valuePairs["Title"]) ? "#DATA MISSING#" : valuePairs["Title"], int.TryParse(valuePairs["LengthSec"], out int length) ? length : 0, bool.TryParse(valuePairs["LastPingFailed"], out bool failping) && failping, boolvalue)); } } }
public void ReadJSONData(string value) { NameValueCollection valuePairs = GlobalFunctions.ParseDictionaryToNVC(new JavaScriptSerializer().Deserialize <Dictionary <string, string> >(value)); Link = valuePairs["Link"]; OriginalRequester = valuePairs["OriginalRequester"]; Title = valuePairs["Title"]; if (int.TryParse(valuePairs["LengthSec"], out int intvalue)) { LengthSec = intvalue; } DirLocation = valuePairs["DirLocation"]; if (DateTime.TryParse(valuePairs["LastValidPing"], out DateTime datevalue)) { LastValidPing = datevalue; } if (bool.TryParse(valuePairs["LastPingFailed"], out bool boolping)) { LastPingFailed = boolping; } else { LastPingFailed = false; } if (bool.TryParse(valuePairs["LocalFile"], out bool boolvalue)) { LocalFile = boolvalue; } else { LocalFile = false; } }