Ejemplo n.º 1
0
        /// <summary>
        /// Handles the Click event of the btnSave control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void btnSave_Click(object sender, EventArgs e)
        {
            ResidencyService <CompetencyPersonProjectAssessment> service = new ResidencyService <CompetencyPersonProjectAssessment>();

            int competencyPersonProjectAssessmentId = hfCompetencyPersonProjectAssessmentId.ValueAsInt();
            CompetencyPersonProjectAssessment competencyPersonProjectAssessment = service.Get(competencyPersonProjectAssessmentId);

            competencyPersonProjectAssessment.ResidentComments = tbResidentComments.Text;

            if (!competencyPersonProjectAssessment.IsValid)
            {
                // Controls will render the error messages
                return;
            }

            RockTransactionScope.WrapTransaction(() =>
            {
                service.Save(competencyPersonProjectAssessment, CurrentPersonId);
            });

            var qryParams = new Dictionary <string, string>();

            qryParams["competencyPersonProjectAssessmentId"] = competencyPersonProjectAssessment.Id.ToString();
            NavigateToPage(this.CurrentPage.Guid, qryParams);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Handles the Click event of the btnCancel control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
        protected void btnCancel_Click( object sender, EventArgs e )
        {
            SetEditMode( false );

            if ( hfCompetencyPersonProjectAssessmentId.ValueAsInt().Equals( 0 ) )
            {
                // Cancelling on Add.  Return to Grid
                // if this page was called from the Project Detail page, return to that
                string competencyPersonProjectId = PageParameter( "competencyPersonProjectId" );
                if ( !string.IsNullOrWhiteSpace( competencyPersonProjectId ) )
                {
                    Dictionary<string, string> qryString = new Dictionary<string, string>();
                    qryString["competencyPersonProjectId"] = competencyPersonProjectId;
                    NavigateToParentPage( qryString );
                }
                else
                {
                    NavigateToParentPage();
                }
            }
            else
            {
                // Cancelling on Edit.  Return to Details
                ResidencyService<CompetencyPersonProjectAssessment> service = new ResidencyService<CompetencyPersonProjectAssessment>();
                CompetencyPersonProjectAssessment item = service.Get( hfCompetencyPersonProjectAssessmentId.ValueAsInt() );
                ShowReadonlyDetails( item );
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Shows the edit details.
        /// </summary>
        /// <param name="competencyPersonProjectAssessment">The competency person project assessment.</param>
        private void ShowEditDetails( CompetencyPersonProjectAssessment competencyPersonProjectAssessment )
        {
            if ( competencyPersonProjectAssessment.Id > 0 )
            {
                lActionTitle.Text = ActionTitle.Edit( "Project Assessment" );
            }
            else
            {
                lActionTitle.Text = ActionTitle.Add( "Project Assessment" );
            }

            SetEditMode( true );

            lblEditDetails.Text = new DescriptionList()
                .Add( "Resident", competencyPersonProjectAssessment.CompetencyPersonProject.CompetencyPerson.Person )
                .Add( "Competency", competencyPersonProjectAssessment.CompetencyPersonProject.CompetencyPerson.Competency.Name )
                .Add( "Project", string.Format( "{0} - {1}", competencyPersonProjectAssessment.CompetencyPersonProject.Project.Name, competencyPersonProjectAssessment.CompetencyPersonProject.Project.Description ) )
                .Html;

            ppAssessor.SetValue( competencyPersonProjectAssessment.AssessorPerson );
            dtpAssessmentDateTime.SelectedDateTime = competencyPersonProjectAssessment.AssessmentDateTime;
            lblOverallRating.Text = competencyPersonProjectAssessment.OverallRating.ToString();
            tbRatingNotes.Text = competencyPersonProjectAssessment.RatingNotes;
            tbResidentComments.Text = competencyPersonProjectAssessment.ResidentComments;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Handles the Click event of the btnEdit control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void btnEdit_Click(object sender, EventArgs e)
        {
            ResidencyService <CompetencyPersonProjectAssessment> service = new ResidencyService <CompetencyPersonProjectAssessment>();
            CompetencyPersonProjectAssessment item = service.Get(hfCompetencyPersonProjectAssessmentId.ValueAsInt());

            ShowEditDetails(item);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Handles the Click event of the btnSave control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
        protected void btnSave_Click(object sender, EventArgs e)
        {
            int projectPointOfAssessmentId          = hfProjectPointOfAssessmentId.ValueAsInt();
            int competencyPersonProjectAssessmentId = hfCompetencyPersonProjectAssessmentId.ValueAsInt();

            var competencyPersonProjectAssessmentPointOfAssessmentService = new ResidencyService <CompetencyPersonProjectAssessmentPointOfAssessment>();
            CompetencyPersonProjectAssessmentPointOfAssessment competencyPersonProjectAssessmentPointOfAssessment = null;

            competencyPersonProjectAssessmentPointOfAssessment = competencyPersonProjectAssessmentPointOfAssessmentService.Queryable()
                                                                 .Where(a => a.ProjectPointOfAssessmentId.Equals(projectPointOfAssessmentId) && a.CompetencyPersonProjectAssessmentId.Equals(competencyPersonProjectAssessmentId))
                                                                 .FirstOrDefault();

            if (competencyPersonProjectAssessmentPointOfAssessment == null)
            {
                // Create a record to store the rating for this PointOfAssessment if one doesn't already exist
                competencyPersonProjectAssessmentPointOfAssessment = new CompetencyPersonProjectAssessmentPointOfAssessment {
                    Id = 0
                };
                competencyPersonProjectAssessmentPointOfAssessment.ProjectPointOfAssessmentId          = projectPointOfAssessmentId;
                competencyPersonProjectAssessmentPointOfAssessment.CompetencyPersonProjectAssessmentId = competencyPersonProjectAssessmentId;
                competencyPersonProjectAssessmentPointOfAssessmentService.Add(competencyPersonProjectAssessmentPointOfAssessment, CurrentPersonId);
            }

            competencyPersonProjectAssessmentPointOfAssessment.Rating      = tbRating.Text.AsInteger();
            competencyPersonProjectAssessmentPointOfAssessment.RatingNotes = tbRatingNotes.Text;

            if (!competencyPersonProjectAssessmentPointOfAssessment.IsValid)
            {
                // Controls will render the error messages
                return;
            }

            RockTransactionScope.WrapTransaction(() =>
            {
                competencyPersonProjectAssessmentPointOfAssessmentService.Save(competencyPersonProjectAssessmentPointOfAssessment, CurrentPersonId);

                // get the CompetencyPersonProjectAssessment using the same dbContext
                var competencyPersonProjectAssessmentService = new ResidencyService <CompetencyPersonProjectAssessment>(competencyPersonProjectAssessmentPointOfAssessmentService.ResidencyContext);
                CompetencyPersonProjectAssessment competencyPersonProjectAssessment = competencyPersonProjectAssessmentService.Get(competencyPersonProjectAssessmentId);

                // set Overall Rating based on average of POA ratings
                competencyPersonProjectAssessment.OverallRating = (decimal?)competencyPersonProjectAssessment.CompetencyPersonProjectAssessmentPointOfAssessments.Average(a => a.Rating);
                competencyPersonProjectAssessmentService.Save(competencyPersonProjectAssessment, CurrentPersonId);
            });

            if (competencyPersonProjectAssessmentId != 0)
            {
                Dictionary <string, string> qryString = new Dictionary <string, string>();
                qryString["competencyPersonProjectAssessmentId"] = competencyPersonProjectAssessmentId.ToString();
                NavigateToParentPage(qryString);
            }
            else
            {
                NavigateToParentPage();
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Handles the Click event of the btnCancel control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void btnCancel_Click(object sender, EventArgs e)
        {
            SetEditMode(false);

            // Cancelling on Edit.  Return to Details
            ResidencyService <CompetencyPersonProjectAssessment> service = new ResidencyService <CompetencyPersonProjectAssessment>();
            CompetencyPersonProjectAssessment item = service.Get(hfCompetencyPersonProjectAssessmentId.ValueAsInt());

            ShowReadonlyDetails(item);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Shows the detail.
        /// </summary>
        /// <param name="itemKey">The item key.</param>
        /// <param name="itemKeyValue">The item key value.</param>
        /// <param name="competencyPersonProjectId">The competency person project id.</param>
        public void ShowDetail( string itemKey, int itemKeyValue, int? competencyPersonProjectId )
        {
            // return if unexpected itemKey 
            if ( itemKey != "competencyPersonProjectAssessmentId" )
            {
                return;
            }

            pnlDetails.Visible = true;

            // Load depending on Add(0) or Edit
            CompetencyPersonProjectAssessment competencyPersonProjectAssessment = null;
            if ( !itemKeyValue.Equals( 0 ) )
            {
                competencyPersonProjectAssessment = new ResidencyService<CompetencyPersonProjectAssessment>().Get( itemKeyValue );
            }
            else
            {
                competencyPersonProjectAssessment = new CompetencyPersonProjectAssessment { Id = 0 };
                competencyPersonProjectAssessment.CompetencyPersonProjectId = competencyPersonProjectId ?? 0;
                competencyPersonProjectAssessment.CompetencyPersonProject
                    = new ResidencyService<CompetencyPersonProject>().Get( competencyPersonProjectAssessment.CompetencyPersonProjectId );
            }

            hfCompetencyPersonProjectAssessmentId.Value = competencyPersonProjectAssessment.Id.ToString();
            hfCompetencyPersonProjectId.Value = competencyPersonProjectAssessment.CompetencyPersonProjectId.ToString();

            // render UI based on Authorized and IsSystem
            bool readOnly = false;

            nbEditModeMessage.Text = string.Empty;
            if ( !IsUserAuthorized( "Edit" ) )
            {
                readOnly = true;
                nbEditModeMessage.Text = EditModeMessage.ReadOnlyEditActionNotAllowed( CompetencyPersonProjectAssessment.FriendlyTypeName );
            }

            if ( readOnly )
            {
                btnEdit.Visible = false;
                ShowReadonlyDetails( competencyPersonProjectAssessment );
            }
            else
            {
                btnEdit.Visible = true;
                if ( competencyPersonProjectAssessment.Id > 0 )
                {
                    ShowReadonlyDetails( competencyPersonProjectAssessment );
                }
                else
                {
                    ShowEditDetails( competencyPersonProjectAssessment );
                }
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Determines whether this instance can delete the specified item.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <param name="errorMessage">The error message.</param>
        /// <returns>
        ///   <c>true</c> if this instance can delete the specified item; otherwise, <c>false</c>.
        /// </returns>
        public bool CanDelete(CompetencyPersonProjectAssessment item, out string errorMessage)
        {
            errorMessage = string.Empty;

            if (new ResidencyService <CompetencyPersonProjectAssessmentPointOfAssessment>().Queryable().Any(a => a.CompetencyPersonProjectAssessmentId == item.Id))
            {
                errorMessage = string.Format("This {0} is assigned to a {1}.", CompetencyPersonProjectAssessment.FriendlyTypeName, CompetencyPersonProjectAssessmentPointOfAssessment.FriendlyTypeName);
                return(false);
            }

            return(true);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Shows the readonly details.
        /// </summary>
        /// <param name="competencyPersonProjectAssessment">The competency person project assessment.</param>
        private void ShowReadonlyDetails( CompetencyPersonProjectAssessment competencyPersonProjectAssessment )
        {
            SetEditMode( false );

            string projectText = string.Format( "{0} - {1}", competencyPersonProjectAssessment.CompetencyPersonProject.Project.Name, competencyPersonProjectAssessment.CompetencyPersonProject.Project.Description );

            lblMainDetails.Text = new DescriptionList()
                .Add( "Resident", competencyPersonProjectAssessment.CompetencyPersonProject.CompetencyPerson.Person )
                .Add( "Competency", competencyPersonProjectAssessment.CompetencyPersonProject.Project.Competency.Name )
                .Add( "Project", projectText )
                .StartSecondColumn()
                .Add( "Assessor", competencyPersonProjectAssessment.AssessorPerson )
                .Add( "Assessment Date/Time", competencyPersonProjectAssessment.AssessmentDateTime )
                .Add( "Rating", competencyPersonProjectAssessment.OverallRating.ToString() )
                .Html;
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Shows the assessment details.
        /// </summary>
        /// <param name="competencyPersonProjectAssessment">The competency person project assessment.</param>
        private void ShowAssessmentDetails(CompetencyPersonProjectAssessment competencyPersonProjectAssessment)
        {
            string projectText = string.Format("{0} - {1}", competencyPersonProjectAssessment.CompetencyPersonProject.Project.Name, competencyPersonProjectAssessment.CompetencyPersonProject.Project.Description);

            lblProjectDetails.Text = new DescriptionList()
                                     .Add("Resident", competencyPersonProjectAssessment.CompetencyPersonProject.CompetencyPerson.Person)
                                     .Add("Competency", competencyPersonProjectAssessment.CompetencyPersonProject.Project.Competency.Name)
                                     .Add("Project", projectText)
                                     .StartSecondColumn()
                                     .Add("Assessor", competencyPersonProjectAssessment.AssessorPerson)
                                     .Add("Assessment Date/Time", competencyPersonProjectAssessment.AssessmentDateTime)
                                     .Add("Rating", competencyPersonProjectAssessment.OverallRating.ToString())
                                     .Add("Rating Notes", competencyPersonProjectAssessment.RatingNotes)
                                     .Html;

            tbResidentComments.Text  = competencyPersonProjectAssessment.ResidentComments;
            lblResidentComments.Text = new DescriptionList()
                                       .Add("Resident Comments", (competencyPersonProjectAssessment.ResidentComments ?? string.Empty).Replace("\n", "<br />"))
                                       .Html;

            BindGrid();
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Handles the Click event of the btnSave control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
        protected void btnSave_Click( object sender, EventArgs e )
        {
            CompetencyPersonProjectAssessment competencyPersonProjectAssessment;
            ResidencyService<CompetencyPersonProjectAssessment> competencyPersonProjectAssessmentService = new ResidencyService<CompetencyPersonProjectAssessment>();

            int competencyPersonProjectAssessmentId = int.Parse( hfCompetencyPersonProjectAssessmentId.Value );

            if ( competencyPersonProjectAssessmentId == 0 )
            {
                competencyPersonProjectAssessment = new CompetencyPersonProjectAssessment();
                competencyPersonProjectAssessmentService.Add( competencyPersonProjectAssessment, CurrentPersonId );
            }
            else
            {
                competencyPersonProjectAssessment = competencyPersonProjectAssessmentService.Get( competencyPersonProjectAssessmentId );
            }

            competencyPersonProjectAssessment.CompetencyPersonProjectId = hfCompetencyPersonProjectId.ValueAsInt();
            competencyPersonProjectAssessment.AssessorPersonId = ppAssessor.PersonId;
            competencyPersonProjectAssessment.AssessmentDateTime = dtpAssessmentDateTime.SelectedDateTime;
            competencyPersonProjectAssessment.RatingNotes = tbRatingNotes.Text;
            competencyPersonProjectAssessment.ResidentComments = tbResidentComments.Text;

            if ( !competencyPersonProjectAssessment.IsValid )
            {
                // Controls will render the error messages
                return;
            }

            RockTransactionScope.WrapTransaction( () =>
            {
                competencyPersonProjectAssessmentService.Save( competencyPersonProjectAssessment, CurrentPersonId );
            } );

            var qryParams = new Dictionary<string, string>();
            qryParams["competencyPersonProjectAssessmentId"] = competencyPersonProjectAssessment.Id.ToString();
            NavigateToPage( this.CurrentPage.Guid, qryParams );
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Handles the Delete event of the gList control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="RowEventArgs"/> instance containing the event data.</param>
        protected void gList_Delete(object sender, RowEventArgs e)
        {
            RockTransactionScope.WrapTransaction(() =>
            {
                var competencyPersonProjectAssessmentService = new ResidencyService <CompetencyPersonProjectAssessment>();
                CompetencyPersonProjectAssessment competencyPersonProjectAssessment = competencyPersonProjectAssessmentService.Get((int)e.RowKeyValue);

                if (competencyPersonProjectAssessment != null)
                {
                    string errorMessage;
                    if (!competencyPersonProjectAssessmentService.CanDelete(competencyPersonProjectAssessment, out errorMessage))
                    {
                        mdGridWarning.Show(errorMessage, ModalAlertType.Information);
                        return;
                    }

                    competencyPersonProjectAssessmentService.Delete(competencyPersonProjectAssessment, CurrentPersonId);
                    competencyPersonProjectAssessmentService.Save(competencyPersonProjectAssessment, CurrentPersonId);
                }
            });

            BindGrid();
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Shows the detail.
        /// </summary>
        /// <param name="itemKey">The item key.</param>
        /// <param name="itemKeyValue">The item key value.</param>
        public void ShowDetail(string itemKey, int itemKeyValue)
        {
            // return if unexpected itemKey
            if (itemKey != "competencyPersonProjectId")
            {
                return;
            }

            pnlDetails.Visible = true;

            hfCompetencyPersonProjectId.Value = this.PageParameter("competencyPersonProjectId");
            int competencyPersonProjectId = hfCompetencyPersonProjectId.ValueAsInt();

            // first try to get the key from the url (in case it from an emailed request)
            string emailedKey = Server.UrlDecode(this.PageParameter("gradeKey"));

            if (!string.IsNullOrWhiteSpace(emailedKey))
            {
                // if they got here from email, put the key in session, and reload page without the key in the url to minimize chance of problems
                Session["residentGraderSessionKey"] = emailedKey;
                Dictionary <string, string> qryParams = new Dictionary <string, string>();
                qryParams.Add("competencyPersonProjectId", competencyPersonProjectId.ToString());
                NavigateToPage(this.CurrentPage.Guid, qryParams);
                return;
            }

            string encryptedKey = Session["residentGraderSessionKey"] as string;

            // clear the residentGraderSessionKey so they don't accidently grade this again with a stale grader login
            Session["residentGraderSessionKey"] = null;

            string residentGraderSessionKey = string.Empty;

            if (!string.IsNullOrWhiteSpace(encryptedKey))
            {
                residentGraderSessionKey = Rock.Security.Encryption.DecryptString(encryptedKey);
            }

            string[] residentGraderSessionKeyParts = residentGraderSessionKey.Split(new char[] { '|' });

            Person assessorPerson     = null;
            bool   fromEmailedRequest = false;

            // verify that the residentGraderSessionKey is for this Project, has a valid Person, and isn't stale (helps minimize the chance of incorrect teacher from a previous teacher login)
            if (residentGraderSessionKeyParts.Length == 3)
            {
                string userLoginGuid = residentGraderSessionKeyParts[1];
                if (residentGraderSessionKeyParts[0].Equals(competencyPersonProjectId.ToString()))
                {
                    //// a live (via Facilitator Login) request goes stale if it has been 10 minutes between the Login and this page loading
                    //// an emailed request just sets Ticks to 0 since we can't really do anything to prevent it

                    assessorPerson = new UserLoginService().Get(new Guid(userLoginGuid)).Person;

                    string ticks = residentGraderSessionKeyParts[2];
                    if (ticks.Equals("0"))
                    {
                        // if ticks is 0, that means this is from an emailed request.
                        fromEmailedRequest = true;
                    }
                    else
                    {
                        TimeSpan elapsed = DateTime.Now - new DateTime(long.Parse(ticks));
                        if (elapsed.TotalMinutes > 10)
                        {
                            // somehow, the session key is stale, so don't trust it
                            assessorPerson = null;
                        }
                    }
                }
            }

            if (assessorPerson == null)
            {
                NavigateToGraderLogin();
                return;
            }

            int assessorPersonId = assessorPerson.Id;

            hfAssessorPersonId.Value = assessorPerson.Id.ToString();

            CompetencyPersonProject competencyPersonProject = new ResidencyService <CompetencyPersonProject>().Get(competencyPersonProjectId);

            if (competencyPersonProject.CompetencyPerson.PersonId != CurrentPersonId)
            {
                if (!fromEmailedRequest)
                {
                    // somebody besides the Resident is logged in and this isn't an emailed grade request
                    NavigateToParentPage();
                    return;
                }
            }

            hfCompetencyPersonProjectId.Value = competencyPersonProject.Id.ToString();

            competencyPersonProject.CompetencyPersonProjectAssessments = competencyPersonProject.CompetencyPersonProjectAssessments ?? new List <CompetencyPersonProjectAssessment>();

            // look for an incomplete assessment, or start a new one
            CompetencyPersonProjectAssessment competencyPersonProjectAssessment = competencyPersonProject.CompetencyPersonProjectAssessments
                                                                                  .Where(a => a.AssessmentDateTime == null).FirstOrDefault();

            if (competencyPersonProjectAssessment == null)
            {
                competencyPersonProjectAssessment = new CompetencyPersonProjectAssessment
                {
                    CompetencyPersonProject = competencyPersonProject
                };
            }

            hfCompetencyPersonProjectAssessmentId.Value = competencyPersonProjectAssessment.Id.ToString();

            // populate page
            lblMainDetails.Text = new DescriptionList()
                                  .Add("Student", competencyPersonProject.CompetencyPerson.Person)
                                  .Add("Competency", competencyPersonProject.CompetencyPerson.Competency.Name)
                                  .Add("Project", string.Format("{0} - {1}", competencyPersonProject.Project.Name, competencyPersonProject.Project.Description))
                                  .Html;

            List <ProjectPointOfAssessment> projectPointOfAssessmentList = new ResidencyService <ProjectPointOfAssessment>().Queryable()
                                                                           .Where(a => a.ProjectId == competencyPersonProject.ProjectId).ToList();

            // get any POA Ratings that might exist
            List <CompetencyPersonProjectAssessmentPointOfAssessment> competencyPersonProjectAssessmentPointOfAssessmentList = new ResidencyService <CompetencyPersonProjectAssessmentPointOfAssessment>().Queryable()
                                                                                                                               .Where(a => a.CompetencyPersonProjectAssessmentId == competencyPersonProjectAssessment.Id).ToList();

            var competencyPersonProjectAssessmentPointOfAssessmentListJoined = from projectPointOfAssessment in projectPointOfAssessmentList
                                                                               join poa in competencyPersonProjectAssessmentPointOfAssessmentList
                                                                               on projectPointOfAssessment.Id equals poa.ProjectPointOfAssessmentId into groupJoin
                                                                               from qryResult in groupJoin.DefaultIfEmpty()
                                                                               select(qryResult ?? new CompetencyPersonProjectAssessmentPointOfAssessment
            {
                ProjectPointOfAssessmentId          = projectPointOfAssessment.Id,
                ProjectPointOfAssessment            = projectPointOfAssessment,
                CompetencyPersonProjectAssessmentId = competencyPersonProjectAssessment.Id,
                CompetencyPersonProjectAssessment   = competencyPersonProjectAssessment
            });

            rptPointOfAssessment.DataSource = competencyPersonProjectAssessmentPointOfAssessmentListJoined.OrderBy(a => a.ProjectPointOfAssessment.AssessmentOrder).ToList();
            rptPointOfAssessment.DataBind();

            tbRatingNotesOverall.Text = competencyPersonProjectAssessment.RatingNotes;
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Handles the Click event of the btnSave control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
        protected void btnSave_Click(object sender, EventArgs e)
        {
            CompetencyPersonProject competencyPersonProject;
            ResidencyService <CompetencyPersonProject> competencyPersonProjectService = new ResidencyService <CompetencyPersonProject>();

            CompetencyPersonProjectAssessment competencyPersonProjectAssessment;
            ResidencyService <CompetencyPersonProjectAssessment> competencyPersonProjectAssessmentService = new ResidencyService <CompetencyPersonProjectAssessment>();

            ResidencyService <CompetencyPersonProjectAssessmentPointOfAssessment> competencyPersonProjectAssessmentPointOfAssessmentService = new ResidencyService <CompetencyPersonProjectAssessmentPointOfAssessment>();

            int competencyPersonProjectId = hfCompetencyPersonProjectId.ValueAsInt();

            if (competencyPersonProjectId == 0)
            {
                competencyPersonProject = new CompetencyPersonProject();
                competencyPersonProjectService.Add(competencyPersonProject, CurrentPersonId);
            }
            else
            {
                competencyPersonProject = competencyPersonProjectService.Get(competencyPersonProjectId);
            }

            int competencyPersonProjectAssessmentId = hfCompetencyPersonProjectAssessmentId.ValueAsInt();

            if (competencyPersonProjectAssessmentId == 0)
            {
                competencyPersonProjectAssessment = new CompetencyPersonProjectAssessment();
                competencyPersonProjectAssessmentService.Add(competencyPersonProjectAssessment, CurrentPersonId);
            }
            else
            {
                competencyPersonProjectAssessment = competencyPersonProjectAssessmentService.Get(competencyPersonProjectAssessmentId);
                competencyPersonProjectAssessment.CompetencyPersonProjectAssessmentPointOfAssessments = new List <CompetencyPersonProjectAssessmentPointOfAssessment>();
            }

            // set competencyPersonProjectAssessment.CompetencyPersonProjectId after saving competencyPersonProject in case it is new
            competencyPersonProjectAssessment.AssessmentDateTime = DateTime.Now;
            competencyPersonProjectAssessment.RatingNotes        = tbRatingNotesOverall.Text;
            competencyPersonProjectAssessment.AssessorPersonId   = hfAssessorPersonId.ValueAsInt();

            if (!competencyPersonProjectAssessment.IsValid)
            {
                // Controls will render the error messages
                return;
            }

            List <CompetencyPersonProjectAssessmentPointOfAssessment> competencyPersonProjectAssessmentPointOfAssessmentList = new List <CompetencyPersonProjectAssessmentPointOfAssessment>();

            foreach (RepeaterItem item in rptPointOfAssessment.Items.OfType <RepeaterItem>())
            {
                HiddenField hfProjectPointOfAssessmentId = item.FindControl("hfProjectPointOfAssessmentId") as HiddenField;
                int         projectPointOfAssessmentId   = hfProjectPointOfAssessmentId.ValueAsInt();

                CompetencyPersonProjectAssessmentPointOfAssessment competencyPersonProjectAssessmentPointOfAssessment = competencyPersonProjectAssessmentPointOfAssessmentService.Queryable()
                                                                                                                        .Where(a => a.ProjectPointOfAssessmentId == projectPointOfAssessmentId)
                                                                                                                        .Where(a => a.CompetencyPersonProjectAssessmentId == competencyPersonProjectAssessmentId).FirstOrDefault();

                if (competencyPersonProjectAssessmentPointOfAssessment == null)
                {
                    competencyPersonProjectAssessmentPointOfAssessment = new CompetencyPersonProjectAssessmentPointOfAssessment();
                    //// set competencyPersonProjectAssessmentPointOfAssessment.CompetencyPersonProjectAssessmentId = competencyPersonProjectAssessment.Id in save in case it's new
                    competencyPersonProjectAssessmentPointOfAssessment.ProjectPointOfAssessmentId = projectPointOfAssessmentId;
                }

                LabeledDropDownList ddlPointOfAssessmentRating = item.FindControl("ddlPointOfAssessmentRating") as LabeledDropDownList;
                TextBox             tbRatingNotesPOA           = item.FindControl("tbRatingNotesPOA") as TextBox;

                competencyPersonProjectAssessmentPointOfAssessment.Rating      = ddlPointOfAssessmentRating.SelectedValueAsInt();
                competencyPersonProjectAssessmentPointOfAssessment.RatingNotes = tbRatingNotesPOA.Text;

                competencyPersonProjectAssessmentPointOfAssessmentList.Add(competencyPersonProjectAssessmentPointOfAssessment);
            }

            RockTransactionScope.WrapTransaction(() =>
            {
                competencyPersonProjectService.Save(competencyPersonProject, CurrentPersonId);
                competencyPersonProjectAssessment.CompetencyPersonProjectId = competencyPersonProject.Id;

                // set Overall Rating based on average of POA ratings
                competencyPersonProjectAssessment.OverallRating = (decimal?)competencyPersonProjectAssessmentPointOfAssessmentList.Average(a => a.Rating);
                competencyPersonProjectAssessmentService.Save(competencyPersonProjectAssessment, CurrentPersonId);

                foreach (var competencyPersonProjectAssessmentPointOfAssessment in competencyPersonProjectAssessmentPointOfAssessmentList)
                {
                    competencyPersonProjectAssessmentPointOfAssessment.CompetencyPersonProjectAssessmentId = competencyPersonProjectAssessment.Id;

                    if (competencyPersonProjectAssessmentPointOfAssessment.Id == 0)
                    {
                        competencyPersonProjectAssessmentPointOfAssessmentService.Add(competencyPersonProjectAssessmentPointOfAssessment, CurrentPersonId);
                    }

                    competencyPersonProjectAssessmentPointOfAssessmentService.Save(competencyPersonProjectAssessmentPointOfAssessment, CurrentPersonId);
                }
            });

            Rock.Model.Page page = null;
            string          personProjectDetailPageGuid = this.GetAttributeValue("PersonProjectDetailPage");

            if (!string.IsNullOrWhiteSpace(personProjectDetailPageGuid))
            {
                page = new PageService().Get(new Guid(personProjectDetailPageGuid));
            }

            if (page != null)
            {
                Dictionary <string, string> qryString = new Dictionary <string, string>();
                qryString["competencyPersonProjectId"] = hfCompetencyPersonProjectId.Value;
                NavigateToPage(page.Guid, qryString);
            }
            else
            {
                throw new Exception("PersonProjectDetailPage not configured correctly");
            }
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Shows the readonly details.
        /// </summary>
        /// <param name="competencyPersonProjectAssessment">The competency person project assessment.</param>
        private void ShowReadonlyDetails(CompetencyPersonProjectAssessment competencyPersonProjectAssessment)
        {
            SetEditMode(false);

            ShowAssessmentDetails(competencyPersonProjectAssessment);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Shows the edit details.
        /// </summary>
        /// <param name="competencyPersonProjectAssessment">The competency person project assessment.</param>
        private void ShowEditDetails(CompetencyPersonProjectAssessment competencyPersonProjectAssessment)
        {
            SetEditMode(true);

            ShowAssessmentDetails(competencyPersonProjectAssessment);
        }