/// <summary>
        /// Processes a message for a server.
        /// </summary>
        /// <param name="serverSpecifer">The server the request is for.</param>
        /// <param name="action">The action to process.</param>
        /// <param name="message">The message containing the details of the request.</param>
        /// <returns>The response to the request.</returns>
        public string ProcessMessage(IServerSpecifier serverSpecifer, string action, string message)
        {
            // Normally this method just passes the request onto the remote server, but some messages
            // need to be intercepted and handled at the web dashboard level
            switch (action)
            {
            case "ListServers":
                // Generate the list of available servers - this is from the dashboard level
                var serverList = new DataListResponse
                {
                    Data = new List <string>()
                };
                foreach (var serverLocation in this.ServerLocations)
                {
                    serverList.Data.Add(serverLocation.Name);
                }

                // Return the XML of the list
                return(serverList.ToString());

            default:
                // Pass the request on
                var client   = this.GetCruiseManager(serverSpecifer, null);
                var response = client.ProcessMessage(action, message);
                return(response);
            }
        }
Пример #2
0
        public void ToStringSerialisesDefaultValues()
        {
            DataListResponse response = new DataListResponse();
            string           actual   = response.ToString();
            string           expected = string.Format(System.Globalization.CultureInfo.CurrentCulture, "<dataListResponse xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " +
                                                      "timestamp=\"{1:yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz}\" result=\"{0}\" />",
                                                      response.Result,
                                                      response.Timestamp);

            XDocument.Parse(actual).Should().BeEquivalentTo(XDocument.Parse(expected));
        }
Пример #3
0
        public void ToStringSerialisesAllValues()
        {
            DataListResponse response = new DataListResponse();

            response.ErrorMessages.Add(new ErrorMessage("Error 1"));
            response.ErrorMessages.Add(new ErrorMessage("Error 2"));
            response.RequestIdentifier = "request";
            response.Result            = ResponseResult.Success;
            response.Timestamp         = DateTime.Now;
            response.Data.Add("new data");
            string actual   = response.ToString();
            string expected = string.Format(System.Globalization.CultureInfo.CurrentCulture, "<dataListResponse xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " +
                                            "timestamp=\"{2:yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz}\" identifier=\"{0}\" result=\"{1}\">" +
                                            "<error>Error 1</error>" +
                                            "<error>Error 2</error>" +
                                            "<data>{3}</data>" +
                                            "</dataListResponse>",
                                            response.RequestIdentifier,
                                            response.Result,
                                            response.Timestamp,
                                            response.Data[0]);

            XDocument.Parse(actual).Should().BeEquivalentTo(XDocument.Parse(expected));
        }