Exemple #1
0
        public void ArchiveTest()
        {
            var archiveRequest = new ArchiveRequest(Stubs.BrokerName, Stubs.ArchiveFiles);

            var mockNetwork = new Mock <INetwork>(MockBehavior.Strict);

            mockNetwork
            .Setup(n => n.Invoke(archiveRequest))
            .Returns(new MockHttpWebResponse("SpectraLogic.SpectraRioBrokerClient.Test.TestFiles.ArchiveResponse",
                                             HttpStatusCode.Created, null));

            var mockBuilder = new Mock <ISpectraRioBrokerClientBuilder>(MockBehavior.Strict);

            mockBuilder
            .Setup(b => b.Build())
            .Returns(new SpectraRioBrokerClient(mockNetwork.Object));

            var builder = mockBuilder.Object;
            var client  = builder.Build();

            var job = client.Archive(archiveRequest);

            Assert.AreEqual(new Guid("101bddb7-8b34-4b35-9ef5-3c829d561e19"), job.JobId);
            Assert.AreEqual(JobType.ARCHIVE, job.JobType);
            Assert.AreEqual(1, job.NumberOfFiles);
            Assert.AreEqual(1234, job.TotalSizeInBytes);
            Assert.AreEqual("1/23/2018 3:52:46 AM", job.CreationDate.ToString());
            Assert.AreEqual("1/23/2018 3:52:46 AM", job.LastUpdated.ToString());
            Assert.AreEqual(0.0, job.Progress);
            Assert.AreEqual("Initializing", job.Status.Message);
            Assert.AreEqual(JobStatusEnum.ACTIVE, job.Status.Status);

            mockBuilder.VerifyAll();
            mockNetwork.VerifyAll();
        }
Exemple #2
0
        public override async Task <DefaultResponse> Archive(ArchiveRequest request, ServerCallContext context)
        {
            using var sql = new SqlConnection(_connectionString);
            await sql.OpenAsync();

            using var transaction = sql.BeginTransaction();
            SqlCommand command = sql.CreateCommand();

            command.Transaction = transaction;

            for (var i = 0; i < request.List.ToArray().Length; i++)
            {
                command = await ArchiveRegistrationProcessAsync(command, request.List.ToArray()[i].Id, i);
            }

            try
            {
                await transaction.CommitAsync();

                sql.Close();
                return(new DefaultResponse {
                    Status = true
                });
            }
            catch (Exception)
            {
                await transaction.RollbackAsync();

                sql.Close();
                return(new DefaultResponse {
                    Status = false
                });
            }
        }
Exemple #3
0
        //POST /api/PersonalData/{id}/archive Delete item with id provided
        //no result model
        public IRestResponse PostPersonalDataArchive(ArchiveRequest archiveRequest)
        {
            var request = new RestRequest(resource + $"/{archiveRequest.ClientId}/archive", Method.POST);

            request.AddHeader("api-key", apiKey);
            request.AddJsonBody(archiveRequest);
            var response = client.Execute(request);

            return(response);
        }
        public async Task Get_Archive()
        {
            var archiveRequest = new ArchiveRequest
            {
                ZipName     = "Hello.zip",
                CsrRequests = new List <CsrRequest>
                {
                    new CsrRequest
                    {
                        AppearanceId = "984",
                        PdfFileName  = "test123.pdf"
                    }
                },
                DocumentRequests = new List <DocumentRequest>
                {
                    new DocumentRequest
                    {
                        Base64UrlEncodedDocumentId = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes("6874")),
                        IsCriminal  = false,
                        PdfFileName = "55",
                        FileId      = "3197"
                    },
                    new DocumentRequest
                    {
                        Base64UrlEncodedDocumentId = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes("6196.0734")),
                        IsCriminal  = true,
                        PdfFileName = "4646363",
                        FileId      = "3192"
                    }
                },
                RopRequests = new List <RopRequest>
                {
                    new RopRequest
                    {
                        CourtLevelCode     = CourtLevelCd.P,
                        CourtClassCode     = CourtClassCd.A,
                        PartId             = "12971.0026",
                        PdfFileName        = "ropTest.pdf",
                        ProfSequenceNumber = "24"
                    }
                }
            };

            var actionResult = await _controller.GetArchive(archiveRequest) as FileContentResult;

            Assert.NotNull(actionResult);
            Assert.Equal("Hello.zip", actionResult.FileDownloadName);
            Assert.True(actionResult.FileContents.Length > 0);
        }
        public string RecordSession()
        {
            // create a logger placeholder
            Logger logger = null;

            var value          = string.Empty;
            var archiveRequest = new ArchiveRequest();

            var apiKey    = configuration["appSettings:OT.Api.Key"];
            var apiSecret = configuration["appSettings:OT.Api.Secret"];

            var openTok = new OpenTok(Convert.ToInt32(apiKey), apiSecret);

            try
            {
                logger = NexmoLogger.GetLogger("OTSessionArchivingLogger");
                logger.Open();

                // Get the session name out of the request body
                using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
                {
                    value          = reader.ReadToEndAsync().Result;
                    archiveRequest = JsonConvert.DeserializeObject <ArchiveRequest>(value);
                    logger.Log("OpenTok Session Recording Request body: " + value);
                }

                // Start the recording
                var archive = openTok.StartArchive(archiveRequest.sessionId);

                logger.Log("OpenTok Session archiving started for session ID: " + archiveRequest.sessionId);
                logger.Log("OpenTok Session archiving started with archive ID: " + archive.Id);
                logger.Log("OpenTok Session archiving started with parameters: " + JsonConvert.SerializeObject(archive, Formatting.Indented));

                // store the archive ID to be able to stop the recording later
                StoreArchiveID(logger, archive);

                var archiveId = archive.Id;
                return(archiveId.ToString());
            }
            catch (Exception e)
            {
                logger.Log("OpenTok Error starting archiving the session: " + e.Message);
                logger.Log("OpenTok Error starting archiving the session: " + e.StackTrace);

                return(e.Message);
            }
        }
