コード例 #1
0
        public ActionResult Create([FromBody] FilmeRequest filmeRequest)
        {
            var filme = RequestParser.ConvertFilme(filmeRequest);

            var filmeId = filmeRepository.CriarFilme(filme);

            if (filme.Atores != null)
            {
                for (int i = 0; i < filme.Atores.Count; i++)
                {
                    var atorId = filme.Atores[i].Id;
                    var ator   = atorRepository.DetalharAtor(atorId);
                    if (ator == null)
                    {
                        return(BadRequest($"Invalid ator id {atorId}"));
                    }

                    filmeAtorRepository.CreateOrUpdateFilmeAtor(filmeId, atorId.ToString());
                }
            }
            if (filme.Genero != null)
            {
                var generoId = filme.Genero.Id;
                var genero   = generoRepository.DetalharGenero(generoId);
                if (genero == null)
                {
                    return(BadRequest($"Invalid genero id {generoId}"));
                }

                filmeGeneroRepository.CreateOrUpdateFilmeGenero(filmeId, filme.Id.ToString());;
            }

            return(NoContent());
        }
コード例 #2
0
        protected override async ValueTask <IReadOnlyList <GraphQLRequest> > GetRequestsFromBody(
            HttpRequest httpRequest,
            CancellationToken cancellationToken)
        {
            IFormCollection?form;

            try
            {
                var formFeature = new FormFeature(httpRequest, _formOptions);
                form = await formFeature.ReadFormAsync(cancellationToken);
            }
            catch (Exception exception)
            {
                throw ThrowHelper.HttpMultipartMiddleware_Invalid_Form(exception);
            }

            // Parse the string values of interest from the IFormCollection
            HttpMultipartRequest           multipartRequest = ParseMultipartRequest(form);
            IReadOnlyList <GraphQLRequest> requests         = RequestParser.ReadOperationsRequest(
                multipartRequest.Operations);

            foreach (var graphQLRequest in requests)
            {
                InsertFilesIntoRequest(graphQLRequest, multipartRequest.FileMap);
            }

            return(requests);
        }
コード例 #3
0
        // Token: 0x060001EA RID: 490 RVA: 0x00012AC0 File Offset: 0x00010CC0
        private PreFormActionResponse ExecuteCreateAction()
        {
            string        formParameter = Utilities.GetFormParameter(this.httpRequest, "nnfc", true);
            StoreObjectId destinationId;
            string        folderClass;

            switch (this.module)
            {
            case NavigationModule.Mail:
                destinationId = RequestParser.GetStoreObjectId(this.httpRequest, "ftci", true, ParameterIn.Form);
                folderClass   = "IPF.Note";
                break;

            case NavigationModule.Calendar:
                destinationId = this.userContext.CalendarFolderId;
                folderClass   = "IPF.Appointment";
                break;

            case NavigationModule.Contacts:
                destinationId = this.userContext.ContactsFolderId;
                folderClass   = "IPF.Contact";
                break;

            default:
                throw new OwaInvalidRequestException("Invalid request for folder management preformaction");
            }
            this.folderManagementHelper.Create(destinationId, folderClass, formParameter);
            return(new PreFormActionResponse());
        }
