Beispiel #1
0
        public SpeciesObservationList GetSpeciesObservationBySearchCriteriaPage(IUserContext userContext,
                                                                                ISpeciesObservationSearchCriteria searchCriteria,
                                                                                ICoordinateSystem coordinateSystem,
                                                                                ISpeciesObservationPageSpecification pageSpecification)
        {
            SpeciesObservationList speciesObservationList = new SpeciesObservationList();
            IEnumerable <int>      taxonIds;

            if (searchCriteria.TaxonIds != null && searchCriteria.TaxonIds.Count > 0)
            {
                taxonIds = searchCriteria.TaxonIds;
            }
            else
            {
                taxonIds = AllTaxonIds;
            }

            foreach (int taxonId in taxonIds)
            {
                SpeciesObservation speciesObservation = CreateSpeciesObservation(taxonId);
                speciesObservationList.Add(speciesObservation);
            }

            return(speciesObservationList);
        }
Beispiel #2
0
        private static SpeciesObservation CreateSpeciesObservation(int taxonId)
        {
            SpeciesObservation speciesObservation = new SpeciesObservation();

            speciesObservation.Taxon         = new SpeciesObservationTaxon();
            speciesObservation.Taxon.TaxonID = taxonId.ToString();
            return(speciesObservation);
        }
        private SpeciesObservationsData CreateSpeciesObservationData(IUserContext userContext, AnalysisPortal.MySettings.MySettings mySettings)
        {
            SpeciesObservation speciesObservation = new SpeciesObservation();

            speciesObservation.Taxon         = new SpeciesObservationTaxon();
            speciesObservation.Taxon.TaxonID = "1";
            SpeciesObservationList speciesObservationList = new SpeciesObservationList();

            speciesObservationList.Add(speciesObservation);
            var fieldDescriptionViewManager = new SpeciesObservationFieldDescriptionViewManager(userContext, mySettings);
            var fieldDescriptionsViewModel  = fieldDescriptionViewManager.CreateSpeciesObservationFieldDescriptionsViewModel();
            SpeciesObservationsData speciesObservationsData = new SpeciesObservationsData(speciesObservationList, fieldDescriptionsViewModel);

            return(speciesObservationsData);
        }
Beispiel #4
0
        public static SpeciesObservation CreateRandomObservation()
        {
            SpeciesObservation observation = new SpeciesObservation();

            observation.DataProviderId = random.Next(1, 5);
            observation.CatalogNumber  = counter.ToString();
            counter++;
            var person = PersonTestRepository.GetRandomPerson();

            observation.RecordedBy  = $"{person.FirstName} {person.LastName}";
            observation.CoordinateX = random.NextDouble() * 100;
            observation.CoordinateY = random.NextDouble() * 100;
            //observation.ReportedDate = new DateTime(random.Next(1970, 2019), random.Next(1, 13), random.Next(1, 29));
            observation.DyntaxaTaxonId = TaxonIds[random.Next(0, TaxonIds.Length)];
            return(observation);
        }
