Esempio n. 1
0
        private void GenerateCaseReports(int daysToGenerate,
                                         List <Guid> dataCollectorGuids, List <Tuple <double, double, Guid> > gpsLocations)
        {
            var maxNumberOfReportsDaily       = 7;
            var maxNumberOfMalesUnderFive     = 3;
            var maxNumberOfMalesFiveOrAbove   = 5;
            var maxNumberOfFemalesUnderFive   = 6;
            var maxNumberOfFemalesFiveOrAbove = 10;

            Random rnd = new Random();

            for (int dayOffset = daysToGenerate; dayOffset >= 0; dayOffset--)
            {
                var numberOfDailyReports = rnd.Next(maxNumberOfReportsDaily);
                for (int j = 0; j < numberOfDailyReports; j++)
                {
                    var gpsRandom  = new Random().Next(0, gpsLocations.Count - 1);
                    var caseReport = new CaseReport(
                        Guid.NewGuid(),
                        dataCollectorGuids.ElementAt(rnd.Next(0, dataCollectorGuids.Count - 3)),
                        gpsLocations.ElementAt(gpsRandom).Item3,
                        "phoneNumber",
                        "test message",
                        rnd.Next(maxNumberOfMalesUnderFive),
                        rnd.Next(maxNumberOfMalesFiveOrAbove),
                        rnd.Next(maxNumberOfFemalesUnderFive),
                        rnd.Next(maxNumberOfFemalesFiveOrAbove),
                        gpsLocations.ElementAt(gpsRandom).Item2,
                        gpsLocations.ElementAt(gpsRandom).Item1,
                        DateTimeOffset.UtcNow.AddDays(-dayOffset));

                    _caseReportsEventHandler.Handle(caseReport);
                }
            }
        }
Esempio n. 2
0
        public ActionResult <IEnumerable <string> > HealthRisks()
        {
            var caseReports = JsonConvert.DeserializeObject <CaseReport[]>(System.IO.File.ReadAllText("./TestData/CaseReports.json"));

            foreach (var caseReport in caseReports)
            {
                var report = new CaseReport(
                    Guid.NewGuid(),
                    caseReport.DataCollectorId,
                    caseReport.HealthRisk,
                    caseReport.Origin,
                    caseReport.Message,
                    caseReport.NumberOfMalesUnder5,
                    caseReport.NumberOfMalesAged5AndOlder,
                    caseReport.NumberOfFemalesUnder5,
                    caseReport.NumberOfFemalesAged5AndOlder,
                    caseReport.Longitude,
                    caseReport.Latitude,
                    DateTimeOffset.UtcNow);

                _caseReportsEventHandler.Handle(report);
            }

            return(caseReports.Select(x => x.Message).ToArray());
        }
Esempio n. 3
0
        public void TestCaseReport()
        {
            IReports report = new CaseReport();
            string   result = report.CreateReport();

            Assert.AreEqual("Case Report", result);
        }