コード例 #4
0
        public async Task ParseLogoutRequest_post_binding()
        {
            //ARRANGE
            var form = await SamlPostRequestProviderMock.BuildLogoutRequestPostForm();

            Func <Type, IMetadataHandler> metadataHandlerFactory = t => new MetadataEntitityDescriptorHandler();
            var xmlSerialiser    = new XMLSerialiser();
            var compressor       = new DeflateCompressor();
            var encoder          = new MessageEncoding(compressor);
            var logger           = new LogProviderMock();
            var serialiser       = new RequestSerialiser(xmlSerialiser, encoder, logger) as IRequestSerialiser;
            var certManager      = new CertificateManager(logger);
            var signatureManager = new XmlSignatureManager();
            Func <IEnumerable <RequestValidationRule> > rulesResolver = () => new[] { new SignatureValidRule(logger, certManager, signatureManager) };
            var requestValidator                  = new Federation.Protocols.Request.Validation.RequestValidator(logger, new RuleFactory(rulesResolver));
            var configurationRetrieverMock        = new ConfigurationRetrieverMock();
            var federationPartyContextBuilderMock = new FederationPartyContextBuilderMock();
            var configurationManger               = new ConfigurationManager <MetadataBase>(federationPartyContextBuilderMock, configurationRetrieverMock);
            var requestParser = new RequestParser(metadataHandlerFactory, t => new LogoutRequestParser(serialiser, logger),
                                                  configurationManger, logger, requestValidator);
            var postBindingDecoder = new PostBindingDecoder(logger);
            var message            = await postBindingDecoder.Decode(form.HiddenControls.ToDictionary(k => k.Key, v => v.Value));

            var context = new SamlInboundContext
            {
                Message            = message,
                DescriptorResolver = m => metadataHandlerFactory(typeof(object)).GetIdentityProviderSingleSignOnDescriptor(m).Single().Roles.Single()
            };
            //ACT
            var result = await requestParser.Parse(context);

            //ASSERT
            Assert.IsTrue(result.IsValidated);
            Assert.IsInstanceOf <LogoutRequest>(result.SamlRequest);
        }
コード例 #5
0
        private bool ParseBuildRequest()
        {
            if (_server.RequestCache.TryLookupParsedRequest(_requestContext))
            {
                return(true);
            }

            // parse/build request
            var reqBuilder = new RequestParser(_requestContext);

            if (!reqBuilder.ParseRequest())
            {
                return(false);
            }

            // Map and validate
            var mapper = new RequestMapper(_requestContext);

            mapper.MapAndValidateRequest();
            if (_requestContext.Failed)
            {
                return(false);
            }

            PrepareDirectives();

            var success = !_requestContext.Failed;

            if (success && !_requestContext.Metrics.FromCache)
            {
                _server.RequestCache.AddParsedRequest(_requestContext);
            }
            return(success);
        }
コード例 #6
0
        public ActionResult Edit(string id, [FromBody] GeneroRequest request)
        {
            //validate
            if (generoRepository.DetalharGenero(Convert.ToInt32(id)) == null)
            {
                return(NotFound($"Genero not found"));
            }

            var filmes = filmeRepository.ListarFilmes().ToList();

            for (int i = 0; i < request.Filmes.Count; i++)
            {
                var filme = request.Filmes[i];
                if (filmes.Exists(x => x.Id.ToString() == filme))
                {
                    return(BadRequest($"Invalid filme id {filme}"));
                }
            }

            var genero = RequestParser.ConvertGenero(request, id);

            generoRepository.AtualizarGenero(genero);

            for (int i = 0; i < genero.Filmes.Count; i++)
            {
                var filmeId = genero.Filmes[i].Id;
                filmeGeneroRepository.CreateOrUpdateFilmeGenero(filmeId.ToString(), id);
            }

            return(NoContent());
        }
コード例 #7
0
        public static void MyClassInitialize(TestContext testContext)
        {
            log = LogManager.GetLogger(typeof(UrlBuilderTest));
            var requestParser = new RequestParser();

            UrlBuilder = new UrlBuilder(requestParser);
        }
コード例 #8
0
        public void GetRequest_ShouldReturnRequest_WithMethodGet()
        {
            // 1. Arrange
            RequestParser parser            = new RequestParser();
            Method        expectedMethod    = Method.Get;
            string        expectedPath      = "jen/dva";
            var           expectedQuery     = QueryCollection.Empty;
            string        expectedBody      = string.Empty;
            string        expectedFetchMode = "navigate";
            string        requestString     = @"GET /jen/dva?param=value1&param=value2 HTTP/1.1
Host: localhost:13000
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Sec-Fetch-Site: none
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,mk;q=0.8,sr;q=0.7,hr;q=0.6,bs;q=0.5
Cookie: _ga=GA1.1.405632844.1539592429; x-access-token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiZGpvdmFub3ZAdW5kZXJ0b25lLmNvbSIsImlkIjoxMDAwMDAwMDAwLCJlbWFpbCI6ImRqb3Zhbm92QHVuZGVydG9uZS5jb20iLCJpYXQiOjE1NjYyMTMzMjMsImV4cCI6MTU2NjI5OTcyM30.xt_HboZPPzp_QIQfBaWKNmZC_7zBAS2mZiIAfm0pImE; uid=1000000000
";
            // 2. Act
            Request actual = parser.Parse(requestString);

            // 3. Assert
            Assert.AreEqual(expectedMethod, actual.Method);
            Assert.AreEqual(expectedPath, actual.Path);
            StringAssert.Equals(expectedQuery, actual.Query);
            Assert.AreEqual(expectedBody, actual.Body);
            Assert.AreEqual(expectedFetchMode, actual.Headers.GetHeader("Sec-Fetch-Mode"));
        }