Exemple #6
0
            public void PostPersonalDataArchiveTest()
            {
                var client   = new FullPersonalDataModel().Init();
                var response = lykkeApi.PersonalData.PostPersonalData(client);

                Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK), "UnExpected status code");
                var actual = lykkeApi.PersonalData.GetFullPersonalDataById(client.Id);

                Assert.That(actual.StatusCode, Is.EqualTo(HttpStatusCode.OK), "Unexpected status code");

                ArchiveRequest archive         = new ArchiveRequest(client.Id);
                var            archiveResponse = lykkeApi.PersonalData.PostPersonalDataArchive(archive);

                Assert.That(archiveResponse.StatusCode, Is.EqualTo(HttpStatusCode.OK), "Unexpected status code");

                System.Threading.Thread.Sleep(TimeSpan.FromSeconds(2));//temp, discover After issue
                var actualArchive = lykkeApi.PersonalData.GetFullPersonalDataById(client.Id);

                Assert.That(() => actualArchive.StatusCode, Is.EqualTo(HttpStatusCode.NoContent).After(5 * 1000, 1 * 1000), "Unexpected status code");
            }
Exemple #7
0
        public IHttpActionResult CreateNewArchiveRequest(NewArchiveRequestDto newArchiveRequest)
        {
            var staff = _context.Staffs.Single(s => s.Id == newArchiveRequest.StaffId);

            var archives = _context.Archives.Where(a => newArchiveRequest.ArchiveIds.Contains(a.Id)).ToList();

            foreach (var archive in archives)
            {
                var archiveRequest = new ArchiveRequest
                {
                    Staff   = staff,
                    Archive = archive,
                    ReqDate = DateTime.Now
                };
                _context.ArchiveRequests.Add(archiveRequest);
            }

            _context.SaveChanges();
            return(Ok());
        }