Esempio n. 4
0
        public void Process(CaseReported @event)
        {
            var caseReport = _caseReports.GetById(@event.Id);

            if (caseReport == null)
            {
                caseReport = new CaseReport
                {
                    Id = @event.Id,
                    DataCollectorId     = @event.DataCollectorId,
                    HealthRiskId        = @event.HealthRiskId,
                    Location            = @event.Location,
                    SubmissionTimestamp = @event.CaseOccured
                };
            }
            else
            {
                caseReport.Id = @event.Id;
                caseReport.DataCollectorId     = @event.DataCollectorId;
                caseReport.HealthRiskId        = @event.HealthRiskId;
                caseReport.Location            = @event.Location;
                caseReport.SubmissionTimestamp = @event.CaseOccured;
            }
            _caseReports.Save(caseReport);

            var disease = _healthRisks.GetById(caseReport.HealthRiskId) ?? new HealthRisk
            {
                Id = @event.HealthRiskId,
                ThresholdTimePeriodInDays = 7,
                ThresholdNumberOfCases    = 3
            };

            var latestReports = _caseReports.GetCaseReportsAfterDate(
                DateTime.UtcNow.Subtract(TimeSpan.FromDays(disease.ThresholdTimePeriodInDays)), caseReport.HealthRiskId);

            if (latestReports.Count > disease.ThresholdNumberOfCases)
            {
                var alert = _alerts.Get(caseReport.HealthRiskId, caseReport.Location);
                if (alert == null)
                {
                    alert = new Alert
                    {
                        Id           = Guid.NewGuid(),
                        HealthRiskId = caseReport.HealthRiskId,
                        Location     = caseReport.Location,
                    };
                }
                alert.CaseReports.Add(caseReport);
                _alerts.Save(alert);


                // Todo: Temporary fix - we're not supposed to do this, awaiting the new Policy building block in doLittle to be ready
                var stream = new UncommittedEventStream(null);
                stream.Append(new AlertRaised(), EventSourceVersion.Zero.NextCommit());
                _uncommittedEventStreamCoordinator.Commit(TransactionCorrelationId.New(), stream);

                _feedbackService.SendFeedbackToDataCollecorsAndVerifiers(latestReports);
            }
        }
 private void SaveCaseReport(CaseReport report)
 {
     using (var db = new CriminalsContext())
     {
         db.CaseReports.Add(report);
         db.SaveChanges();
     }
 }
Esempio n. 6
0
        public async Task DeleteCaseReport(CaseReport caseReport)
        {
            if (!(await _unitOfWork.CaseReports.IsExists(caseReport.Id)))
            {
                throw new NullReferenceException();
            }

            _unitOfWork.CaseReports.Remove(caseReport);

            await _unitOfWork.CommitAsync();
        }
Esempio n. 7
0
 public BasicTestCase()
 {
     ActiveCaseContentPool = new Dictionary<int, CaseContentItem>();
     ActiveCaseMethodPool = new Dictionary<int, CaseMethodItem>();
     ActiveCaseWebBrowserPool = new Dictionary<int, CaseMethodItem>();
     ActiveCaseSelectorPool = new Dictionary<int, CaseMethodItem>();
     ActiveCaseDataSourcePool = new Dictionary<string, XmlDocument>();
     ActiveLoopPool = new List<LoopItem>();
     ActiveTestCaseReport = new CaseReport();
     ActiveDataBuffer = new Dictionary<string, string>();
     ActiveMailList = new List<string>();
 }
Esempio n. 8
0
 public CaseReportExpanded(CaseReport caseReport, DataCollector dataCollector, HealthRisk healthRisk)
 {
     Id = caseReport.Id;
     NumberOfFemalesOver5  = caseReport.NumberOfFemalesOver5;
     NumberOfFemalesUnder5 = caseReport.NumberOfFemalesUnder5;
     NumberOfMalesOver5    = caseReport.NumberOfMalesOver5;
     NumberOfMalesUnder5   = caseReport.NumberOfMalesUnder5;
     Timestamp             = caseReport.Timestamp;
     Location      = caseReport.Location;
     DataCollector = dataCollector;
     HealthRisk    = healthRisk;
 }
Esempio n. 9
0
        public void UpdateCaseReport_NoItemForUpdate_NullReferenceException()
        {
            // Arrange
            var(unitOfWork, caseReportRepo, dbCollectionCaseReport) = GetMocks();
            var service    = new CaseReportService(unitOfWork.Object);
            var caseReport = new CaseReport()
            {
                Diagnosis = "Update Track"
            };

            // Act + Assert
            Assert.ThrowsAsync <NullReferenceException>(async() => await service.UpdateCaseReport(0, caseReport));
        }
Esempio n. 10
0
        public async Task <CaseReport> CreateCaseReport(CaseReport newCaseReport)
        {
            if (newCaseReport is null)
            {
                throw new NullReferenceException();
            }

            await _unitOfWork.CaseReports.AddAsync(newCaseReport);

            await _unitOfWork.CommitAsync();

            return(newCaseReport);
        }