コード例 #9
0
        public ActionResult Edit(string id, [FromBody] AtorRequest atorRequest)
        {
            //validate
            if (atorRepository.DetalharAtor(Convert.ToInt32(id)) == null)
            {
                return(NotFound($"Ator not found"));
            }

            var filmes = filmeRepository.ListarFilmes().ToList();

            for (int i = 0; i < atorRequest.Filmes.Count; i++)
            {
                var filme = atorRequest.Filmes[i];
                if (filmes.Exists(x => x.Id.ToString() == filme))
                {
                    return(BadRequest($"Invalid filme id {filme}"));
                }
            }

            var ator = RequestParser.ConvertAtor(atorRequest, id);

            atorRepository.AtualizarAtor(ator);

            for (int i = 0; i < ator.Filmes.Count; i++)
            {
                var filmeId = ator.Filmes[i].Id;
                filmeAtorRepository.CreateOrUpdateFilmeAtor(filmeId.ToString(), id);
            }

            return(NoContent());
        }
コード例 #10
0
        public void BranchDeleted()
        {
            var result = RequestParser.ParseJson(File.ReadAllText("requests/branchDeleted.json"));

            Assert.Null(result.HeadCommit);
            Assert.Empty(result.Commits);
        }
コード例 #11
0
        public void SetUp()
        {
            var signatureValidator = new WebhookSignatureValidator(Mother.SampleMailgunApiKey);
            var requestParser      = new RequestParser(signatureValidator);

            _sut = new MailGunWebhooksController(requestParser);
        }
コード例 #12
0
        public void ShouldReadResourceLine()
        {
            WebSocketHttpRequest request = RequestParser.Parse(ValidRequestArray());

            Assert.AreEqual("GET", request.Method);
            Assert.AreEqual("/demo", request.Path);
        }
コード例 #13
0
        public void MultiCommit()
        {
            var result = RequestParser.ParseJson(File.ReadAllText("requests/multiCommitFileHistory.json"));

            Assert.Equal(4, result.Commits.Length);

            Assert.Equal(".reminder/newFile.json", Assert.Single(result.Commits[0].Added));
            Assert.Empty(result.Commits[0].Modified);
            Assert.Empty(result.Commits[0].Removed);
            Assert.Equal("Create newFile.json", result.Commits[0].Message);

            Assert.Equal(".reminder/newFile.json", Assert.Single(result.Commits[1].Modified));
            Assert.Empty(result.Commits[1].Added);
            Assert.Empty(result.Commits[1].Removed);
            Assert.Equal("Update newFile.json", result.Commits[1].Message);

            Assert.Equal(".reminder/newFile.json", Assert.Single(result.Commits[2].Removed));
            Assert.Empty(result.Commits[2].Added);
            Assert.Empty(result.Commits[2].Modified);
            Assert.Equal("Delete newFile.json", result.Commits[2].Message);

            Assert.Empty(result.Commits[3].Added);
            Assert.Empty(result.Commits[3].Modified);
            Assert.Empty(result.Commits[3].Removed);
            Assert.Equal("Merge pull request #15 from timbussmann/file-ops-history\n\nCreate newFile.json", result.Commits[3].Message);

            Assert.Equal("cb1ec97f51657c2718ab4e0b1d0bf2656aeb3127", result.HeadCommit.Id);
        }
