/// <summary>
        /// Loads the full details of a given publication and adds them to the view
        /// </summary>
        /// <param name="publication">The given publication</param>
        public void loadPublicationDetails(Model.Publication publication)
        {
            //get details
            Model.Publication p = Database.ERDAdapter.fetchFullPublicationDetails(publication);

            //load view
            Window.PublicationsDetailsView.SetDetails(p);
        }
 /// <summary>
 /// User selects a publication from the list
 /// </summary>
 private void PublicationsListView_Display_Box_SelectedIndexChanged(object sender, System.EventArgs e)
 {
     //If a publication has been selected
     if (PublicationsListView_Display_Box.SelectedIndex != -1)
     {
         //load details in controller
         Model.Publication publication = PublicationsListView_Display_Box.SelectedItem as Model.Publication;
         researcherController.pubController.loadPublicationDetails(publication);
     }
 }
        //////////Methods//////////////

        /// <summary>
        /// Sets the details of a given publication on the view
        /// </summary>
        /// <param name="publication">The publication details being displayed</param>
        public void SetDetails(Model.Publication publication)
        {
            PublicationDetailsView_DOI_Value.Text              = publication.DOI;
            PublicationDetailsView_Title_Value.Text            = publication.Title;
            PublicationDetailsView_Authors_Value.Text          = publication.Authors;
            PublicationDetailsView_PublicationYear_Value.Text  = publication.Year.Year.ToString();
            PublicationDetailsView_Type_Value.Text             = publication.Type.ToString();
            PublicationDetailsView_CiteAs_Value.Text           = publication.CiteAs;
            PublicationDetailsView_AvailabilityDate_Value.Text = publication.Available.ToString("dd/MM/yyyy");
            PublicationDetailsView_Age_Value.Text              = publication.Age().ToString() + " days";
        }
コード例 #4
0
        public void Query_LatestRelease_CanViewSubjectData()
        {
            PermissionTestUtils.PolicyCheckBuilder <DataSecurityPolicies>()
            .ExpectResourceCheckToFail(_subject, DataSecurityPolicies.CanViewSubjectData)
            .AssertForbidden(
                async userService =>
            {
                var publication = new Model.Publication
                {
                    Id = Guid.NewGuid(),
                };

                var release = new Model.Release
                {
                    Id = Guid.NewGuid(),
                };

                var subjectService = new Mock <ISubjectService>();

                subjectService
                .Setup(s => s.IsSubjectForLatestPublishedRelease(_subject.Id))
                .ReturnsAsync(false);

                subjectService
                .Setup(s => s.GetPublicationForSubject(_subject.Id))
                .ReturnsAsync(publication);

                var releaseService = new Mock <IReleaseService>();

                releaseService
                .Setup(s => s.GetLatestPublishedRelease(publication.Id))
                .Returns(release);

                var service = BuildTableBuilderService(
                    userService: userService.Object,
                    subjectService: subjectService.Object,
                    releaseService: releaseService.Object
                    );

                return(await service.Query(
                           new ObservationQueryContext
                {
                    SubjectId = _subject.Id
                }
                           ));
            }
                );
        }
コード例 #5
0
        public static Model.Publication fetchFullPublicationDetails(Model.Publication publication)
        {
            MySqlDataReader rdr = null;

            //Get Connection
            GetConnection();

            try
            {
                //open connection
                db_conn.Open();

                //load publication details
                MySqlCommand cmd = new MySqlCommand("SELECT * FROM publication WHERE doi = ?doi", db_conn);
                cmd.Parameters.AddWithValue("doi", publication.DOI);
                rdr = cmd.ExecuteReader();

                rdr.Read();

                publication.Authors   = rdr.GetString(2);
                publication.Type      = ParseEnum <Model.OutputType>(rdr.GetString(4));
                publication.CiteAs    = rdr.GetString(5);
                publication.Available = Convert.ToDateTime(rdr["available"]);
            }
            catch (MySqlException e)
            {
                Console.WriteLine("Error cannot connect to database " + e);
            }
            //Close data reader
            finally
            {
                if (rdr != null)
                {
                    rdr.Close();
                }
                if (db_conn != null)
                {
                    db_conn.Close();
                }
            }

            return(publication);
        }