private string DeleteClientMenuConfirm(string wa, uWiMP.TVServer.MPClient.Client client) { string markup = string.Empty; markup += string.Format("<div class=\"iMenu\" id=\"{0}\">", wa); markup += string.Format("<h3>{0} {1}</h3>", GetGlobalResourceObject("uWiMPStrings", "client_del"), client.Friendly); markup += "<ul class=\"iArrow\">"; if (client.Friendly == "") { markup += string.Format("<li style=\"color:red\">{0}</li>", GetGlobalResourceObject("uWiMPStrings", "client_not_selected")); } else { markup += string.Format("<li>{0}</li>", GetGlobalResourceObject("uWiMPStrings", "are_you_sure")); markup += "</ul>"; markup += "</div>"; markup += "<div>"; markup += string.Format("<a href=\"Admin/ClientManagementDeleteResult.aspx?friendly={0}#_ClientDelResult\" rev=\"async\" rel=\"Action\" class=\"iButton iBWarn\">{1}</a>", client.Friendly, GetGlobalResourceObject("uWiMPStrings", "yes")); markup += string.Format("<a href=\"#\" onclick=\"return WA.Back()\" rel=\"Back\" class=\"iButton iBClassic\">{0}</a>", GetGlobalResourceObject("uWiMPStrings", "no")); markup += "</div>"; } return markup; }
static internal string ConvertRequestToJson(uWiMP.TVServer.MPClient.Request request) { JsonTextWriter jw = new JsonTextWriter(); jw.PrettyPrint = true; jw.WriteStartObject(); jw.WriteMember("action"); jw.WriteString(request.Action); jw.WriteMember("filter"); jw.WriteString(request.Filter); jw.WriteMember("value"); jw.WriteString(request.Value); jw.WriteMember("start"); jw.WriteString(request.Start.ToString()); jw.WriteMember("pagesize"); jw.WriteString(request.PageSize.ToString()); jw.WriteMember("shuffle"); jw.WriteBoolean(request.Shuffle); jw.WriteMember("enqueue"); jw.WriteBoolean(request.Enqueue); jw.WriteMember("tracks"); jw.WriteString(request.Tracks); jw.WriteEndObject(); return jw.ToString(); }
private string DeleteClient(string wa, uWiMP.TVServer.MPClient.Client client) { string markup = string.Empty; markup += string.Format("<div class=\"iMenu\" id=\"{0}\">", wa); markup += string.Format("<h3>{0}</h3>", GetGlobalResourceObject("uWiMPStrings", "client_del")); markup += "<ul>"; if (uWiMP.TVServer.MPClientDatabase.ManageClient(client, "delete")) { markup += string.Format("<li>{0} {1}", client.Friendly, GetGlobalResourceObject("uWiMPStrings", "has_been_deleted")); } else { markup += string.Format("<li style=\"color:red\">{0} {1}", client.Friendly, GetGlobalResourceObject("uWiMPStrings", "has_been_deleted_fail")); } markup += "</ul>"; markup += "</div>"; markup += "<div>"; markup += string.Format("<a href=\"#\" onclick=\"window.location.reload();\" rel=\"Action\" class=\"iButton iBClassic\">{0}</a>", GetGlobalResourceObject("uWiMPStrings", "home")); markup += string.Format("<a href=\"Admin/ClientManagementMainMenu.aspx#_ClientMenu\" rel=\"Back\" rev=\"async\" class=\"iButton iBClassic\">{0}</a></li>", GetGlobalResourceObject("uWiMPStrings", "back")); markup += "</div>"; return markup; }
public static string SendAsyncMessage(string friendly, uWiMP.TVServer.MPClient.Request mpRequest) { if (useTCP) { return MPClientTCPRemoting.SendSyncMessage(friendly, mpRequest); } else { return MPClientHTTPRemoting.SendHTTPPostMessage(friendly, mpRequest, false); } }
public static bool ManageClient(uWiMP.TVServer.MPClient.Client client, string action) { if ((action.ToLower() == "insert") & (IsExistingClient(client.Friendly))) return false; string connStr = ConfigurationManager.ConnectionStrings["uWiMPConnString"].ConnectionString; SQLiteConnection conn = new SQLiteConnection(connStr); SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; cmd.Parameters.Add("$Friendly", DbType.String, 255).Value = client.Friendly.ToLower(); switch (action.ToLower()) { case "delete": cmd.CommandText = "DELETE FROM `MPClients` WHERE Friendly = $Friendly"; break; case "insert": cmd.CommandText = "INSERT INTO `MPClients` (Friendly, Hostname, Port, MACAddress, UsesMovingPictures, UsesTVSeries) VALUES ($Friendly, $Hostname, $Port, $MACAddress, $UsesMovingPictures, $UsesTVSeries)"; break; case "update": if (IsExistingClient(client.Friendly)) { cmd.CommandText = "UPDATE `MPClients` SET Hostname = $Hostname, Port = $Port, MACAddress = $MACAddress, UsesMovingPictures = $UsesMovingPictures, UsesTVSeries = $UsesTVSeries WHERE Friendly = $Friendly"; } else { cmd.CommandText = "UPDATE `MPClients` SET Friendly = $Friendly, Port = $Port, MACAddress = $MACAddress, UsesMovingPictures = $UsesMovingPictures, UsesTVSeries = $UsesTVSeries WHERE Hostname = $Hostname"; } break; } if ((action.ToLower() == "insert") | (action.ToLower() == "update")) { cmd.Parameters.Add("$Hostname", DbType.String, 255).Value = client.Hostname.ToLower(); cmd.Parameters.Add("$Port", DbType.String, 255).Value = client.Port.ToString(); cmd.Parameters.Add("$MACAddress", DbType.String, 255).Value = client.MACAddress.ToString(); cmd.Parameters.Add("$UsesMovingPictures", DbType.Boolean, 255).Value = client.usesMovingPictures; cmd.Parameters.Add("$UsesTVSeries", DbType.Boolean, 255).Value = client.usesTVSeries; } int rows = 0; try { conn.Open(); rows = cmd.ExecuteNonQuery(); } catch (SQLiteException ex) { return false; } finally { conn.Close(); } if (rows > 0) { return true; } else { return false; } }
public static string SendHTTPPostMessage(string friendly, uWiMP.TVServer.MPClient.Request mpRequest, bool sync = true) { string response = string.Empty; TVServer.MPClient.Client mpclient = uWiMP.TVServer.MPClientDatabase.GetClient(friendly); if (mpclient.Hostname == string.Empty) { host = friendly; } else { host = mpclient.Hostname; } if (mpclient.Port == string.Empty) { port = DEFAULT_PORT; } else { port = Convert.ToInt32(mpclient.Port); } string data = MPClientRemoting.ConvertRequestToJson(mpRequest); try { WebRequest webRequest = WebRequest.Create(string.Format("http://{0}:{1}/mpcc/", host, (port + 1).ToString())); webRequest.Method = "POST"; byte[] byteArray = Encoding.UTF8.GetBytes(data); webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.ContentLength = byteArray.Length; Stream datastream = webRequest.GetRequestStream(); datastream.Write(byteArray, 0, byteArray.Length); datastream.Close(); WebResponse webResponse = webRequest.GetResponse(); datastream = webResponse.GetResponseStream(); StreamReader reader = new StreamReader(datastream); response = reader.ReadToEnd(); reader.Close(); datastream.Close(); webResponse.Close(); } catch (Exception ex) { return MPClientRemoting.ReturnBoolean(false); } if (sync) { return response; } else { return MPClientRemoting.ReturnBoolean(true); } }
public static string SendAsyncMessage(string friendly, uWiMP.TVServer.MPClient.Request mpRequest) { try { Connect(friendly); Byte[] data = System.Text.Encoding.UTF8.GetBytes(ConvertRequestToJson(mpRequest)); System.Net.Sockets.NetworkStream stream = client.GetStream(); stream.Write(data, 0, data.Length); stream.Close(); } catch (Exception ex) { return ReturnBoolean(false); } finally { Disconnect(friendly); } return ReturnBoolean(true); }
public static string SendSyncMessage(string friendly, uWiMP.TVServer.MPClient.Request mpRequest) { String response = String.Empty; try { Byte[] data = System.Text.Encoding.UTF8.GetBytes(ConvertRequestToJson(mpRequest)); Connect(friendly); System.Net.Sockets.NetworkStream stream = client.GetStream(); stream.Write(data, 0, data.Length); int timeout = 0; while (!(stream.DataAvailable)) { timeout += 100; System.Threading.Thread.Sleep(100); if (timeout >= 10000) throw new Exception(); } data = new Byte[] { }; Int32 bytes; while (stream.DataAvailable) { bytes = stream.Read(data, 0, data.Length); response += System.Text.Encoding.UTF8.GetString(data, 0, bytes); } stream.Close(); } catch (Exception ex) { return "fail"; } finally { Disconnect(friendly); } return response; }