コード例 #14
0
 public HwandazaHttpServer(int httpServerPort, string staticFilesFolder)
 {
     _httpServerPort    = httpServerPort;
     _staticFileHandler = new StaticFileHandler(staticFilesFolder);
     _staticFilesFolder = staticFilesFolder;
     _requestParser     = new RequestParser();
 }
コード例 #15
0
        public CalendarSecondaryNavigation(OwaContext owaContext, StoreObjectId selectedFolderId, ExDateTime?day, CalendarFolderList calendarFolderList) : base(owaContext, selectedFolderId)
        {
            HttpRequest request     = owaContext.HttpContext.Request;
            UserContext userContext = owaContext.UserContext;

            if (selectedFolderId == null)
            {
                this.selectedFolderId = (RequestParser.GetFolderIdFromQueryString(request, false) ?? userContext.CalendarFolderId);
            }
            if (day != null)
            {
                this.day = day.Value;
            }
            else
            {
                CalendarModuleViewState calendarModuleViewState = userContext.LastClientViewState as CalendarModuleViewState;
                if (calendarModuleViewState != null && selectedFolderId.Equals(calendarModuleViewState.FolderId))
                {
                    this.day = calendarModuleViewState.DateTime;
                }
                else
                {
                    this.day = DateTimeUtilities.GetLocalTime().Date;
                }
            }
            this.calendarFolderList = calendarFolderList;
        }
コード例 #16
0
        public void Request_message_parser()
        {
            string rawMessage = "GET /test/url.com HTTP/1.1\n" +
                                "Host: www.test.com\n" +
                                "Accept: image / gif, image / jpeg, */*\n" +
                                "Accept-Language: en-us\n" +
                                "Accept-Encoding: gzip, deflate\n" +
                                "User-Agent: Mozilla/4.0\n" +
                                "Content-Length: 35\n" +
                                "\n" +
                                "bookId=12345&author=Tan+Ah+Teck\n";

            var parser = new RequestParser(rawMessage);

            parser.ProcessEachLineOfRequest();

            var requestObject = parser.GetRequestObject();

            Assert.Equal("GET", requestObject.MethodType);

            requestObject.MethodType.Should().Be("GET");
            requestObject.Url.Should().Be("/test/url.com");
            requestObject.HttpVersion.Should().Be("HTTP/1.1");
            requestObject.Host.Should().Be("www.test.com");
            requestObject.Accept.Should().Be("image / gif, image / jpeg, */*");
            requestObject.AcceptLanguage.Should().Be("en-us");
            requestObject.AcceptEncoding.Should().Be("gzip, deflate");
            requestObject.UserAgent.Should().Be("Mozilla/4.0");
            requestObject.ContentLength.Should().Be("35");
            requestObject.UrlParameters["bookId"].Should().Be("12345");
            requestObject.UrlParameters["author"].Should().Be("Tan Ah Teck");
        }
コード例 #17
0
        public void TestThatMultipleResponsesParse(int requests)
        {
            var parser = RequestParser.ParserFor(ToStream(MultipleRequestBuilder(requests)).ToArray());

            Assert.True(parser.HasCompleted);
            Assert.True(parser.HasFullRequest());
            Assert.False(parser.IsMissingContent);
            Assert.False(parser.HasMissingContentTimeExpired((long)DateExtensions.GetCurrentMillis() + 100));

            var count        = 0;
            var bodyIterator = _uniqueBodies.GetEnumerator();

            while (parser.HasFullRequest())
            {
                ++count;
                var request = parser.FullRequest();

                Assert.NotNull(request);
                Assert.True(request.Method.IsPost());
                Assert.Equal("/users", request.Uri.PathAndQuery);
                Assert.True(request.Version.IsHttp1_1());
                Assert.True(bodyIterator.MoveNext());
                var body = bodyIterator.Current;
                Assert.Equal(body, request.Body.Content);
            }

            Assert.Equal(requests, count);

            bodyIterator.Dispose();
        }