Esempio n. 11
0
        public void UpdateCaseReport_EmptyFullName_InvalidDataException()
        {
            // Arrange
            var(unitOfWork, caseReportRepo, dbCollectionCaseReport) = GetMocks();
            var service    = new CaseReportService(unitOfWork.Object);
            var caseReport = new CaseReport()
            {
                Diagnosis = ""
            };

            // Act + Assert
            Assert.ThrowsAsync <InvalidDataException>(async() => await service.UpdateCaseReport(27, caseReport));
        }
Esempio n. 12
0
        public void DeleteCaseReport_ItemDoesNotExists_NullReferenceException()
        {
            // Arrange
            var(unitOfWork, caseReportRepo, dbCollectionCaseReport) = GetMocks();
            var service    = new CaseReportService(unitOfWork.Object);
            var caseReport = new CaseReport
            {
                Id        = 0,
                Diagnosis = "Delete Diagnosis"
            };

            // Act + Assert
            Assert.ThrowsAsync <NullReferenceException>(async() => await service.DeleteCaseReport(caseReport));
        }
Esempio n. 13
0
        public void ReportReceived(CaseReport caseReport)
        {
            var totalReportedCases = caseReport.NumberOfFemalesAged5AndOlder + caseReport.NumberOfFemalesUnder5 +
                                     caseReport.NumberOfMalesAged5AndOlder + caseReport.NumberOfMalesUnder5;

            if (ReportsPerDay.Keys.Contains(caseReport.Timestamp))
            {
                ReportsPerDay[caseReport.Timestamp] += totalReportedCases;
            }
            else
            {
                ReportsPerDay[caseReport.Timestamp] = totalReportedCases;
            }
        }
Esempio n. 14
0
        public ActionResult AddImage(CaseReport model, HttpPostedFileBase imgInp)
        {
            var db = new TeraEntities3();

            if (imgInp != null)
            {
                model.CaseReportPhoto = new byte[imgInp.ContentLength];
                imgInp.InputStream.Read(model.CaseReportPhoto, 0, imgInp.ContentLength);
            }

            db.CaseReports.Add(model);
            db.SaveChanges();
            return(View(model));
        }
        public void GivenCaseReportExistsInDatabase()
        {
            using (var db = new CriminalsContext())
            {
                var caseReport = new CaseReport
                {
                    DocketNumber = _docketNumber,
                    Title        = "Jessie James Report",
                    Description  = "Jessie James broke out of prison.",
                    OpenDate     = DateTime.Now
                };

                db.CaseReports.Add(caseReport);
                db.SaveChanges();
            }
        }
Esempio n. 16
0
        public void GivenCaseReportInDatabase()
        {
            _caseReport = new CaseReport
            {
                DocketNumber = _docketNumber,
                Title        = "Saved Case Report Title",
                Description  = "Saved Report Description",
                OpenDate     = DateTime.Now
            };

            using (var db = new CriminalsContext())
            {
                db.CaseReports.Add(_caseReport);
                db.SaveChanges();
            }
        }
Esempio n. 17
0
        private static void SavedCaseReport(Guid docketNumber)
        {
            using (var db = new CriminalsContext())
            {
                var caseReport = new CaseReport
                {
                    DocketNumber = docketNumber,
                    Title        = $"Test Title {docketNumber}",
                    Description  = $"Test Description {docketNumber}",
                    OpenDate     = DateTime.Now
                };

                db.CaseReports.Add(caseReport);
                db.SaveChanges();
            }
        }
Esempio n. 18
0
        public async Task DeleteCaseReport_TargetItem_Success()
        {
            // Arrange
            var(unitOfWork, caseReportRepo, dbCollectionCaseReport) = GetMocks();
            var service    = new CaseReportService(unitOfWork.Object);
            var caseReport = new CaseReport
            {
                Id        = 26,
                Diagnosis = "Delete Diagnosis"
            };

            // Act
            await service.DeleteCaseReport(caseReport);

            // Assert
            Assert.IsFalse(dbCollectionCaseReport.ContainsKey(26));
        }