Beispiel #5
0
        private static SpeciesObservationsData CreateSpeciesObservationDataSample()
        {
            SpeciesObservation      speciesObservation;
            SpeciesObservationList  speciesObservationList;
            SpeciesObservationsData speciesObservationsData;

            speciesObservation               = new SpeciesObservation();
            speciesObservation.Taxon         = new SpeciesObservationTaxon();
            speciesObservation.Taxon.TaxonID = "27";
            speciesObservationList           = new SpeciesObservationList();
            speciesObservationList.Add(speciesObservation);
            var fieldDescriptionViewManager = new SpeciesObservationFieldDescriptionViewManager(SessionHandler.UserContext, SessionHandler.MySettings);
            var fieldDescriptionsViewModel  = fieldDescriptionViewManager.CreateSpeciesObservationFieldDescriptionsViewModel();

            speciesObservationsData = new SpeciesObservationsData(speciesObservationList, fieldDescriptionsViewModel);
            return(speciesObservationsData);
        }
        void tsbExportToExcelClick(object sender, EventArgs e)
        {
            try {
                SaveFileDialog saveXLS = new SaveFileDialog();
                saveXLS.FileName         = _currentProject.Name;
                saveXLS.DefaultExt       = "xls";
                saveXLS.Filter           = "Microsoft Office Excel Workbook |(*.xls*)";
                saveXLS.CheckFileExists  = false;
                saveXLS.InitialDirectory = projectsPath;

                if (saveXLS.ShowDialog() == DialogResult.OK)
                {
                    int         totalRows = 0;
                    FileStream  stream    = new FileStream(saveXLS.FileName, FileMode.OpenOrCreate);
                    ExcelWriter writer    = new ExcelWriter(stream);
                    writer.BeginWrite();

                    writer.WriteCell(0, 0, "Station ID");
                    writer.WriteCell(0, 1, "Camera Manufacturer");
                    writer.WriteCell(0, 2, "Camera Model");
                    writer.WriteCell(0, 3, "Image Name");
                    writer.WriteCell(0, 4, "Date");
                    writer.WriteCell(0, 5, "Time");
                    writer.WriteCell(0, 6, "Pressure (inHg)");
                    writer.WriteCell(0, 7, "Temperature (Celsius)");
                    writer.WriteCell(0, 8, "Species");
                    writer.WriteCell(0, 9, "Count");

                    foreach (Station st in _currentProject.StationsList)
                    {
                        foreach (Sample smp in st.SamplesList)
                        {
                            totalRows++;
                            writer.WriteCell(totalRows, 0, st.StationID);
                            writer.WriteCell(totalRows, 1, smp.CameraManufacturer);
                            writer.WriteCell(totalRows, 2, smp.CameraModel);
                            writer.WriteCell(totalRows, 3, smp.ImageName);
                            writer.WriteCell(totalRows, 4, smp.DateTime.ToShortDateString());
                            writer.WriteCell(totalRows, 5, smp.DateTime.ToShortTimeString());
                            writer.WriteCell(totalRows, 6, (double)smp.OCR_Observations_list[0].Value);                         //Press
                            writer.WriteCell(totalRows, 7, (int)smp.OCR_Observations_list[1].Value);                            //Temp

                            SpeciesObservation spc0 = (SpeciesObservation)smp.Species_Observations_list[0];
                            writer.WriteCell(totalRows, 8, (string)spc0.Value);                         //Species0
                            writer.WriteCell(totalRows, 9, (int)spc0.Count);                            //Count0

                            //more than 1 specie observation, duplicate the row changing that value
                            if (smp.OCR_Observations_list.Count > 3)
                            {
                                for (int j = 3; j < smp.OCR_Observations_list.Count; j++)
                                {
                                    totalRows++;
                                    writer.WriteCell(totalRows, 0, st.StationID);
                                    writer.WriteCell(totalRows, 1, smp.CameraManufacturer);
                                    writer.WriteCell(totalRows, 2, smp.CameraModel);
                                    writer.WriteCell(totalRows, 3, smp.ImageName);
                                    writer.WriteCell(totalRows, 4, smp.DateTime.ToShortDateString());
                                    writer.WriteCell(totalRows, 5, smp.DateTime.ToShortTimeString());
                                    writer.WriteCell(totalRows, 6, (double)smp.OCR_Observations_list[0].Value);                                 //Press
                                    writer.WriteCell(totalRows, 7, (int)smp.OCR_Observations_list[1].Value);                                    //Temp

                                    SpeciesObservation spcN = (SpeciesObservation)smp.Species_Observations_list[j];
                                    writer.WriteCell(totalRows, 8, (string)spcN.Value);                                 //Species0
                                    writer.WriteCell(totalRows, 9, (int)spcN.Count);                                    //Count0
                                }
                            }
                        }
                    }

                    writer.EndWrite();
                    stream.Close();
                }
            } catch (Exception ex) {
                throw ex;
            }
        }
        private void refreshViewData(Sample currentSample)
        {
            try {
                //Refresh the listview
                lstViewData.Items.Clear();
                lstViewData.Columns.Clear();

                ColumnHeader columnheader;                              // Used for creating column headers.
                ListViewItem listviewitem;                              // Used for creating listview items.

                // Ensure that the view is set to show details.
                lstViewData.View = View.Details;

                listviewitem = new ListViewItem("Camera Model");
                listviewitem.SubItems.Add(_currentSample.CameraModel);
                this.lstViewData.Items.Add(listviewitem);

                listviewitem = new ListViewItem("Camera Manufacturer");
                listviewitem.SubItems.Add(_currentSample.CameraManufacturer);
                this.lstViewData.Items.Add(listviewitem);

                listviewitem = new ListViewItem("Image Height");
                listviewitem.SubItems.Add(_currentSample.Height.ToString());
                this.lstViewData.Items.Add(listviewitem);

                listviewitem = new ListViewItem("Image Width");
                listviewitem.SubItems.Add(_currentSample.Width.ToString());
                this.lstViewData.Items.Add(listviewitem);

                listviewitem = new ListViewItem("Vertical Resolution");
                listviewitem.SubItems.Add(_currentSample.VerticalResolution.ToString());
                this.lstViewData.Items.Add(listviewitem);

                listviewitem = new ListViewItem("Horizontal Resolution");
                listviewitem.SubItems.Add(_currentSample.HorizontalResolution.ToString());
                this.lstViewData.Items.Add(listviewitem);

                listviewitem = new ListViewItem("Date");
                listviewitem.SubItems.Add(_currentSample.DateTime.Date.ToShortDateString());
                this.lstViewData.Items.Add(listviewitem);

                listviewitem = new ListViewItem("Time");
                listviewitem.SubItems.Add(_currentSample.DateTime.TimeOfDay.ToString());
                this.lstViewData.Items.Add(listviewitem);

                listviewitem = new ListViewItem("Latitude");
                listviewitem.SubItems.Add(_currentSample.Lat.ToString());
                this.lstViewData.Items.Add(listviewitem);

                listviewitem = new ListViewItem("Longitude");
                listviewitem.SubItems.Add(_currentSample.Lon.ToString());
                this.lstViewData.Items.Add(listviewitem);

                listviewitem = new ListViewItem("Day Or Night");
                listviewitem.SubItems.Add(_currentSample.DayOrNight);
                this.lstViewData.Items.Add(listviewitem);

                listviewitem = new ListViewItem("Moon Phase");
                listviewitem.SubItems.Add(_currentSample.MoonPhase);
                this.lstViewData.Items.Add(listviewitem);


                foreach (Observation obs in _currentSample.OCR_Observations_list)
                {
                    listviewitem = new ListViewItem(obs.Name);
                    listviewitem.SubItems.Add(obs.Value.ToString());
                    this.lstViewData.Items.Add(listviewitem);
                }

                foreach (SpeciesObservation obs in _currentSample.Species_Observations_list)
                {
                    SpeciesObservation specie = (SpeciesObservation)obs;

                    listviewitem = new ListViewItem(specie.Name);
                    listviewitem.SubItems.Add(specie.Value.ToString());
                    listviewitem.Font = new Font(listviewitem.Font, FontStyle.Bold);
                    this.lstViewData.Items.Add(listviewitem);

                    listviewitem = new ListViewItem(specie.Name + " count");
                    listviewitem.SubItems.Add(specie.Count.ToString());
                    listviewitem.Font = new Font(listviewitem.Font, FontStyle.Bold);
                    this.lstViewData.Items.Add(listviewitem);
                }


                // Create some column headers for the data.
                columnheader      = new ColumnHeader();
                columnheader.Text = "Prop";
                this.lstViewData.Columns.Add(columnheader);

                columnheader      = new ColumnHeader();
                columnheader.Text = "Value";
                this.lstViewData.Columns.Add(columnheader);

                // Loop through and size each column header to fit the column header text.
                foreach (ColumnHeader ch in this.lstViewData.Columns)
                {
                    ch.Width = -2;
                }
            } catch (Exception ex) {
                throw ex;
            }
        }
