Ejemplo n.º 1
0
        public void DeserializeXml()
        {
            string[] allSoapActions = new string[] { "http://contoso.com/service/test/ICollections/ProcessCollection" };
            using (Parser p = TestHelper.CreateWcfParserFromFile("SampleWithNamespaces.svclog", true, false, SoapActionMode.Include, allSoapActions))
            {
                ProxyManager        pm = new ProxyManager("ClientProxies.dll");
                Deserializer        d  = new Deserializer();
                ParsedMessage       parsedMessage;
                CallParameterInfo[] parameters;
                MethodInfo          mi;

                // The second one has the newlines in it.
                p.ReadNextRequest();
                parsedMessage = p.ReadNextRequest();
                mi            = pm.GetContractMethod(parsedMessage.SoapAction);
                parameters    = d.DeserializeInputParameters(parsedMessage.Message, mi);
                Assert.AreEqual <int>(1, parameters.Length);
                this.ValidateNonNullInputParameter <GeneratedContracts.CollectionsData>(parameters[0], "data");
                CollectionsData msg = (CollectionsData)parameters[0].Value;
                Assert.AreEqual <string>("<test xmlns=\"\">Element</test>", msg.Element.OuterXml);
                Assert.AreEqual <int>(2, msg.Nodes.Length);
                Assert.AreEqual <string>("<test xmlns=\"\"><node>one</node></test>", msg.Nodes[0].OuterXml);
                Assert.AreEqual <string>("<test xmlns=\"\"><node>two</node></test>", msg.Nodes[1].OuterXml);
            }
        }
Ejemplo n.º 2
0
        public override Task <CollectionsData> TestCollection(Empty request, ServerCallContext context)
        {
            _logger.LogInformation("Host: {0}, Peer: {1}, Method: {2}", context.Host, context.Peer, context.Method);

            CollectionsData result = new CollectionsData();

            for (int i = 0; i < Random.Next(10); i++)
            {
                result.Names.Add(GetString());
            }

            for (int i = 0; i < Random.Next(10); i++)
            {
                result.Numbers.Add(Random.Next(100));
            }

            for (int i = 0; i < Random.Next(10); i++)
            {
                result.IdName.Add(i, GetString());
            }

            for (int i = 0; i < Random.Next(10); i++)
            {
                result.GuidValue.Add(Guid.NewGuid().ToString(), (float)Random.NextDouble());
            }

            return(Task.FromResult(result));
        }
Ejemplo n.º 3
0
        public void RunMainProcess()
        {
            LanguageDomainReport firstReport  = new LanguageDomainReport();
            LanguagePageReport   secondReport = new LanguagePageReport();
            string targetFile;

            DateTime endPeriod   = StartPeriod.AddDays(this.DaysNumber * Config.OperatorBackDays);
            DateTime startPeriod = StartPeriod;

            string directoryPath = FileData.GetDataPath(startPeriod);

            PageViewsRawData pageViewData = new PageViewsRawData(GZip, FileData, this.DaysNumber);

            pageViewData.DownloadAllPeriodsData(startPeriod, endPeriod, directoryPath);
            pageViewData.DecompressData(directoryPath);

            CollectionsData processData = new CollectionsData(domainData);

            startPeriod = StartPeriod;
            //Process each file (period) and get the ressults
            do
            {
                FileData.SetConfigurationByPeriod(startPeriod, directoryPath);
                targetFile = FileData.GetTargetFileNoExt();

                //for free memory related to last analysis
                using (FileReader fr = new FileReader(targetFile))
                {
                    Console.WriteLine(string.Concat("Processing data in file ", targetFile, "..."));

                    //container of data to analyze
                    PageViewCollection periodCollection = fr.GetDataToCollection();

                    //First report
                    Console.WriteLine("\tProcessing language and domain data for period " + startPeriod.ToShortDateString());
                    LanguageDomain languageDomain = processData.GetLanguageAndDomainCount(periodCollection);
                    languageDomain.Period = startPeriod;
                    firstReport.AddLanguageDomain(languageDomain);

                    //Second report
                    LanguagePage languagePage = processData.GetLanguagePageCount(periodCollection);
                    Console.WriteLine("\tProcessing language page data for period " + startPeriod.ToShortDateString());
                    languagePage.Period = startPeriod;
                    secondReport.AddLanguagePage(languagePage);
                }

                startPeriod = startPeriod.AddDays(Config.OperatorBackDays);
            }while (startPeriod.CompareTo(endPeriod) != 0);


            //Report the results
            Console.Clear();

            ConsoleReport.DisplayLanguageDomainCount(firstReport);
            ConsoleReport.DisplayLanguagePageMaxCount(secondReport);
        }