Exemple #8
0
        public void GetBrokerObjectsTest()
        {
            var          fileName1        = "0a_" + "GetBrokerObjectsTest_" + Guid.NewGuid();
            var          fileName2        = "zz_" + "GetBrokerObjectsTest_" + Guid.NewGuid();
            const string relationshipName = "GetBrokerObjectsTest";

            try
            {
                var brokerObjectsBefore = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetBrokerObjects(
                    new GetBrokerObjectsRequest(SpectraRioBrokerClientFixture.BrokerName)).Objects.Count;

                var archiveRequest = new ArchiveRequest(SpectraRioBrokerClientFixture.BrokerName, new List <ArchiveFile>
                {
                    new ArchiveFile(fileName1, "F1.txt".ToAtoZUri(), 14,
                                    new Dictionary <string, string> {
                        { "fileName", fileName1 }
                    }, false,
                                    new HashSet <string> {
                        relationshipName
                    }),
                    new ArchiveFile(fileName2, "F2.txt".ToAtoZUri(), 14,
                                    new Dictionary <string, string> {
                        { "fileName", fileName2 }
                    }, false,
                                    new HashSet <string> {
                        relationshipName
                    })
                });

                var archiveJob = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.Archive(archiveRequest);

                var pollingAttempts = 0;
                do
                {
                    archiveJob = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJob(
                        new GetJobRequest(archiveJob.JobId));
                    _log.Debug(archiveJob.Status);
                    Thread.Sleep(TimeSpan.FromSeconds(PollingInterval));
                    pollingAttempts++;
                } while (archiveJob.Status.Status == JobStatusEnum.ACTIVE && pollingAttempts < MaxPollingAttempts);

                Assert.Less(pollingAttempts, MaxPollingAttempts);
                Assert.AreEqual(JobStatusEnum.COMPLETED, archiveJob.Status.Status);

                var brokerObjects = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetBrokerObjects(
                    new GetBrokerObjectsRequest(SpectraRioBrokerClientFixture.BrokerName));

                Assert.AreEqual(brokerObjectsBefore + 2, brokerObjects.Objects.Count);

                brokerObjects = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetBrokerObjects(
                    new GetBrokerObjectsRequest(SpectraRioBrokerClientFixture.BrokerName,
                                                ObjectsSortByEnum.NAME,
                                                SortOrderEnum.ASC));

                Assert.AreEqual(brokerObjectsBefore + 2, brokerObjects.Objects.Count);
                Assert.AreEqual(fileName1, brokerObjects.Objects.ElementAt(0).Name);

                brokerObjects = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetBrokerObjects(
                    new GetBrokerObjectsRequest(SpectraRioBrokerClientFixture.BrokerName,
                                                ObjectsSortByEnum.NAME,
                                                SortOrderEnum.DESC));

                Assert.AreEqual(brokerObjectsBefore + 2, brokerObjects.Objects.Count);
                Assert.AreEqual(fileName2, brokerObjects.Objects.ElementAt(0).Name);

                brokerObjects = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetBrokerObjects(
                    new GetBrokerObjectsRequest(SpectraRioBrokerClientFixture.BrokerName, perPage: 1));

                Assert.AreEqual(1, brokerObjects.Objects.Count);
                Assert.AreEqual(fileName2, brokerObjects.Objects.ElementAt(0).Name);
                Assert.AreEqual(2, brokerObjects.Page.TotalPages);
                Assert.AreEqual(1, brokerObjects.Page.PageSize);
                Assert.AreEqual(0, brokerObjects.Page.Number);

                brokerObjects = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetBrokerObjects(
                    new GetBrokerObjectsRequest(SpectraRioBrokerClientFixture.BrokerName, filename: fileName2));

                Assert.AreEqual(1, brokerObjects.Objects.Count);
                Assert.AreEqual(fileName2, brokerObjects.Objects.ElementAt(0).Name);

                brokerObjects = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetBrokerObjects(
                    new GetBrokerObjectsRequest(SpectraRioBrokerClientFixture.BrokerName, prefix: "0a"));

                Assert.AreEqual(1, brokerObjects.Objects.Count);
                Assert.AreEqual(fileName1, brokerObjects.Objects.ElementAt(0).Name);

                brokerObjects = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetBrokerObjects(
                    new GetBrokerObjectsRequest(SpectraRioBrokerClientFixture.BrokerName, prefix: "0a",
                                                filename: "not_found"));

                Assert.AreEqual(0, brokerObjects.Objects.Count);

                brokerObjects = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetBrokerObjects(
                    new GetBrokerObjectsRequest(SpectraRioBrokerClientFixture.BrokerName,
                                                metadata: new List <KeyValuePair <string, string> >
                {
                    new KeyValuePair <string, string>("fileName", fileName2)
                }));

                Assert.AreEqual(1, brokerObjects.Objects.Count);
                Assert.AreEqual(fileName2, brokerObjects.Objects.ElementAt(0).Name);

                brokerObjects = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetBrokerObjects(
                    new GetBrokerObjectsRequest(SpectraRioBrokerClientFixture.BrokerName,
                                                relationships: new List <string>
                {
                    relationshipName
                }));

                Assert.AreEqual(2, brokerObjects.Objects.Count);
            }
            finally
            {
                var deleteF1Request = new DeleteFileRequest(SpectraRioBrokerClientFixture.BrokerName, fileName1);
                var deleteF2Request = new DeleteFileRequest(SpectraRioBrokerClientFixture.BrokerName, fileName2);
                SpectraRioBrokerClientFixture.SpectraRioBrokerClient.DeleteFile(deleteF1Request);
                SpectraRioBrokerClientFixture.SpectraRioBrokerClient.DeleteFile(deleteF2Request);
            }
        }
