public void AuditRecordsRequest_can_properly_create_a_request_with_query_string_parameters()
        {
            var aRequest = new AuditRecordsRequest(ProjectName: "MediFlex", Environment: "Dev", startid: 1, per_page: 100);

            Assert.IsTrue(aRequest.UrlPath().Contains("datasets/ClinicalAuditRecords.odm"));

            Assert.IsTrue(aRequest.UrlPath().Contains(string.Format("studyoid={0}", aRequest.studyoid)));

            Assert.IsTrue(aRequest.UrlPath().Contains("startid=1"));

            Assert.IsTrue(aRequest.UrlPath().Contains("per_page=100"));

            aRequest = new AuditRecordsRequest(ProjectName: "MediFlex", Environment: "Dev", startid: 2596, per_page: 45);

            Assert.IsTrue(aRequest.UrlPath().Contains("startid=2596"));

            Assert.IsTrue(aRequest.UrlPath().Contains("per_page=45"));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Runs the ODM Adapter, using the specified parameters.
        /// </summary>
        /// <param name="startId">The start identifier.</param>
        /// <param name="maxPages">The maximum pages.</param>
        /// <param name="perPage">The per page.</param>
        public void Run(int startId, int maxPages, int perPage)
        {
            LastSourceId = -1;
            var page = 0;

            StartId = startId;

            if (Subscriber != null)
            {
                Parser.ContextBuilt += Subscriber.OnContextBuilt;
                ParsingComplete     += Subscriber.OnParsingComplete;
                PageProcessed       += Subscriber.OnPageProcessed;
            }

            while (maxPages == -1 || page < maxPages)
            {
                var aRequest = new AuditRecordsRequest(Study, Environment, StartId, perPage);
                var odm      = Connection.SendRequest(aRequest);

                Parser.ForOdmResponse(odm);

                StartId = GetNextStartId();

                Parser.Start();

                page += 1;


                //If there are no additional records to parse, exit loop
                if (StartId == null)
                {
                    OnPageProcessed();
                    break;
                }

                OnPageProcessed();
            }

            LastSourceId = Parser.GetLastSourceId();

            //raise event once parsing is complete.
            OnParsingComplete(LastSourceId);
        }