diff --git a/SpotifyAPI/Local/Models/Track.cs b/SpotifyAPI/Local/Models/Track.cs
index de2c4ecb..6b68cd1e 100644
--- a/SpotifyAPI/Local/Models/Track.cs
+++ b/SpotifyAPI/Local/Models/Track.cs
@@ -125,7 +125,7 @@ namespace SpotifyAPI.Local.Models
{
wc.Proxy = null;
String url = GetAlbumArtUrl(size);
- if (url == "")
+ if (String.IsNullOrEmpty(url))
return null;
var data = wc.DownloadData(url);
using (MemoryStream ms = new MemoryStream(data))
@@ -146,7 +146,7 @@ namespace SpotifyAPI.Local.Models
{
wc.Proxy = null;
String url = GetAlbumArtUrl(size);
- if (url == "")
+ if (String.IsNullOrEmpty(url))
return null;
return wc.DownloadData(url);
}
diff --git a/SpotifyAPI/Local/RemoteHandler.cs b/SpotifyAPI/Local/RemoteHandler.cs
index b01cbd4a..42a8645c 100644
--- a/SpotifyAPI/Local/RemoteHandler.cs
+++ b/SpotifyAPI/Local/RemoteHandler.cs
@@ -19,7 +19,7 @@ namespace SpotifyAPI.Local
{
OauthKey = GetOAuthKey();
CfidKey = GetCfid();
- return CfidKey != "";
+ return !String.IsNullOrEmpty(CfidKey);
}
internal async void SendPauseRequest()
@@ -46,7 +46,7 @@ namespace SpotifyAPI.Local
internal StatusResponse GetNewStatus()
{
String response = Query("remote/status.json", true, true, -1);
- if (response == "")
+ if (String.IsNullOrEmpty(response))
{
return null;
}
@@ -77,7 +77,7 @@ namespace SpotifyAPI.Local
if (cfidList == null)
return "";
if (cfidList.Count != 1)
- throw new Exception("CFID couldn't be loaded");
+ throw new Exception("CFID could not be loaded");
return cfidList[0].Error == null ? cfidList[0].Token : "";
}
@@ -114,9 +114,9 @@ namespace SpotifyAPI.Local
response = "[ " + wc.DownloadString(address) + " ]";
}
}
- catch (Exception)
+ catch
{
- return "";
+ return String.Empty;
}
return response;
@@ -155,9 +155,9 @@ namespace SpotifyAPI.Local
response = "[ " + await wc.DownloadStringTaskAsync(new Uri(address)) + " ]";
}
}
- catch (Exception)
+ catch
{
- return "";
+ return String.Empty;
}
return response;
diff --git a/SpotifyAPI/Local/SpotifyLocalAPI.cs b/SpotifyAPI/Local/SpotifyLocalAPI.cs
index 40c8bffa..f2e5557f 100644
--- a/SpotifyAPI/Local/SpotifyLocalAPI.cs
+++ b/SpotifyAPI/Local/SpotifyLocalAPI.cs
@@ -12,7 +12,7 @@ namespace SpotifyAPI.Local
{
[DllImport("user32.dll")]
private static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
- [DllImport("nircmd.dll")]
+ [DllImport("nircmd.dll", CharSet = CharSet.Auto)]
private static extern bool DoNirCmd(String nirCmdStr);
private bool _listenForEvents;
diff --git a/SpotifyAPI/SpotifyAPI.csproj b/SpotifyAPI/SpotifyAPI.csproj
index 76cd3221..4ef06276 100644
--- a/SpotifyAPI/SpotifyAPI.csproj
+++ b/SpotifyAPI/SpotifyAPI.csproj
@@ -24,6 +24,7 @@
4
bin\Debug\SpotifyAPI.XML
1591
+ ..\..\..\My Data\Dokumente\Visual Studio 2015\Projects\BackupAudioRecorder\AudioRecordTest\MAXRULES.ruleset
pdbonly
diff --git a/SpotifyAPI/Web/SimpleHttpServer.cs b/SpotifyAPI/Web/SimpleHttpServer.cs
index eac076c3..b67981c4 100644
--- a/SpotifyAPI/Web/SimpleHttpServer.cs
+++ b/SpotifyAPI/Web/SimpleHttpServer.cs
@@ -79,15 +79,13 @@ namespace SpotifyAPI.Web
HandlePostRequest();
}
}
- catch (Exception e)
+ catch
{
- Console.WriteLine("Exception: " + e);
WriteFailure();
}
OutputStream.Flush();
- // bs.Flush(); // flush any remaining output
_inputStream = null;
- OutputStream = null; // bs = null;
+ OutputStream = null;
_socket.Close();
}
@@ -97,7 +95,7 @@ namespace SpotifyAPI.Web
string[] tokens = request.Split(' ');
if (tokens.Length < 2)
{
- throw new Exception("invalid http request line");
+ throw new Exception("Invalid HTTP request line");
}
HttpMethod = tokens[0].ToUpper();
HttpUrl = tokens[1];
@@ -108,7 +106,7 @@ namespace SpotifyAPI.Web
String line;
while ((line = StreamReadLine(_inputStream)) != null)
{
- if (line.Equals(""))
+ if (String.IsNullOrEmpty(line))
{
return;
}
@@ -116,7 +114,7 @@ namespace SpotifyAPI.Web
int separator = line.IndexOf(':');
if (separator == -1)
{
- throw new Exception("invalid http header line: " + line);
+ throw new Exception("Invalid HTTP header line: " + line);
}
String name = line.Substring(0, separator);
int pos = separator + 1;
@@ -149,9 +147,7 @@ namespace SpotifyAPI.Web
var contentLen = Convert.ToInt32(HttpHeaders["Content-Length"]);
if (contentLen > MaxPostSize)
{
- throw new Exception(
- String.Format("POST Content-Length({0}) too big for this simple server",
- contentLen));
+ throw new Exception(String.Format("POST Content-Length({0}) too big for this simple server", contentLen));
}
byte[] buf = new byte[BufSize];
int toRead = contentLen;
@@ -164,7 +160,7 @@ namespace SpotifyAPI.Web
{
break;
}
- throw new Exception("client disconnected during post");
+ throw new Exception("Client disconnected during post");
}
toRead -= numread;
ms.Write(buf, 0, numread);
@@ -207,6 +203,8 @@ namespace SpotifyAPI.Web
{
IsActive = false;
_listener.Stop();
+ Dispose();
+ GC.SuppressFinalize(this);
}
public void Listen()
@@ -276,7 +274,6 @@ namespace SpotifyAPI.Web
p.OutputStream.WriteLine("Spotify Auth canceled!
");
t = new Thread(o =>
{
- //_funcOne(null, col.Get(1), col.Get(0));
if(OnAuth != null)
OnAuth(new AuthEventArgs()
{
diff --git a/SpotifyAPI/Web/SpotifyWebAPI.cs b/SpotifyAPI/Web/SpotifyWebAPI.cs
index 462503b5..2db4f654 100644
--- a/SpotifyAPI/Web/SpotifyWebAPI.cs
+++ b/SpotifyAPI/Web/SpotifyWebAPI.cs
@@ -9,7 +9,7 @@ using SpotifyAPI.Web.Models;
namespace SpotifyAPI.Web
{
- public class SpotifyWebAPI : IDisposable
+ public sealed class SpotifyWebAPI : IDisposable
{
public const String APIBase = "https://api.spotify.com/v1";
@@ -35,6 +35,7 @@ namespace SpotifyAPI.Web
public void Dispose()
{
WebClient.Dispose();
+ GC.SuppressFinalize(this);
}
#region Search
@@ -56,7 +57,7 @@ namespace SpotifyAPI.Web
builder.Append("&type=" + type.GetStringAttribute(","));
builder.Append("&limit=" + limit);
builder.Append("&offset=" + offset);
- if (market != "")
+ if (!String.IsNullOrEmpty(market))
builder.Append("&market=" + market);
return DownloadData(builder.ToString());
}
@@ -80,7 +81,7 @@ namespace SpotifyAPI.Web
StringBuilder builder = new StringBuilder(APIBase + "/albums/" + id + "/tracks");
builder.Append("?limit=" + limit);
builder.Append("&offset=" + offset);
- if (market != "")
+ if (!String.IsNullOrEmpty(market))
builder.Append("&market=" + market);
return DownloadData>(builder.ToString());
}
@@ -93,7 +94,7 @@ namespace SpotifyAPI.Web
///
public FullAlbum GetAlbum(String id, String market = "")
{
- if (market == "")
+ if (String.IsNullOrEmpty(market))
return DownloadData(APIBase + "/albums/" + id);
return DownloadData(APIBase + "/albums/" + id + "?market=" + market);
}
@@ -106,7 +107,7 @@ namespace SpotifyAPI.Web
///
public SeveralAlbums GetSeveralAlbums(List ids, String market = "")
{
- if (market == "")
+ if (String.IsNullOrEmpty(market))
return DownloadData(APIBase + "/albums?ids=" + string.Join(",", ids.Take(20)));
return DownloadData(APIBase + "/albums?market=" + market + "&ids=" + string.Join(",", ids.Take(20)));
}
@@ -170,7 +171,7 @@ namespace SpotifyAPI.Web
builder.Append("?type=" + type.GetStringAttribute(","));
builder.Append("&limit=" + limit);
builder.Append("&offset=" + offset);
- if (market != "")
+ if (!String.IsNullOrEmpty(market))
builder.Append("&market=" + market);
return DownloadData>(builder.ToString());
}
@@ -209,9 +210,9 @@ namespace SpotifyAPI.Web
StringBuilder builder = new StringBuilder(APIBase + "/browse/featured-playlists");
builder.Append("?limit=" + limit);
builder.Append("&offset=" + offset);
- if (locale != "")
+ if (!String.IsNullOrEmpty(locale))
builder.Append("&locale=" + locale);
- if (country != "")
+ if (!String.IsNullOrEmpty(country))
builder.Append("&country=" + country);
if (timestamp != default(DateTime))
builder.Append("×tamp=" + timestamp.ToString("yyyy-MM-ddTHH:mm:ss"));
@@ -234,7 +235,7 @@ namespace SpotifyAPI.Web
StringBuilder builder = new StringBuilder(APIBase + "/browse/new-releases");
builder.Append("?limit=" + limit);
builder.Append("&offset=" + offset);
- if (country != "")
+ if (!String.IsNullOrEmpty(country))
builder.Append("&country=" + country);
return DownloadData(builder.ToString());
}
@@ -262,9 +263,9 @@ namespace SpotifyAPI.Web
StringBuilder builder = new StringBuilder(APIBase + "/browse/categories");
builder.Append("?limit=" + limit);
builder.Append("&offset=" + offset);
- if (country != "")
+ if (!String.IsNullOrEmpty(country))
builder.Append("&country=" + country);
- if (locale != "")
+ if (!String.IsNullOrEmpty(locale))
builder.Append("&locale=" + locale);
return DownloadData(builder.ToString());
}
@@ -286,9 +287,9 @@ namespace SpotifyAPI.Web
public Category GetCategory(String categoryId, String country = "", String locale = "")
{
StringBuilder builder = new StringBuilder(APIBase + "/browse/categories/" + categoryId);
- if (country != "")
+ if (!String.IsNullOrEmpty(country))
builder.Append("?country=" + country);
- if (locale != "")
+ if (!String.IsNullOrEmpty(locale))
builder.Append((country == "" ? "?locale=" : "&locale=") + locale);
return DownloadData(builder.ToString());
}
@@ -308,7 +309,7 @@ namespace SpotifyAPI.Web
StringBuilder builder = new StringBuilder(APIBase + "/browse/categories/" + categoryId + "/playlists");
builder.Append("?limit=" + limit);
builder.Append("&offset=" + offset);
- if (country != "")
+ if (!String.IsNullOrEmpty(country))
builder.Append("&country=" + country);
return DownloadData(builder.ToString());
}
@@ -332,7 +333,7 @@ namespace SpotifyAPI.Web
const FollowType followType = FollowType.Artist; //currently only artist is supported.
StringBuilder builder = new StringBuilder(APIBase + "/me/following?type=" + followType.GetStringAttribute(""));
builder.Append("&limit=" + limit);
- if (after != "")
+ if (!String.IsNullOrEmpty(after))
builder.Append("&after=" + after);
return DownloadData(builder.ToString());
}
@@ -531,7 +532,7 @@ namespace SpotifyAPI.Web
StringBuilder builder = new StringBuilder(APIBase + "/me/tracks");
builder.Append("?limit=" + limit);
builder.Append("&offset=" + offset);
- if (market != "")
+ if (!String.IsNullOrEmpty(market))
builder.Append("&market=" + market);
return DownloadData>(builder.ToString());
}
@@ -605,7 +606,7 @@ namespace SpotifyAPI.Web
throw new InvalidOperationException("Auth is required for GetPlaylist");
StringBuilder builder = new StringBuilder(APIBase + "/users/" + userId + "/playlists/" + playlistId);
builder.Append("?fields=" + fields);
- if (market != "")
+ if (!String.IsNullOrEmpty(market))
builder.Append("&market=" + market);
return DownloadData(builder.ToString());
}
@@ -633,7 +634,7 @@ namespace SpotifyAPI.Web
builder.Append("?fields=" + fields);
builder.Append("&limit=" + limit);
builder.Append("&offset=" + offset);
- if (market != "")
+ if (!String.IsNullOrEmpty(market))
builder.Append("&market=" + market);
return DownloadData>(builder.ToString());
}
@@ -785,7 +786,7 @@ namespace SpotifyAPI.Web
{"range_length", rangeLength},
{"insert_before", insertBefore}
};
- if (snapshotId != "")
+ if (!String.IsNullOrEmpty(snapshotId))
body.Add("snapshot_id", snapshotId);
return UploadData(APIBase + "/users/" + userId + "/playlists/" + playlistId + "/tracks", body.ToString(Formatting.None), "PUT");
}
@@ -828,7 +829,7 @@ namespace SpotifyAPI.Web
///
public SeveralTracks GetSeveralTracks(List ids, String market = "")
{
- if (market == "")
+ if (String.IsNullOrEmpty(market))
return DownloadData(APIBase + "/tracks?ids=" + string.Join(",", ids.Take(50)));
return DownloadData(APIBase + "/tracks?market=" + market + "&ids=" + string.Join(",", ids.Take(50)));
}
@@ -841,7 +842,7 @@ namespace SpotifyAPI.Web
///
public FullTrack GetTrack(String id, String market = "")
{
- if (market == "")
+ if (String.IsNullOrEmpty(market))
return DownloadData(APIBase + "/tracks/" + id);
return DownloadData(APIBase + "/tracks/" + id + "?market=" + market);
}
diff --git a/SpotifyAPI/Web/Util.cs b/SpotifyAPI/Web/Util.cs
index bcd0d54f..7c3f4548 100644
--- a/SpotifyAPI/Web/Util.cs
+++ b/SpotifyAPI/Web/Util.cs
@@ -24,7 +24,7 @@ namespace SpotifyAPI.Web
}
}
- public class StringAttribute : Attribute
+ public sealed class StringAttribute : Attribute
{
public String Text { get; set; }
public StringAttribute(String text)