Exemple #9
0
        public void GetJobsTest()
        {
            var fileName1 = Guid.NewGuid().ToString();

            try
            {
                var archiveJobsBefore = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJobs(
                    new GetJobsRequest(
                        jobTypes: new List <JobTypeEnum> {
                    JobTypeEnum.ARCHIVE
                },
                        jobStatuses: new List <JobStatusEnum> {
                    JobStatusEnum.COMPLETED
                })
                    ).JobsList.Count;
                var restoreJobsBefore = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJobs(
                    new GetJobsRequest(
                        jobTypes: new List <JobTypeEnum> {
                    JobTypeEnum.RESTORE
                })
                    ).JobsList.Count;

                SpectraRioBrokerClientFixture.SetupTestData();
                var archiveRequest = new ArchiveRequest(SpectraRioBrokerClientFixture.BrokerName, new List <ArchiveFile>
                {
                    new ArchiveFile(fileName1, "F1.txt".ToAtoZUri(), 14,
                                    new Dictionary <string, string> {
                        { "fileName", fileName1 }
                    }, false)
                });

                var archiveJob = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.Archive(archiveRequest);

                var pollingAttempts = 0;
                do
                {
                    archiveJob = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJob(
                        new GetJobRequest(archiveJob.JobId));
                    _log.Debug(archiveJob.Status);
                    Thread.Sleep(TimeSpan.FromSeconds(PollingInterval));
                    pollingAttempts++;
                } while (archiveJob.Status.Status == JobStatusEnum.ACTIVE && pollingAttempts < MaxPollingAttempts);

                Assert.Less(pollingAttempts, MaxPollingAttempts);
                Assert.AreEqual(JobStatusEnum.COMPLETED, archiveJob.Status.Status);

                var jobs = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJobs(
                    new GetJobsRequest(
                        jobTypes: new List <JobTypeEnum> {
                    JobTypeEnum.ARCHIVE
                },
                        jobStatuses: new List <JobStatusEnum> {
                    JobStatusEnum.COMPLETED
                }));
                Assert.AreEqual(archiveJobsBefore + 1, jobs.JobsList.Count);

                jobs = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJobs(
                    new GetJobsRequest(
                        jobTypes: new List <JobTypeEnum> {
                    JobTypeEnum.RESTORE
                }));
                Assert.AreEqual(restoreJobsBefore, jobs.JobsList.Count);

                jobs = SpectraRioBrokerClientFixture.SpectraRioBrokerClient.GetJobs(
                    new GetJobsRequest(
                        jobTypes: new List <JobTypeEnum> {
                    JobTypeEnum.ARCHIVE
                },
                        jobStatuses: new List <JobStatusEnum> {
                    JobStatusEnum.COMPLETED
                },
                        sortBy: JobsSortByEnum.CREATION_DATE,
                        sortOrder: SortOrderEnum.DESC));
                Assert.AreEqual(archiveJob.JobId, jobs.JobsList[0].JobId);
            }
            finally
            {
                var deleteF1Request = new DeleteFileRequest(SpectraRioBrokerClientFixture.BrokerName, fileName1);
                SpectraRioBrokerClientFixture.SpectraRioBrokerClient.DeleteFile(deleteF1Request);
            }
        }
