Exemple #1
0
        /// <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));
                }
            }
        }
Exemple #2
0
        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;
            }
        }