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;
        }
Пример #2
0
        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;
        }
Пример #4
0
 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);
     }
 }
Пример #5
0
        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;
            }
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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);
        }
Пример #8
0
        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;
        }