using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;

/// <summary>
/// Skorzystaj z tej klasy do reprezentacji nagłówka
/// SOAP. Zostanie on  zserializowany i zdeserializowany
/// w ramach otoczki SOAP dla celów transmisji
/// </summary>
public class TestSoapHeader : SoapHeader
{
   public string FirstValue;
   public string SecondValue;
}
/// <summary>
/// Summary description for SoapHeaderTest
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class SoapHeaderTest : System.Web.Services.WebService
{
   public TestSoapHeader TestHeader;
   public SoapHeaderTest() 
   {

      // Zdejmij komentarz z poniższego wiersza jeśli korzystasz z zaprojektowanych komponentów
      // InitializeComponent();
   }

   [WebMethod]
   public string HelloWorld() {
      return "Witaj Świecie";
   }

   [WebMethod]
   [SoapHeader("TestHeader", Direction = SoapHeaderDirection.InOut)]
   public string HeaderEnabledMethod(string message)
   {
      if (TestHeader != null)
      {
         string output = string.Format(
           "Wysłany komunikat to '{0}'. Nagłówek SOAP zawierał {1} i {2}.",
           message, TestHeader.FirstValue, TestHeader.SecondValue);
         TestHeader.FirstValue += " (zmodyfikowane)";
         TestHeader.SecondValue += " (zmodyfikowane)";
         return output;
      }
      else
         return string.Format(
           "Wysłany komunikat to '{0}'", message);
   }
}