Esempio n. 19
0
        public async Task UpdateCaseReport_FullInfo_Success()
        {
            // Arrange
            var(unitOfWork, caseReportRepo, dbCollectionCaseReport) = GetMocks();
            var service    = new CaseReportService(unitOfWork.Object);
            var caseReport = new CaseReport
            {
                PatientId = 27,
                Diagnosis = "New Diagnosis"
            };

            // Act
            await service.UpdateCaseReport(27, caseReport);

            // Assert
            Assert.AreEqual((await unitOfWork.Object.CaseReports.GetWithPatientByIdAsync(27)).Diagnosis, caseReport.Diagnosis);
        }
Esempio n. 20
0
        public async Task CreateCaseReport_FullInfo_Success()
        {
            // Arrange
            var(unitOfWork, caseReportRepo, dbCollection) = GetMocks();
            var service    = new CaseReportService(unitOfWork.Object);
            var caseReport = new CaseReport
            {
                Id          = 28,
                Diagnosis   = "New Diagnosis",
                Description = "New Description"
            };

            // Act
            await service.CreateCaseReport(caseReport);

            // Assert
            Assert.IsTrue(dbCollection.ContainsKey(caseReport.Id));
        }
        public ActionResult SubmitReport(CaseReport UI, HttpPostedFileBase image1)
        {
            _IDataProvider.InsertCaseReport(UI, image1);
            ViewBag.VBLayout    = Layout_CU;
            ViewBag.DATETIMENOW = DateTime.Now.Date.ToLongDateString() + " - " + DateTime.Now.TimeOfDay;
            ViewBag.Title       = LabelStruct.CommunityUser.SubmitReport;

            const string quote = "\"";

            var html   = "<div class=" + quote + "card mb-4" + quote + "><div class=" + quote + "card-body" + quote + ">" + "Environmental Concern Submitted! (" + ViewBag.DATETIMENOW + ") " + UI.Concern + " " + UI.CaseLocation + "</div></div>";
            var script = "<script>Swal.fire( 'Report Submitted!','Please go to View Status to check the progress of your report!','success')</script>";

            //TempData["message"] = "Environmental Concern Submitted! ("+ViewBag.DATETIMENOW+") "+UI.Concern+" "+UI.CaseLocation;
            TempData["message"] = script;


            return(View());
        }
Esempio n. 22
0
        public CaseReportViewModel Execute()
        {
            using (var context = new CriminalsContext())
            {
                var dbCaseReport = new CaseReport
                {
                    DocketNumber = Guid.NewGuid(),
                    Title        = _caseReport.Title,
                    Description  = _caseReport.Description,
                    OpenDate     = DateTime.Now
                };

                context.CaseReports.Add(dbCaseReport);
                context.SaveChanges();
            }

            return(_caseReport);
        }
Esempio n. 23
0
        public async Task UpdateCaseReport(int id, CaseReport caseReport)
        {
            if (!await _unitOfWork.CaseReports.IsExists(id))
            {
                throw new NullReferenceException();
            }

            if (caseReport.Diagnosis.Length <= 0 || caseReport.Diagnosis.Length > 50 ||
                caseReport.Description.Length <= 0 || caseReport.Description.Length >= 100 ||
                caseReport.PatientId <= 0)
            {
                throw new InvalidDataException();
            }

            var caseReportToBeUpdated = await GetCaseReportById(id);

            caseReportToBeUpdated.Diagnosis   = caseReport.Diagnosis;
            caseReportToBeUpdated.Description = caseReport.Description;
            caseReportToBeUpdated.PatientId   = caseReport.PatientId;

            await _unitOfWork.CommitAsync();
        }
Esempio n. 24
0
        public ActionResult AddImage()
        {
            CaseReport c1 = new CaseReport();

            return(View(c1));
        }
        public ActionResult UpdateCaseReportConcern(CaseReport UI)
        {
            var data = _IDataProvider.UpdateCaseReportConcern(UI);

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
        public ActionResult UpdateCaseReportToCompleted(CaseReport UI, HttpPostedFileBase image1)
        {
            var data = _IDataProvider.UpdateCaseReport_Completed(UI, image1);

            return(Json(data, JsonRequestBehavior.AllowGet));
        }