コード例 #18
0
        // Token: 0x06000300 RID: 768 RVA: 0x0001AF0C File Offset: 0x0001910C
        public PreFormActionResponse Execute(OwaContext owaContext, out ApplicationElement applicationElement, out string type, out string state, out string action)
        {
            if (owaContext == null)
            {
                throw new ArgumentNullException("OwaContext");
            }
            applicationElement = ApplicationElement.NotSet;
            type   = null;
            state  = null;
            action = null;
            HttpRequest request     = owaContext.HttpContext.Request;
            UserContext userContext = owaContext.UserContext;

            if (!Utilities.IsPostRequest(request))
            {
                return(userContext.LastClientViewState.ToPreFormActionResponse());
            }
            string             type2 = owaContext.FormsRegistryContext.Type;
            NavigationModule   navigationModuleFromStoreType   = MoveItemHelper.GetNavigationModuleFromStoreType(type2);
            ApplicationElement applicationElementFromStoreType = MoveItemHelper.GetApplicationElementFromStoreType(type2);

            if ((navigationModuleFromStoreType == NavigationModule.Calendar && !userContext.IsFeatureEnabled(Feature.Calendar)) || (navigationModuleFromStoreType == NavigationModule.Contacts && !userContext.IsFeatureEnabled(Feature.Contacts)))
            {
                throw new OwaSegmentationException("The " + type + " feature is disabled");
            }
            StoreObjectId[] storeObjectIdsFromForm        = RequestParser.GetStoreObjectIdsFromForm(request, true);
            StoreObjectId   folderIdFromQueryString       = RequestParser.GetFolderIdFromQueryString(request, true);
            StoreObjectId   targetFolderIdFromQueryString = RequestParser.GetTargetFolderIdFromQueryString(request, true);
            string          formParameter = Utilities.GetFormParameter(request, "hidt");

            string[] array = formParameter.Split(new char[]
            {
                ','
            });
            if (array.Length != storeObjectIdsFromForm.Length)
            {
                throw new OwaInvalidRequestException("The counts of the items and their types are not identical.");
            }
            ItemOperations.Result result = null;
            if (navigationModuleFromStoreType == NavigationModule.Mail && applicationElementFromStoreType == ApplicationElement.Item)
            {
                result = ItemOperations.GetNextViewItem(userContext, ItemOperations.Action.Delete, storeObjectIdsFromForm[0], folderIdFromQueryString);
            }
            if (!MoveItemPreFormAction.DoMove(targetFolderIdFromQueryString, storeObjectIdsFromForm, array, owaContext))
            {
                PreFormActionResponse preFormActionResponse = new PreFormActionResponse();
                preFormActionResponse.ApplicationElement = ApplicationElement.Dialog;
                preFormActionResponse.Type   = owaContext.FormsRegistryContext.Type;
                preFormActionResponse.Action = owaContext.FormsRegistryContext.Action;
                preFormActionResponse.AddParameter("fid", folderIdFromQueryString.ToBase64String());
                return(preFormActionResponse);
            }
            if (result != null)
            {
                owaContext[OwaContextProperty.InfobarMessage] = null;
            }
            userContext.ForceNewSearch = true;
            return(ItemOperations.GetPreFormActionResponse(userContext, result));
        }