Exemple #10
0
        public async Task <IActionResult> GetArchive(ArchiveRequest archiveRequest)
        {
            if (User.IsVcUser())
            {
                if (!await _vcCivilFileAccessHandler.HasCivilFileAccess(User, archiveRequest.VcCivilFileId))
                {
                    return(Forbid());
                }

                if (archiveRequest.RopRequests.Any() || archiveRequest.DocumentRequests.Any(dr => dr.IsCriminal))
                {
                    return(Forbid());
                }

                var civilFileDetailResponse = await _civilFilesService.FileIdAsync(archiveRequest.VcCivilFileId);

                if (civilFileDetailResponse?.PhysicalFileId == null)
                {
                    throw new NotFoundException("Couldn't find civil file with this id.");
                }

                var documentIds   = archiveRequest.DocumentRequests.SelectToList(d => Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(d.Base64UrlEncodedDocumentId)));
                var appearanceIds = archiveRequest.CsrRequests.SelectToList(csr => csr.AppearanceId);

                if (civilFileDetailResponse.SealedYN == "Y" || !documentIds.All(id => civilFileDetailResponse.Document.Any(d => d.CivilDocumentId == id)) ||
                    !appearanceIds.All(id => civilFileDetailResponse.Appearances.ApprDetail.Any(d => d.AppearanceId == id))
                    )
                {
                    return(Forbid());
                }
            }

            var maximumArchiveDocumentCount = _configuration.GetNonEmptyValue("MaximumArchiveDocumentCount");

            if (string.IsNullOrEmpty(archiveRequest.ZipName))
            {
                return(BadRequest($"Missing {nameof(archiveRequest.ZipName)}."));
            }
            if (archiveRequest.TotalDocuments >= int.Parse(maximumArchiveDocumentCount))
            {
                return(BadRequest($"Only can support up to {maximumArchiveDocumentCount} documents."));
            }

            var courtSummaryRequests = archiveRequest.CsrRequests;
            var documentRequest      = archiveRequest.DocumentRequests;
            var ropRequests          = archiveRequest.RopRequests;

            var courtSummaryReportsTasks = courtSummaryRequests.Select(a => _civilFilesService.CourtSummaryReportAsync(
                                                                           a.AppearanceId,
                                                                           JustinReportName.CEISR035));
            var documentTasks = documentRequest.Select(d => _filesService.DocumentAsync(
                                                           Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(d.Base64UrlEncodedDocumentId)),
                                                           d.IsCriminal, d.FileId));
            var ropRequestTasks = ropRequests.SelectToList(dr =>
                                                           _criminalFilesService.RecordOfProceedingsAsync(dr.PartId,
                                                                                                          dr.ProfSequenceNumber,
                                                                                                          dr.CourtLevelCode,
                                                                                                          dr.CourtClassCode));

            var courtSummaryReports = (await courtSummaryReportsTasks.WhenAll()).ToList();
            var documents           = (await documentTasks.WhenAll()).ToList();
            var rops = (await ropRequestTasks.WhenAll()).ToList();

            if (courtSummaryReports.Any(d => d.ResponseCd != "0"))
            {
                return(BadRequest("One of the CSRs didn't return correctly."));
            }
            if (documents.Any(d => d.ResultCd != "1"))
            {
                return(BadRequest("One of the documents didn't return correctly."));
            }
            if (rops.Any(d => d.ResultCd == "0"))
            {
                return(BadRequest("One of the ROPs didn't return correctly."));
            }

            var pdfDocuments = courtSummaryReports.SelectToList(d => new PdfDocument
            {
                Content = d.ReportContent, FileName = courtSummaryRequests[courtSummaryReports.IndexOf(d)].PdfFileName
            });

            pdfDocuments.AddRange(documents.SelectToList(d => new PdfDocument
            {
                Content = d.B64Content, FileName = documentRequest[documents.IndexOf(d)].PdfFileName
            }));

            pdfDocuments.AddRange(rops.Select(d => new PdfDocument
            {
                Content = d.B64Content, FileName = ropRequests[rops.IndexOf(d)].PdfFileName
            }));

            return(await BuildArchiveWithPdfFiles(pdfDocuments, archiveRequest.ZipName));
        }
Exemple #11
0
 protected override bool CanArchive(ArchiveRequest <InstanceIdParameters> Operation)
 {
     return(HasPermission(Operation.Key.InstanceId));
 }
Exemple #12
0
 //POST /api/PersonalData/{id}/archive Delete item with id provided
 //no result model
 public IResponse PostPersonalDataArchive(ArchiveRequest archiveRequest)
 {
     return(Request.Post(resource + $"/{archiveRequest.ClientId}/archive").WithHeaders("api-key", apiKey).AddJsonBody(archiveRequest).Build().Execute());
 }
Exemple #13
0
 /// <inheritdoc/>
 public IJob Archive(ArchiveRequest request)
 {
     return(ExceptionDecorator.Run(() => new ArchiveResponseParser().Parse(_network.Invoke(request))));
 }
Exemple #14
0
 protected override bool CanArchive(ArchiveRequest <EntityIdParameters> Operation)
 {
     return(HasEntityPermission(Operation.Key.EntityId));
 }
Exemple #15
0
 protected override object Archive(ArchiveRequest <EntityIdParameters> Operation)
 {
     return(Archive(Operation.Key.EntityId, true));
 }
 protected override object Archive(ArchiveRequest <InstanceIdParameters> Operation)
 {
     return(DataController.Archive(Operation.Key.InstanceId));
 }