Exemplo n.º 1
0
		/// <summary>
		/// Read Entry from the database. 
		/// </summary>
		/// <param name="qr">A QueryResult object that is created by performing a query</param>
		/// <param name="cdEntry">out parameter - CDEntry object</param>
		/// <returns></returns>
		public string Read(QueryResult qr, out CDEntry cdEntry)
		{
			Debug.Assert(qr != null);
			cdEntry = null;

			StringCollection coll = null;
			StringBuilder builder = new StringBuilder(FreeDBHelper.Commands.CMD_READ);
			builder.Append("+");
			builder.Append(qr.Category);
			builder.Append("+");
			builder.Append(qr.Discid);

			//make call
			try
			{
				coll = Call(builder.ToString());
			}

			catch (Exception ex)
			{
				string msg = "Error performing cddb read.";
				Exception newex = new Exception(msg, ex);
				throw newex;
			}

			// check if results came back
			if (coll.Count < 0)
			{
				string msg = "No results returned from cddb read.";
				Exception ex = new Exception(msg, null);
				throw ex;
			}


			string code = GetCode(coll[0]);
			if (code == ResponseCodes.CODE_INVALID)
			{
				string msg = "Unable to process results for cddb read. Returned Data: " + coll[0];
				Exception ex = new Exception(msg, null);
				throw ex;
			}


			switch (code)
			{
				case ResponseCodes.CODE_500:
					return ResponseCodes.CODE_500;

				case ResponseCodes.CODE_401: // entry not found
				case ResponseCodes.CODE_402: // server error
				case ResponseCodes.CODE_403: // Database entry is corrupt
				case ResponseCodes.CODE_409: // No handshake
					return code;

				case ResponseCodes.CODE_210: // good 
					{
						coll.RemoveAt(0); // remove the 210
						cdEntry = new CDEntry(coll);
						return ResponseCodes.CODE_210;
					}
				default:
					return ResponseCodes.CODE_500;
			}
		}
Exemplo n.º 2
0
        /// <summary>
        /// Read Entry from the database.
        /// </summary>
        /// <param name="qr">A QueryResult object that is created by performing a query</param>
        /// <param name="cdEntry">out parameter - CDEntry object</param>
        /// <returns></returns>
        public string Read(QueryResult qr, out CDEntry cdEntry)
        {
            Debug.Assert(qr != null);
            cdEntry = null;

            StringCollection coll    = null;
            StringBuilder    builder = new StringBuilder(FreeDBHelper.Commands.CMD_READ);

            builder.Append("+");
            builder.Append(qr.Category);
            builder.Append("+");
            builder.Append(qr.Discid);

            //make call
            try
            {
                coll = Call(builder.ToString());
            }

            catch (Exception ex)
            {
                string    msg   = "Error performing cddb read.";
                Exception newex = new Exception(msg, ex);
                throw newex;
            }

            // check if results came back
            if (coll.Count < 0)
            {
                string    msg = "No results returned from cddb read.";
                Exception ex  = new Exception(msg, null);
                throw ex;
            }


            string code = GetCode(coll[0]);

            if (code == ResponseCodes.CODE_INVALID)
            {
                string    msg = "Unable to process results for cddb read. Returned Data: " + coll[0];
                Exception ex  = new Exception(msg, null);
                throw ex;
            }


            switch (code)
            {
            case ResponseCodes.CODE_500:
                return(ResponseCodes.CODE_500);

            case ResponseCodes.CODE_401:                     // entry not found
            case ResponseCodes.CODE_402:                     // server error
            case ResponseCodes.CODE_403:                     // Database entry is corrupt
            case ResponseCodes.CODE_409:                     // No handshake
                return(code);

            case ResponseCodes.CODE_210:                     // good
            {
                coll.RemoveAt(0);                            // remove the 210
                cdEntry = new CDEntry(coll);
                return(ResponseCodes.CODE_210);
            }

            default:
                return(ResponseCodes.CODE_500);
            }
        }