コード例 #19
0
        private void ProcessAMFResponse <T>(IAsyncResult asyncResult)
        {
            try
            {
                AsyncStreamSetInfo <T> asyncStreamSetInfo = (AsyncStreamSetInfo <T>)asyncResult.AsyncState;

                if (asyncStreamSetInfo.responseThreadConfigurator != null)
                {
                    asyncStreamSetInfo.responseThreadConfigurator();
                }

                HttpWebRequest  request  = asyncStreamSetInfo.request;
                HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult);

                if (Cookies != null)
                {
                    foreach (Cookie cookie in response.Cookies)
                    {
                        Cookies.Add(new Uri(GatewayUrl), cookie);
                    }
                }

                Stream        streamResponse = response.GetResponseStream();
                long          curTime        = DateTime.Now.Ticks;
                long          roundTrip      = (curTime - asyncStreamSetInfo.messageSentTime) / TimeSpan.TicksPerMillisecond;
                RequestParser parser         = new RequestParser();
                Request       responseObject = parser.readMessage(streamResponse);
                object[]      responseData   = (object[])responseObject.getRequestBodyData();
                V3Message     v3             = (V3Message)((IAdaptingType)responseData[0]).defaultAdapt();

                if (v3.isError)
                {
                    ErrMessage errorMessage = (ErrMessage)v3;
                    Fault      fault        = new Fault(errorMessage.faultString, errorMessage.faultDetail, errorMessage.faultCode);

                    if (asyncStreamSetInfo.responder != null)
                    {
                        asyncStreamSetInfo.responder.ErrorHandler(fault);
                    }

                    return;
                }

                IAdaptingType body   = (IAdaptingType)((AnonymousObject)((NamedObject)responseData[0]).TypedObject).Properties["body"];
                T             result = (T)body.adapt(typeof(T));

                if (asyncStreamSetInfo.responder != null)
                {
                    asyncStreamSetInfo.responder.ResponseHandler(result);
                }

                //  ProcessV3Message( v3, asyncStreamSetInfo.responder );
            }
            catch (Exception e)
            {
                AsyncStreamSetInfo <T> asyncStreamSetInfo = (AsyncStreamSetInfo <T>)asyncResult.AsyncState;
                ProccessException(e, asyncStreamSetInfo.responder);
            }
        }
コード例 #20
0
        // Token: 0x060001EB RID: 491 RVA: 0x00012B5C File Offset: 0x00010D5C
        private PreFormActionResponse ExecuteRenameAction()
        {
            StoreObjectId storeObjectId = RequestParser.GetStoreObjectId(this.httpRequest, "ftr", true, ParameterIn.Form);
            string        formParameter = Utilities.GetFormParameter(this.httpRequest, "nnfr", true);

            this.folderManagementHelper.Rename(storeObjectId, formParameter);
            return(new PreFormActionResponse());
        }
コード例 #21
0
        internal async Task <BeginAddSensorQueryParameters> ValidateAddSensorQueryParametersAsync(BeginAddSensorQueryParameters parameters)
        {
            var types = await GetSensorTypesAsync(parameters.ObjectId).ConfigureAwait(false);

            RequestParser.ValidateAddSensorQueryTarget(types, parameters);

            return(parameters);
        }
コード例 #22
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var id = RequestParser.GetIntFromRequest("Id");

            Song = Services.Polls.GetSongInPoll(id);

            DataBind();
        }
コード例 #23
0
        public void Request_parser_initialization_test()
        {
            string rawMessage = Guid.NewGuid().ToString();

            var parser = new RequestParser(rawMessage);

            parser.RawMessage.Should().Be(rawMessage);
        }
コード例 #24
0
 public MainWebHookEndPoint(
     ILogger <MainWebHookEndPoint> logger, RequestParser requestParser, IOptions <MultivocalOptions> options)
     : base(logger)
 {
     _logger        = logger;
     _requestParser = requestParser;
     _options       = options;
 }
コード例 #25
0
        internal BeginAddSensorQueryParameters ValidateAddSensorQueryParameters(BeginAddSensorQueryParameters parameters)
        {
            var types = GetSensorTypes(parameters.ObjectId);

            RequestParser.ValidateAddSensorQueryTarget(types, parameters);

            return(parameters);
        }
コード例 #26
0
        internal static IActionManager GetManager(RequestParser parser)
        {
            var action = parser.Action.ToLower();
            if (actionManagers.ContainsKey(action))
                return actionManagers[action];

            return new DefaultActionManager();
        }
コード例 #27
0
        public override void InitializeTest()
        {
            base.InitializeTest();
            var requestParser    = new RequestParser();
            var requestFactory   = new HttpRequestFactory(requestParser.RequestParameters);
            var clientUrlBuilder = new Omikron.FactFinder.Core.Client.UrlBuilder(requestParser);

            ProductCampaignAdapter = new ProductCampaign(requestFactory.GetRequest(), clientUrlBuilder);
        }