Beispiel #8
0
        public async Task TestAddAndUpdateOneObservationCreatingDifferentVersions()
        {
            //-----------------------------------------------------------------------------------------------------------
            // Arrange - Database connection, etc.
            //-----------------------------------------------------------------------------------------------------------
            MongoDbContext dbContext = new MongoDbContext(MongoUrl, DatabaseName, CollectionName);
            await dbContext.Mongodb.DropCollectionAsync(CollectionName);

            var observationRepository = new VersionedDocumentRepositoryObservation <SpeciesObservation>(dbContext);

            //-----------------------------------------------------------------------------------------------------------
            // Arrange - Observation versions. One original version and 3 different updated versions.
            //-----------------------------------------------------------------------------------------------------------
            SpeciesObservation originalObservation = SpeciesObservationTestRepository.CreateRandomObservation();
            var observationVersion2 = (SpeciesObservation)originalObservation.Clone();

            observationVersion2.RecordedBy = "Peter van Nostrand";
            var observationVersion3 = (SpeciesObservation)observationVersion2.Clone();

            observationVersion3.CoordinateX = 54.234;
            var observationVersion4 = (SpeciesObservation)observationVersion3.Clone();

            observationVersion4.RecordedBy = "Art Vandelay";

            //-----------------------------------------------------------------------------------------------------------
            // Arrange - Variables
            //-----------------------------------------------------------------------------------------------------------
            int    dataProviderId = originalObservation.DataProviderId;
            string catalogNumber  = originalObservation.CatalogNumber;


            //-----------------------------------------------------------------------------------------------------------
            // Act
            //-----------------------------------------------------------------------------------------------------------
            await observationRepository.InsertDocumentAsync(originalObservation);           // Version 1, First insert

            await observationRepository.InsertDocumentAsync(observationVersion2);           // Version 2, Change [RecordedBy]

            await observationRepository.InsertDocumentAsync(observationVersion3);           // Version 3, Change [CoordinateX]

            await observationRepository.DeleteDocumentAsync(dataProviderId, catalogNumber); // Version 4, Delete document

            await observationRepository.InsertDocumentAsync(observationVersion4);           // Version 5, Change [RecordedBy]

            await observationRepository.DeleteDocumentAsync(dataProviderId, catalogNumber); // Version 6, Delete document


            //-----------------------------------------------------------------------------------------------------------
            // Act - Restore versions
            //-----------------------------------------------------------------------------------------------------------
            var restoredVer6 = await observationRepository.RestoreDocumentAsync(dataProviderId, catalogNumber, 6);

            var restoredVer5 = await observationRepository.RestoreDocumentAsync(dataProviderId, catalogNumber, 5);

            var restoredVer4 = await observationRepository.RestoreDocumentAsync(dataProviderId, catalogNumber, 4);

            var restoredVer3 = await observationRepository.RestoreDocumentAsync(dataProviderId, catalogNumber, 3);

            var restoredVer2 = await observationRepository.RestoreDocumentAsync(dataProviderId, catalogNumber, 2);

            var restoredVer1 = await observationRepository.RestoreDocumentAsync(dataProviderId, catalogNumber, 1);



            //-----------------------------------------------------------------------------------------------------------
            // Assert
            //-----------------------------------------------------------------------------------------------------------
            restoredVer6.Should().BeNull("the observation was deleted in version 6");
            restoredVer5.Should().BeEquivalentTo(observationVersion4, "in version 5, the observationVersion4 was inserted");
            restoredVer4.Should().BeNull("the observation was deleted in version 4");
            restoredVer3.Should().BeEquivalentTo(observationVersion3, "in version 3, the observationVersion3 was inserted");
            restoredVer2.Should().BeEquivalentTo(observationVersion2, "in version 2, the observationVersion2 was inserted");
            restoredVer1.Should().BeEquivalentTo(originalObservation, "in the first version, the observationVersion1 was inserted");
        }