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")); }
/// <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); }