コード例 #28
0
ファイル: PrtgClient.cs プロジェクト: chuprin-nikolay/PrtgAPI
        private async Task UpdateTriggerActionsAsync(List <NotificationTrigger> triggers, CancellationToken token)
        {
            var actions = ResponseParser.GroupTriggerActions(triggers);

            var parameters = new NotificationActionParameters(actions.Select(a => a.Key).ToArray());

            var tasks  = actions.Select(g => GetNotificationActionPropertiesAsync(g.Key, token));
            var normal = await ObjectEngine.GetObjectsXmlAsync(parameters, token : token).ConfigureAwait(false);

            //All the properties of all desired notifications
            var results = await Task.WhenAll(tasks).ConfigureAwait(false);

            //For each different notification action
            for (int i = 0; i < actions.Count; i++)
            {
                var xDoc = RequestParser.ExtractActionXml(normal, results[i], actions[i].Key);

                //Foreach notification action with the same ID
                foreach (var action in actions[i])
                {
                    action.LazyXml = new Lazy <XDocument>(() => xDoc);
                }
            }

            var list = ResponseParser.GroupActionSchedules(actions.SelectMany(g => g).ToList()).ToList();

            List <Schedule> schedules = new List <Schedule>();

            if (list.Count > 0)
            {
                schedules = await GetSchedulesAsync(Property.Id, list.Select(l => l.Key).ToArray(), token).ConfigureAwait(false);
            }

            foreach (var group in actions)
            {
                foreach (var action in group)
                {
                    if (action.lazyScheduleStr != null)
                    {
                        var id = PrtgObject.GetId(action.lazyScheduleStr);

                        if (id != -1)
                        {
                            action.schedule = new Lazy <Schedule>(() => schedules.First(s => s.Id == id));
                        }
                        else
                        {
                            action.schedule = new Lazy <Schedule>(() => new Schedule(action.lazyScheduleStr));
                        }
                    }
                    else
                    {
                        action.schedule = new Lazy <Schedule>(() => new Schedule(action.lazyScheduleStr));
                    }
                }
            }
        }
コード例 #29
0
ファイル: Program.cs プロジェクト: HiKami172/CSharpLab4
        public TablesManager SQLJsonBuilder(string tableName, int top)
        {
            var requestParser
                = new RequestParser(new Requests.RequestOpen().DataSource(@".\TASKSQL")
                                    .InitialCatalog("AdventureWorks2012").IntegratedSecurity(true));

            return(requestParser.LoadRequest(
                       new Requests.RequestTask().Select().Top(top).From("HumanResources." + tableName).As()));
        }
コード例 #30
0
        public void ShouldReadHeaders()
        {
            WebSocketHttpRequest request = RequestParser.Parse(ValidRequestArray());

            Assert.AreEqual("example.com", request.Headers ["Host"]);
            Assert.AreEqual("Upgrade", request.Headers ["Connection"]);
            Assert.AreEqual("12998 5 Y3 1  .P00", request.Headers ["Sec-WebSocket-Key2"]);
            Assert.AreEqual("http://example.com", request.Headers ["Origin"]);
        }
コード例 #31
0
        public override void InitializeTest()
        {
            base.InitializeTest();
            var requestParser    = new RequestParser();
            var requestFactory   = new HttpRequestFactory(requestParser.RequestParameters);
            var clientUrlBuilder = new Omikron.FactFinder.Core.Client.UrlBuilder(requestParser);

            SimilarRecordsAdapter = new SimilarRecords(requestFactory.GetRequest(), clientUrlBuilder);
        }
コード例 #32
0
 public ProcessResult Process(RequestParser parser)
 {
     string response = "<h1>Goodbye " + parser.Parameter + "</h1>";
     var byteResponse = Encoding.UTF8.GetBytes(response);
     return new ProcessResult
     {
         StatusCode = StatusCode.OK,
         Bytes = byteResponse,
         ContentType = "text/html"
     };
 }
コード例 #33
0
 public ProcessResult Process(RequestParser parser)
 {
     string response = "<h1>Unsupported action " + parser.Action + "</h1>";
     var byteResponse = Encoding.UTF8.GetBytes(response);
     return new ProcessResult
     {
         StatusCode = StatusCode.OK,
         Bytes = byteResponse,
         ContentType = "text/html"
     };
 }