Ejemplo n.º 4
0
        public CollectionsData ProcessCollection(CollectionsData data)
        {
            Console.WriteLine("Process Collection called");
            XmlDocument doc1 = new XmlDocument();

            doc1.LoadXml("<test>Element</test>");
            XmlDocument doc2 = new XmlDocument();

            doc2.LoadXml("<test><node>one</node></test>");
            XmlDocument doc3 = new XmlDocument();

            doc3.LoadXml("<test><node>two</node></test>");

            CollectionsData newData = new CollectionsData();

            newData.Element  = doc1.DocumentElement;
            newData.Nodes    = new XmlNode[2];
            newData.Nodes[0] = doc2;
            newData.Nodes[1] = doc3;

            Console.WriteLine("Process Collection returning");
            return(newData);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Calls the WCF service.
        /// </summary>
        public static void WcfCalls()
        {
            ChannelFactory <GeneratedContracts.ICollections>           ccf        = new ChannelFactory <GeneratedContracts.ICollections>("Collections");
            ChannelFactory <GeneratedContracts.IArithmetic>            cf         = new ChannelFactory <GeneratedContracts.IArithmetic>("Basic");
            ChannelFactory <GeneratedContracts.IBufferedStreamService> bufferedcf = new ChannelFactory <GeneratedContracts.IBufferedStreamService>("BufferedStreams");
            ChannelFactory <GeneratedContracts.IStreamedStreamService> streamedcf = new ChannelFactory <GeneratedContracts.IStreamedStreamService>("StreamedStreams");
            ChannelFactory <GeneratedContracts.IDataSets> datasetscf = new ChannelFactory <IDataSets>("DataSets");

            GeneratedContracts.IArithmetic            ia       = cf.CreateChannel();
            GeneratedContracts.ICollections           ic       = ccf.CreateChannel();
            GeneratedContracts.IBufferedStreamService buffered = bufferedcf.CreateChannel();
            GeneratedContracts.IStreamedStreamService streamed = streamedcf.CreateChannel();
            GeneratedContracts.IDataSets datasets = datasetscf.CreateChannel();

            AddRequest r = new AddRequest();

            r.A = 10;
            r.B = 5;
            Console.WriteLine(ia.Add(r).Answer);
            Console.WriteLine(ia.Add2(r));
            Console.WriteLine(ia.Add3(20, 25));

            AddRequestWrappedMessage wrappedRequest = new AddRequestWrappedMessage();

            wrappedRequest.header        = new TestHeader();
            wrappedRequest.header.Header = "hello";
            wrappedRequest.A             = 11;
            wrappedRequest.B             = 6;
            ia.WrappedAdd(wrappedRequest);

            AddRequestWrappedMessageNoCustomNames wrappedRequestNoCustomNames = new AddRequestWrappedMessageNoCustomNames();

            wrappedRequestNoCustomNames.header        = new TestHeader();
            wrappedRequestNoCustomNames.header.Header = "hello";
            wrappedRequestNoCustomNames.A             = 11;
            wrappedRequestNoCustomNames.B             = 6;
            ia.WrappednoCustomNamesAdd(wrappedRequestNoCustomNames);

            AddRequestWrappedMessageWithHeaderAndBodyNamespaceOverrides wrappedRequestNamespaceOverrides = new AddRequestWrappedMessageWithHeaderAndBodyNamespaceOverrides();

            wrappedRequestNamespaceOverrides.header        = new TestHeader();
            wrappedRequestNamespaceOverrides.header.Header = "hello";
            wrappedRequestNamespaceOverrides.A             = 11;
            wrappedRequestNamespaceOverrides.B             = 6;
            ia.WrappedMessageWithHeaderAndBodyNamespaceOverrides(wrappedRequestNamespaceOverrides);

            AddRequestUnwrappedMessage unwrappedRequest = new AddRequestUnwrappedMessage();

            unwrappedRequest.header        = new TestHeader();
            unwrappedRequest.header.Header = "hello";
            unwrappedRequest.A             = 11;
            unwrappedRequest.B             = 6;
            ia.UnwrappedAdd(unwrappedRequest);

            ia.NoParameters();

            int refparam = 0;

            ia.RefParameter(ref refparam);

            object refobj = null;
            string s      = "hello";

            ia.RefObjectParameter(s, ref refobj);

            int outParam1;
            int outParam2;

            outParam1 = ia.OutParameter(out outParam2);

            int refb = 23;
            int refc;

            ia.MixedDirectionParameters(1, ref refb, out refc);

            ia.OneWayOperation(5);

            CollectionsData coll = new CollectionsData();

            coll.ArrayList = new object[] { 1, 2, 3 };

            coll.IntIList = new int[] { 4, 5, 6 };

            coll.IntIList = new int[] { 7, 8, 9 };

            AddRequest addReq1 = new AddRequest();

            addReq1.A = 1;
            addReq1.B = 2;
            AddRequest addReq2 = new AddRequest();

            addReq2.A = 3;
            addReq2.B = 4;

            coll.RequestList        = new AddRequest[] { addReq1, addReq2 };
            coll.RequestIList       = new AddRequest[] { addReq1, addReq2 };
            coll.RequestCollection  = new AddRequest[] { addReq1, addReq2 };
            coll.RequestICollection = new AddRequest[] { addReq1, addReq2 };

            coll.RequestDictionary = new Dictionary <string, AddRequest>();
            coll.RequestDictionary.Add("Key1", addReq1);
            coll.RequestDictionary.Add("Key2", addReq2);

            coll.RequestIDictionary = new Dictionary <string, AddRequest>();
            coll.RequestIDictionary.Add("Key1", addReq1);
            coll.RequestIDictionary.Add("Key2", addReq2);

            coll.NonGenericEnumerableOnlyCollection = new object[] { 0, "hello" };

            coll.Hashtable = new Dictionary <object, object>();
            coll.Hashtable.Add(1, "one");
            coll.Hashtable.Add(2, "two");

            CollectionsData c = ic.ProcessCollection(coll);

            ic.ProcessCollection(c);

            CustomContracts custom = new CustomContracts();

            custom.Overload(23);
            custom.Overload("abc");
            custom.Hidden();

            ChannelFactory <Contracts.Custom.ICustomContracts2> factory2 = new ChannelFactory <Contracts.Custom.ICustomContracts2>("Custom2");

            Contracts.Custom.ICustomContracts2 custom2 = factory2.CreateChannel();
            custom2.Contract2Method();

            // Data contract with streaming
            MemoryStream ms = new MemoryStream();

            for (byte i = 0; i < 127; i++)
            {
                ms.WriteByte(i);
            }

            ms.Position = 0;
            Stream ans = buffered.BufferedStreamOperation(ms);

            ms.Position = 0;
            MemoryStream memoryStreamAns = buffered.BufferedMemoryStreamOperation(ms);

            ms.Position = 0;
            ans         = streamed.StreamedStreamOperation(ms);

            memoryStreamAns = streamed.StreamedMemoryStreamOperation(ms);

            streamed.StreamedWithNonStreamParametersOperation("hello", 1);

            // Message contract with streaming
            byte[] buf = new byte[128];
            for (byte i = 0; i < 127; i++)
            {
                buf[i] = i;
            }

            ms.Position = 0;
            buffered.BufferedUnwrappedMessageWithMemoryStream(new BufferedUnwrappedMessageWithMemoryStream(1, ms));

            ms.Position = 0;
            buffered.BufferedUnwrappedMessageWithStream(new BufferedUnwrappedMessageWithStream(1, ms));

            ms.Position = 0;
            buffered.BufferedWrappedMessageWithMemoryStream(new BufferedWrappedMessageWithMemoryStream(1, ms));

            buffered.BufferedWrappedMessageWithStream(new BufferedWrappedMessageWithStream(1, buf));

            ms.Position = 0;
            streamed.StreamedUnwrappedMessageWithMemoryStream(new StreamedUnwrappedMessageWithMemoryStream(1, ms));

            ms.Position = 0;
            streamed.StreamedUnwrappedMessageWithStream(new StreamedUnwrappedMessageWithStream(1, ms));

            ms.Position = 0;
            streamed.StreamedWrappedMessageWithMemoryStream(new StreamedWrappedMessageWithMemoryStream(1, ms));

            ms.Position = 0;
            streamed.StreamedWrappedMessageWithStream(new StreamedWrappedMessageWithStream(1, buf));

            ChannelFactory <IShapeService> shapeServiceFactory = new ChannelFactory <IShapeService>("Shape");
            IShapeService shapeService = shapeServiceFactory.CreateChannel();

            Rectangle rect = (Rectangle)shapeService.DoSomething(new Circle());

            ChannelFactory <IServiceKnownType> serviceKnownTypeFactory = new ChannelFactory <IServiceKnownType>("ServiceKnownType");
            DerivedServiceKnownType            derived = new DerivedServiceKnownType();

            derived.BaseProperty    = 1;
            derived.DerivedProperty = "abc";
            IServiceKnownType serviceKnownTypeService = serviceKnownTypeFactory.CreateChannel();

            serviceKnownTypeService.DoSomething(derived);

            InstanceContext   callbackContext = new InstanceContext(new SharePrice());
            SharePricesClient sharePrices     = new SharePricesClient(callbackContext, "SharePrices");

            sharePrices.Open();
            sharePrices.RegisterForNotificationOneWay("MSFT");
            if (!SharePrice.Done.WaitOne(10000))
            {
                Console.WriteLine("Timeout waiting for duplex responses one-way");
            }

            sharePrices.RegisterForNotificationTwoWay("MSFT");
            if (!SharePrice.Done.WaitOne(10000))
            {
                Console.WriteLine("Timeout waiting for duplex responses two-way");
            }

            DataSet ds = CreateTestDataSet();

            datasets.ProcessDataSet(new ProcessDataSetRequest(ds));
            datasets.ProcessDataSetWithMoreData(new ProcessDataSetWithMoreDataRequest(ds, 1));
            CompoundWithDataSet compoundWithDataSet = new CompoundWithDataSet();

            compoundWithDataSet.Data = ds;
            datasets.ProcessCompoundDataSet(new ProcessCompoundDataSetRequest(compoundWithDataSet));
            datasets.ProcessTypedDataSet(new ProcessTypedDataSetRequest(CreateTestTypedDataSet()));
            CompoundWithTypedDataSet compoundWithTypedDataSet = new CompoundWithTypedDataSet();

            compoundWithTypedDataSet.Data = CreateTestTypedDataSet();
            datasets.ProcessCompoundTypedDataSet(new ProcessCompoundTypedDataSetRequest(compoundWithTypedDataSet));
        }