コード例 #1
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 dfBenevolenceRequest_Click(object sender, RowEventArgs e)
        {
            var rockContext = new RockContext();
            BenevolenceRequestService service            = new BenevolenceRequestService(rockContext);
            BenevolenceRequest        benevolenceRequest = service.Get(e.RowKeyId);

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

                service.Delete(benevolenceRequest);
                rockContext.SaveChanges();
            }

            BindGrid();
        }
コード例 #2
0
        /// <summary>
        /// Handles the DeleteClick event of the gGrid control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="RowEventArgs"/> instance containing the event data.</param>
        private void gGrid_DeleteClick(object sender, RowEventArgs e)
        {
            var    rockContext = new RockContext();
            var    benevolenceRequestService = new BenevolenceRequestService(rockContext);
            var    benevolenceRequest        = benevolenceRequestService.Get(e.RowKeyId);
            string errorMessage;

            if (benevolenceRequest == null)
            {
                return;
            }

            if (!benevolenceRequestService.CanDelete(benevolenceRequest, out errorMessage))
            {
                mdGridWarning.Show(errorMessage, ModalAlertType.Information);
                return;
            }

            benevolenceRequestService.Delete(benevolenceRequest);
            rockContext.SaveChanges();

            BindGrid();
        }
コード例 #3
0
        /// <summary>
        /// Executes the specified workflow.
        /// </summary>
        /// <param name="rockContext">The rock context.</param>
        /// <param name="action">The action.</param>
        /// <param name="entity">The entity.</param>
        /// <param name="errorMessages">The error messages.</param>
        /// <returns></returns>
        public override bool Execute(RockContext rockContext, WorkflowAction action, Object entity, out List <string> errorMessages)
        {
            errorMessages = new List <string>();

            var mergeFields = GetMergeFields(action);

            BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService(rockContext);

            var benevolenceRequest = benevolenceRequestService.Get(GetAttributeValue(action, "BenevolenceRequest", true).AsGuid());

            if (benevolenceRequest == null)
            {
                var errorMessage = "Benevolence request could not be found.";
                errorMessages.Add(errorMessage);
                action.AddLogEntry(errorMessage, true);
                return(false);
            }

            var binaryFile = new BinaryFileService(rockContext).Get(GetAttributeValue(action, "Document", true).AsGuid());

            if (binaryFile == null)
            {
                action.AddLogEntry("The document to add to the benevolence request was not be found.", true);
                return(true); // returning true here to allow the action to run 'successfully' without a document. This allows the action to be easily used when the document is optional without a bunch of action filter tests.
            }

            BenevolenceRequestDocument requestDocument = new BenevolenceRequestDocument();

            benevolenceRequest.Documents.Add(requestDocument);

            requestDocument.BinaryFileId = binaryFile.Id;

            rockContext.SaveChanges();

            action.AddLogEntry("Added document to the benevolence request.");
            return(true);
        }
コード例 #4
0
        /// <summary>
        /// Executes the specified workflow.
        /// </summary>
        /// <param name="rockContext">The rock context.</param>
        /// <param name="action">The action.</param>
        /// <param name="entity">The entity.</param>
        /// <param name="errorMessages">The error messages.</param>
        /// <returns></returns>
        public override bool Execute( RockContext rockContext, WorkflowAction action, Object entity, out List<string> errorMessages )
        {
            errorMessages = new List<string>();

            var mergeFields = GetMergeFields( action );

            BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService( rockContext );

            var benevolenceRequest = benevolenceRequestService.Get( GetAttributeValue( action, "BenevolenceRequest", true ).AsGuid() );

            if (benevolenceRequest == null )
            {
                var errorMessage = "Benevolence request could not be found.";
                errorMessages.Add( errorMessage );
                action.AddLogEntry( errorMessage, true );
                return false;
            }

            var binaryFile = new BinaryFileService(rockContext).Get(GetAttributeValue( action, "Document", true ).AsGuid());

            if ( binaryFile == null )
            {
                action.AddLogEntry( "The document to add to the benevolence request was not be found.", true );
                return true; // returning true here to allow the action to run 'successfully' without a document. This allows the action to be easily used when the document is optional without a bunch of action filter tests.
            }

            BenevolenceRequestDocument requestDocument = new BenevolenceRequestDocument();
            benevolenceRequest.Documents.Add( requestDocument );

            requestDocument.BinaryFileId = binaryFile.Id;

            rockContext.SaveChanges();

            action.AddLogEntry( "Added document to the benevolence request." );
            return true;
        }
コード例 #5
0
        /// <summary>
        /// Shows the detail.
        /// </summary>
        /// <param name="benevolenceRequestId">The benevolence request identifier</param>
        public void ShowDetail( int benevolenceRequestId )
        {
            BenevolenceRequest benevolenceRequest = null;
            var rockContext = new RockContext();
            BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService( rockContext );
            if ( !benevolenceRequestId.Equals( 0 ) )
            {
                benevolenceRequest = benevolenceRequestService.Get( benevolenceRequestId );
                pdAuditDetails.SetEntity( benevolenceRequest, ResolveRockUrl( "~" ) );
            }

            if ( benevolenceRequest == null )
            {
                benevolenceRequest = new BenevolenceRequest { Id = 0 };
                benevolenceRequest.RequestDateTime = RockDateTime.Now;
                var personId = this.PageParameter( "PersonId" ).AsIntegerOrNull();
                if ( personId.HasValue )
                {
                    var person = new PersonService( rockContext ).Get( personId.Value );
                    if ( person != null )
                    {
                        benevolenceRequest.RequestedByPersonAliasId = person.PrimaryAliasId;
                        benevolenceRequest.RequestedByPersonAlias = person.PrimaryAlias;
                    }
                }
                // hide the panel drawer that show created and last modified dates
                pdAuditDetails.Visible = false;
            }

            dtbFirstName.Text = benevolenceRequest.FirstName;
            dtbLastName.Text = benevolenceRequest.LastName;
            dtbGovernmentId.Text = benevolenceRequest.GovernmentId;
            ebEmail.Text = benevolenceRequest.Email;
            dtbRequestText.Text = benevolenceRequest.RequestText;
            dtbSummary.Text = benevolenceRequest.ResultSummary;
            dtbProvidedNextSteps.Text = benevolenceRequest.ProvidedNextSteps;
            dpRequestDate.SelectedDate = benevolenceRequest.RequestDateTime;

            if ( benevolenceRequest.Campus != null )
            {
                cpCampus.SelectedCampusId = benevolenceRequest.CampusId;
            }
            else
            {
                cpCampus.SelectedIndex = 0;
            }

            if ( benevolenceRequest.RequestedByPersonAlias != null )
            {
                ppPerson.SetValue( benevolenceRequest.RequestedByPersonAlias.Person );
            }
            else
            {
                ppPerson.SetValue( null );
            }

            if ( benevolenceRequest.HomePhoneNumber != null )
            {
                pnbHomePhone.Text = benevolenceRequest.HomePhoneNumber;
            }

            if ( benevolenceRequest.CellPhoneNumber != null )
            {
                pnbCellPhone.Text = benevolenceRequest.CellPhoneNumber;
            }

            if ( benevolenceRequest.WorkPhoneNumber != null )
            {
                pnbWorkPhone.Text = benevolenceRequest.WorkPhoneNumber;
            }

            lapAddress.SetValue( benevolenceRequest.Location );

            LoadDropDowns( benevolenceRequest );

            if ( benevolenceRequest.RequestStatusValueId != null )
            {
                ddlRequestStatus.SetValue( benevolenceRequest.RequestStatusValueId );

                if ( benevolenceRequest.RequestStatusValue.Value == "Approved" )
                {
                    hlStatus.Text = "Approved";
                    hlStatus.LabelType = LabelType.Success;
                }

                if ( benevolenceRequest.RequestStatusValue.Value == "Denied" )
                {
                    hlStatus.Text = "Denied";
                    hlStatus.LabelType = LabelType.Danger;
                }
            }

            if ( benevolenceRequest.ConnectionStatusValueId != null )
            {
                ddlConnectionStatus.SetValue( benevolenceRequest.ConnectionStatusValueId );
            }

            ddlCaseWorker.SetValue( benevolenceRequest.CaseWorkerPersonAliasId );

            BindGridFromViewState();

            DocumentsState = benevolenceRequest.Documents.OrderBy( s => s.Order ).Select( s => s.BinaryFileId ).ToList();
            BindDocuments( true );

            benevolenceRequest.LoadAttributes();
            Rock.Attribute.Helper.AddEditControls( benevolenceRequest, phAttributes, true, BlockValidationGroup, 2 );

            // call the OnSelectPerson of the person picker which will update the UI based on the selected person
            ppPerson_SelectPerson( null, null );

            hfBenevolenceRequestId.Value = benevolenceRequest.Id.ToString();
        }
コード例 #6
0
        /// <summary>
        /// Handles the Click event of the lbSave 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 lbSave_Click( object sender, EventArgs e )
        {
            if ( Page.IsValid )
            {
                RockContext rockContext = new RockContext();
                BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService( rockContext );
                BenevolenceResultService benevolenceResultService = new BenevolenceResultService( rockContext );

                BenevolenceRequest benevolenceRequest = null;
                int benevolenceRequestId = PageParameter( "BenevolenceRequestId" ).AsInteger();

                if ( !benevolenceRequestId.Equals( 0 ) )
                {
                    benevolenceRequest = benevolenceRequestService.Get( benevolenceRequestId );
                }

                if ( benevolenceRequest == null )
                {
                    benevolenceRequest = new BenevolenceRequest { Id = 0 };
                }

                benevolenceRequest.FirstName = dtbFirstName.Text;
                benevolenceRequest.LastName = dtbLastName.Text;
                benevolenceRequest.Email = ebEmail.Text;
                benevolenceRequest.RequestText = dtbRequestText.Text;
                benevolenceRequest.ResultSummary = dtbSummary.Text;
                benevolenceRequest.CampusId = cpCampus.SelectedCampusId;
                benevolenceRequest.ProvidedNextSteps = dtbProvidedNextSteps.Text;
                benevolenceRequest.GovernmentId = dtbGovernmentId.Text;

                if ( lapAddress.Location != null )
                {
                    benevolenceRequest.LocationId = lapAddress.Location.Id;
                }

                benevolenceRequest.RequestedByPersonAliasId = ppPerson.PersonAliasId;
                benevolenceRequest.CaseWorkerPersonAliasId = ddlCaseWorker.SelectedValue.AsIntegerOrNull();
                benevolenceRequest.RequestStatusValueId = ddlRequestStatus.SelectedValue.AsIntegerOrNull();
                benevolenceRequest.ConnectionStatusValueId = ddlConnectionStatus.SelectedValue.AsIntegerOrNull();

                if ( dpRequestDate.SelectedDate.HasValue )
                {
                    benevolenceRequest.RequestDateTime = dpRequestDate.SelectedDate.Value;
                }

                benevolenceRequest.HomePhoneNumber = pnbHomePhone.Number;
                benevolenceRequest.CellPhoneNumber = pnbCellPhone.Number;
                benevolenceRequest.WorkPhoneNumber = pnbWorkPhone.Number;

                List<BenevolenceResultInfo> resultListUI = BenevolenceResultsState;
                var resultListDB = benevolenceRequest.BenevolenceResults.ToList();

                // remove any Benevolence Results that were removed in the UI
                foreach ( BenevolenceResult resultDB in resultListDB )
                {
                    if ( !resultListUI.Any( r => r.ResultId == resultDB.Id ) )
                    {
                        benevolenceRequest.BenevolenceResults.Remove( resultDB );
                        benevolenceResultService.Delete( resultDB );
                    }
                }

                // add any Benevolence Results that were added in the UI
                foreach ( BenevolenceResultInfo resultUI in resultListUI )
                {
                    var resultDB = resultListDB.FirstOrDefault( r => r.Guid == resultUI.TempGuid );
                    if ( resultDB == null )
                    {
                        resultDB = new BenevolenceResult();
                        resultDB.BenevolenceRequestId = benevolenceRequest.Id;
                        resultDB.Guid = resultUI.TempGuid;
                        benevolenceRequest.BenevolenceResults.Add( resultDB );
                    }

                    resultDB.Amount = resultUI.Amount;
                    resultDB.ResultSummary = resultUI.ResultSummary;
                    resultDB.ResultTypeValueId = resultUI.ResultTypeValueId;
                }

                if ( benevolenceRequest.IsValid )
                {
                    if ( benevolenceRequest.Id.Equals( 0 ) )
                    {
                        benevolenceRequestService.Add( benevolenceRequest );
                    }

                    // get attributes
                    benevolenceRequest.LoadAttributes();
                    Rock.Attribute.Helper.GetEditValues( phAttributes, benevolenceRequest );

                    rockContext.WrapTransaction( () =>
                    {
                        rockContext.SaveChanges();
                        benevolenceRequest.SaveAttributeValues( rockContext );
                    } );

                    // update related documents
                    var documentsService = new BenevolenceRequestDocumentService( rockContext );

                    // delete any images that were removed
                    var orphanedBinaryFileIds = new List<int>();
                    var documentsInDb = documentsService.Queryable().Where( b => b.BenevolenceRequestId == benevolenceRequest.Id ).ToList();

                    foreach ( var document in documentsInDb.Where( i => !DocumentsState.Contains( i.BinaryFileId ) ) )
                    {
                        orphanedBinaryFileIds.Add( document.BinaryFileId );
                        documentsService.Delete( document );
                    }

                    // save documents
                    int documentOrder = 0;
                    foreach ( var binaryFileId in DocumentsState )
                    {
                        // Add or Update the activity type
                        var document = documentsInDb.FirstOrDefault( i => i.BinaryFileId == binaryFileId );
                        if ( document == null )
                        {
                            document = new BenevolenceRequestDocument();
                            document.BenevolenceRequestId = benevolenceRequest.Id;
                            benevolenceRequest.Documents.Add( document );
                        }
                        document.BinaryFileId = binaryFileId;
                        document.Order = documentOrder;
                        documentOrder++;
                    }
                    rockContext.SaveChanges();

                    // redirect back to parent
                    var personId = this.PageParameter( "PersonId" ).AsIntegerOrNull();
                    var qryParams = new Dictionary<string, string>();
                    if ( personId.HasValue )
                    {
                        qryParams.Add( "PersonId", personId.ToString() );
                    }

                    NavigateToParentPage( qryParams );
                }
            }
        }
コード例 #7
0
        /// <summary>
        /// Shows the detail.
        /// </summary>
        /// <param name="benevolenceRequestId">The benevolence request identifier</param>
        public void ShowDetail(int benevolenceRequestId)
        {
            BenevolenceRequest benevolenceRequest = null;
            var rockContext = new RockContext();
            BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService(rockContext);

            if (!benevolenceRequestId.Equals(0))
            {
                benevolenceRequest = benevolenceRequestService.Get(benevolenceRequestId);
                pdAuditDetails.SetEntity(benevolenceRequest, ResolveRockUrl("~"));
            }

            if (benevolenceRequest == null)
            {
                benevolenceRequest = new BenevolenceRequest {
                    Id = 0
                };
                benevolenceRequest.RequestDateTime = RockDateTime.Now;
                var personId = this.PageParameter("PersonId").AsIntegerOrNull();
                if (personId.HasValue)
                {
                    var person = new PersonService(rockContext).Get(personId.Value);
                    if (person != null)
                    {
                        benevolenceRequest.RequestedByPersonAliasId = person.PrimaryAliasId;
                        benevolenceRequest.RequestedByPersonAlias   = person.PrimaryAlias;
                    }
                }
                // hide the panel drawer that show created and last modified dates
                pdAuditDetails.Visible = false;
            }

            dtbFirstName.Text          = benevolenceRequest.FirstName;
            dtbLastName.Text           = benevolenceRequest.LastName;
            dtbGovernmentId.Text       = benevolenceRequest.GovernmentId;
            ebEmail.Text               = benevolenceRequest.Email;
            dtbRequestText.Text        = benevolenceRequest.RequestText;
            dtbSummary.Text            = benevolenceRequest.ResultSummary;
            dtbProvidedNextSteps.Text  = benevolenceRequest.ProvidedNextSteps;
            dpRequestDate.SelectedDate = benevolenceRequest.RequestDateTime;

            if (benevolenceRequest.Campus != null)
            {
                cpCampus.SelectedCampusId = benevolenceRequest.CampusId;
            }
            else
            {
                cpCampus.SelectedIndex = 0;
            }

            if (benevolenceRequest.RequestedByPersonAlias != null)
            {
                ppPerson.SetValue(benevolenceRequest.RequestedByPersonAlias.Person);
            }
            else
            {
                ppPerson.SetValue(null);
            }

            if (benevolenceRequest.HomePhoneNumber != null)
            {
                pnbHomePhone.Text = benevolenceRequest.HomePhoneNumber;
            }

            if (benevolenceRequest.CellPhoneNumber != null)
            {
                pnbCellPhone.Text = benevolenceRequest.CellPhoneNumber;
            }

            if (benevolenceRequest.WorkPhoneNumber != null)
            {
                pnbWorkPhone.Text = benevolenceRequest.WorkPhoneNumber;
            }

            lapAddress.SetValue(benevolenceRequest.Location);

            LoadDropDowns(benevolenceRequest);

            if (benevolenceRequest.RequestStatusValueId != null)
            {
                ddlRequestStatus.SetValue(benevolenceRequest.RequestStatusValueId);

                if (benevolenceRequest.RequestStatusValue.Value == "Approved")
                {
                    hlStatus.Text      = "Approved";
                    hlStatus.LabelType = LabelType.Success;
                }

                if (benevolenceRequest.RequestStatusValue.Value == "Denied")
                {
                    hlStatus.Text      = "Denied";
                    hlStatus.LabelType = LabelType.Danger;
                }
            }

            if (benevolenceRequest.ConnectionStatusValueId != null)
            {
                ddlConnectionStatus.SetValue(benevolenceRequest.ConnectionStatusValueId);
            }

            ddlCaseWorker.SetValue(benevolenceRequest.CaseWorkerPersonAliasId);

            BindGridFromViewState();

            DocumentsState = benevolenceRequest.Documents.OrderBy(s => s.Order).Select(s => s.BinaryFileId).ToList();
            BindDocuments(true);

            benevolenceRequest.LoadAttributes();
            Rock.Attribute.Helper.AddEditControls(benevolenceRequest, phAttributes, true, BlockValidationGroup, 2);

            // call the OnSelectPerson of the person picker which will update the UI based on the selected person
            ppPerson_SelectPerson(null, null);

            hfBenevolenceRequestId.Value = benevolenceRequest.Id.ToString();
        }
コード例 #8
0
        /// <summary>
        /// Shows the detail.
        /// </summary>
        /// <param name="benevolenceRequestId">The benevolence request identifier</param>
        public void ShowDetail(int benevolenceRequestId)
        {
            BenevolenceRequest benevolenceRequest = null;
            var rockContext = new RockContext();
            BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService(rockContext);

            if (!benevolenceRequestId.Equals(0))
            {
                benevolenceRequest = benevolenceRequestService.Get(benevolenceRequestId);
            }

            if (benevolenceRequest == null)
            {
                benevolenceRequest = new BenevolenceRequest {
                    Id = 0
                };
                benevolenceRequest.RequestDateTime = RockDateTime.Now;
                var personId = this.PageParameter("PersonId").AsIntegerOrNull();
                if (personId.HasValue)
                {
                    var person = new PersonService(rockContext).Get(personId.Value);
                    if (person != null)
                    {
                        benevolenceRequest.RequestedByPersonAliasId = person.PrimaryAliasId;
                        benevolenceRequest.RequestedByPersonAlias   = person.PrimaryAlias;
                    }
                }
            }

            dtbFirstName.Text          = benevolenceRequest.FirstName;
            dtbLastName.Text           = benevolenceRequest.LastName;
            dtbGovernmentId.Text       = benevolenceRequest.GovernmentId;
            ebEmail.Text               = benevolenceRequest.Email;
            dtbRequestText.Text        = benevolenceRequest.RequestText;
            dtbSummary.Text            = benevolenceRequest.ResultSummary;
            dpRequestDate.SelectedDate = benevolenceRequest.RequestDateTime;

            if (benevolenceRequest.RequestedByPersonAlias != null)
            {
                ppPerson.SetValue(benevolenceRequest.RequestedByPersonAlias.Person);
            }
            else
            {
                ppPerson.SetValue(null);
            }

            if (benevolenceRequest.HomePhoneNumber != null)
            {
                pnbHomePhone.Text = benevolenceRequest.HomePhoneNumber;
            }

            if (benevolenceRequest.CellPhoneNumber != null)
            {
                pnbCellPhone.Text = benevolenceRequest.CellPhoneNumber;
            }

            if (benevolenceRequest.WorkPhoneNumber != null)
            {
                pnbWorkPhone.Text = benevolenceRequest.WorkPhoneNumber;
            }

            lapAddress.SetValue(benevolenceRequest.Location);

            LoadDropDowns(benevolenceRequest);

            if (benevolenceRequest.RequestStatusValueId != null)
            {
                ddlRequestStatus.SetValue(benevolenceRequest.RequestStatusValueId);

                if (benevolenceRequest.RequestStatusValue.Value == "Approved")
                {
                    hlStatus.Text      = "Approved";
                    hlStatus.LabelType = LabelType.Success;
                }

                if (benevolenceRequest.RequestStatusValue.Value == "Denied")
                {
                    hlStatus.Text      = "Denied";
                    hlStatus.LabelType = LabelType.Danger;
                }
            }

            if (benevolenceRequest.ConnectionStatusValueId != null)
            {
                ddlConnectionStatus.SetValue(benevolenceRequest.ConnectionStatusValueId);
            }

            ddlCaseWorker.SetValue(benevolenceRequest.CaseWorkerPersonAliasId);

            BindGridFromViewState();

            // call the OnSelectPerson of the person picker which will update the UI based on the selected person
            ppPerson_SelectPerson(null, null);
        }
コード例 #9
0
        /// <summary>
        /// Shows the detail.
        /// </summary>
        /// <param name="benevolenceRequestId">The benevolence request identifier</param>
        public void ShowDetail(int benevolenceRequestId)
        {
            BenevolenceRequest        benevolenceRequest        = null;
            BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService(new RockContext());

            if (!benevolenceRequestId.Equals(0))
            {
                benevolenceRequest = benevolenceRequestService.Get(benevolenceRequestId);
            }

            if (benevolenceRequest == null)
            {
                benevolenceRequest = new BenevolenceRequest {
                    Id = 0
                };
                benevolenceRequest.RequestDateTime = RockDateTime.Now;
            }

            dtbFirstName.Text          = benevolenceRequest.FirstName;
            dtbLastName.Text           = benevolenceRequest.LastName;
            dtbGovernmentId.Text       = benevolenceRequest.GovernmentId;
            ebEmail.Text               = benevolenceRequest.Email;
            dtbRequestText.Text        = benevolenceRequest.RequestText;
            dtbSummary.Text            = benevolenceRequest.ResultSummary;
            dpRequestDate.SelectedDate = benevolenceRequest.RequestDateTime;

            if (benevolenceRequest.RequestedByPersonAlias != null)
            {
                ppPerson.SetValue(benevolenceRequest.RequestedByPersonAlias.Person);
            }
            else
            {
                ppPerson.SetValue(null);
            }

            if (benevolenceRequest.HomePhoneNumber != null)
            {
                pnbHomePhone.Text = benevolenceRequest.HomePhoneNumber;
            }
            if (benevolenceRequest.CellPhoneNumber != null)
            {
                pnbCellPhone.Text = benevolenceRequest.CellPhoneNumber;
            }
            if (benevolenceRequest.WorkPhoneNumber != null)
            {
                pnbWorkPhone.Text = benevolenceRequest.WorkPhoneNumber;
            }
            lapAddress.SetValue(benevolenceRequest.Location);

            LoadDropDowns(benevolenceRequest);

            if (benevolenceRequest.RequestStatusValueId != null)
            {
                ddlRequestStatus.SelectedValue = benevolenceRequest.RequestStatusValueId.ToString();

                if (benevolenceRequest.RequestStatusValue.Value == "Approved")
                {
                    hlStatus.Text      = "Approved";
                    hlStatus.LabelType = LabelType.Success;
                }

                if (benevolenceRequest.RequestStatusValue.Value == "Denied")
                {
                    hlStatus.Text      = "Denied";
                    hlStatus.LabelType = LabelType.Danger;
                }
            }

            if (benevolenceRequest.ConnectionStatusValueId != null)
            {
                ddlConnectionStatus.SelectedValue = benevolenceRequest.ConnectionStatusValueId.ToString();
            }

            ddlCaseWorker.SelectedValue = benevolenceRequest.CaseWorkerPersonAliasId.ToString();

            BindGridFromViewState();
        }
コード例 #10
0
        /// <summary>
        /// Handles the Click event of the lbSave 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 lbSave_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                RockContext rockContext = new RockContext();
                BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService(rockContext);
                BenevolenceResultService  benevolenceResultService  = new BenevolenceResultService(rockContext);

                BenevolenceRequest benevolenceRequest = null;
                int benevolenceRequestId = PageParameter("BenevolenceRequestId").AsInteger();

                if (!benevolenceRequestId.Equals(0))
                {
                    benevolenceRequest = benevolenceRequestService.Get(benevolenceRequestId);
                }

                if (benevolenceRequest == null)
                {
                    benevolenceRequest = new BenevolenceRequest {
                        Id = 0
                    };
                }

                benevolenceRequest.FirstName     = dtbFirstName.Text;
                benevolenceRequest.LastName      = dtbLastName.Text;
                benevolenceRequest.Email         = ebEmail.Text;
                benevolenceRequest.RequestText   = dtbRequestText.Text;
                benevolenceRequest.ResultSummary = dtbSummary.Text;
                benevolenceRequest.GovernmentId  = dtbGovernmentId.Text;

                if (lapAddress.Location != null)
                {
                    benevolenceRequest.LocationId = lapAddress.Location.Id;
                }

                benevolenceRequest.RequestedByPersonAliasId = ppPerson.PersonAliasId;
                benevolenceRequest.CaseWorkerPersonAliasId  = ddlCaseWorker.SelectedItem.Value.AsIntegerOrNull();
                benevolenceRequest.RequestStatusValueId     = ddlRequestStatus.SelectedItem.Value.AsIntegerOrNull();
                benevolenceRequest.ConnectionStatusValueId  = ddlConnectionStatus.SelectedItem.Value.AsIntegerOrNull();

                if (dpRequestDate.SelectedDate.HasValue)
                {
                    benevolenceRequest.RequestDateTime = dpRequestDate.SelectedDate.Value;
                }

                benevolenceRequest.HomePhoneNumber = pnbHomePhone.Number;
                benevolenceRequest.CellPhoneNumber = pnbCellPhone.Number;
                benevolenceRequest.WorkPhoneNumber = pnbWorkPhone.Number;

                List <BenevolenceResultInfo> resultList        = BenevolenceResultsState;
                BenevolenceResult            benevolenceResult = null;

                foreach (BenevolenceResult result in benevolenceRequest.BenevolenceResults.ToList())
                {
                    if (resultList.FirstOrDefault(r => r.ResultId == result.Id) == null)
                    {
                        benevolenceRequest.BenevolenceResults.Remove(result);
                        benevolenceResultService.Delete(result);
                    }
                }

                foreach (BenevolenceResultInfo benevolenceResultInfo in resultList)
                {
                    if (benevolenceResultInfo.ResultId == null)
                    {
                        benevolenceResult                      = new BenevolenceResult();
                        benevolenceResult.Amount               = benevolenceResultInfo.Amount;
                        benevolenceResult.ResultSummary        = benevolenceResultInfo.ResultSummary;
                        benevolenceResult.ResultTypeValueId    = benevolenceResultInfo.ResultTypeValueId;
                        benevolenceResult.BenevolenceRequestId = benevolenceRequest.Id;
                        benevolenceRequest.BenevolenceResults.Add(benevolenceResult);
                    }
                }

                if (benevolenceRequest.IsValid)
                {
                    if (benevolenceRequest.Id.Equals(0))
                    {
                        benevolenceRequestService.Add(benevolenceRequest);
                    }

                    rockContext.SaveChanges();
                    NavigateToParentPage();
                }
            }
        }
コード例 #11
0
        /// <summary>
        /// Shows the detail.
        /// </summary>
        /// <param name="benevolenceRequestId">The benevolence request identifier</param>
        public void ShowDetail( int benevolenceRequestId )
        {
            BenevolenceRequest benevolenceRequest = null;
            var rockContext = new RockContext();
            BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService( rockContext );
            if ( !benevolenceRequestId.Equals( 0 ) )
            {
                benevolenceRequest = benevolenceRequestService.Get( benevolenceRequestId );
            }

            if ( benevolenceRequest == null )
            {
                benevolenceRequest = new BenevolenceRequest { Id = 0 };
                benevolenceRequest.RequestDateTime = RockDateTime.Now;
                var personId = this.PageParameter( "PersonId" ).AsIntegerOrNull();
                if ( personId.HasValue )
                {
                    var person = new PersonService( rockContext ).Get( personId.Value );
                    if ( person != null )
                    {
                        benevolenceRequest.RequestedByPersonAliasId = person.PrimaryAliasId;
                        benevolenceRequest.RequestedByPersonAlias = person.PrimaryAlias;
                    }
                }
            }

            dtbFirstName.Text = benevolenceRequest.FirstName;
            dtbLastName.Text = benevolenceRequest.LastName;
            dtbGovernmentId.Text = benevolenceRequest.GovernmentId;
            ebEmail.Text = benevolenceRequest.Email;
            dtbRequestText.Text = benevolenceRequest.RequestText;
            dtbSummary.Text = benevolenceRequest.ResultSummary;
            dpRequestDate.SelectedDate = benevolenceRequest.RequestDateTime;

            if ( benevolenceRequest.RequestedByPersonAlias != null )
            {
                ppPerson.SetValue( benevolenceRequest.RequestedByPersonAlias.Person );
            }
            else
            {
                ppPerson.SetValue( null );
            }

            if ( benevolenceRequest.HomePhoneNumber != null )
            {
                pnbHomePhone.Text = benevolenceRequest.HomePhoneNumber;
            }

            if ( benevolenceRequest.CellPhoneNumber != null )
            {
                pnbCellPhone.Text = benevolenceRequest.CellPhoneNumber;
            }

            if ( benevolenceRequest.WorkPhoneNumber != null )
            {
                pnbWorkPhone.Text = benevolenceRequest.WorkPhoneNumber;
            }

            lapAddress.SetValue( benevolenceRequest.Location );

            LoadDropDowns( benevolenceRequest );

            if ( benevolenceRequest.RequestStatusValueId != null )
            {
                ddlRequestStatus.SetValue( benevolenceRequest.RequestStatusValueId );

                if ( benevolenceRequest.RequestStatusValue.Value == "Approved" )
                {
                    hlStatus.Text = "Approved";
                    hlStatus.LabelType = LabelType.Success;
                }

                if ( benevolenceRequest.RequestStatusValue.Value == "Denied" )
                {
                    hlStatus.Text = "Denied";
                    hlStatus.LabelType = LabelType.Danger;
                }
            }

            if ( benevolenceRequest.ConnectionStatusValueId != null )
            {
                ddlConnectionStatus.SetValue( benevolenceRequest.ConnectionStatusValueId );
            }

            ddlCaseWorker.SetValue( benevolenceRequest.CaseWorkerPersonAliasId );

            BindGridFromViewState();

            // call the OnSelectPerson of the person picker which will update the UI based on the selected person
            ppPerson_SelectPerson( null, null );
        }
コード例 #12
0
        /// <summary>
        /// Handles the Click event of the lbSave 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 lbSave_Click( object sender, EventArgs e )
        {
            if ( Page.IsValid )
            {
                RockContext rockContext = new RockContext();
                BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService( rockContext );
                BenevolenceResultService benevolenceResultService = new BenevolenceResultService( rockContext );

                BenevolenceRequest benevolenceRequest = null;
                int benevolenceRequestId = PageParameter( "BenevolenceRequestId" ).AsInteger();

                if ( !benevolenceRequestId.Equals( 0 ) )
                {
                    benevolenceRequest = benevolenceRequestService.Get( benevolenceRequestId );
                }

                if ( benevolenceRequest == null )
                {
                    benevolenceRequest = new BenevolenceRequest { Id = 0 };
                }

                benevolenceRequest.FirstName = dtbFirstName.Text;
                benevolenceRequest.LastName = dtbLastName.Text;
                benevolenceRequest.Email = ebEmail.Text;
                benevolenceRequest.RequestText = dtbRequestText.Text;
                benevolenceRequest.ResultSummary = dtbSummary.Text;
                benevolenceRequest.GovernmentId = dtbGovernmentId.Text;

                if ( lapAddress.Location != null )
                {
                    benevolenceRequest.LocationId = lapAddress.Location.Id;
                }

                benevolenceRequest.RequestedByPersonAliasId = ppPerson.PersonAliasId;
                benevolenceRequest.CaseWorkerPersonAliasId = ddlCaseWorker.SelectedValue.AsIntegerOrNull();
                benevolenceRequest.RequestStatusValueId = ddlRequestStatus.SelectedValue.AsIntegerOrNull();
                benevolenceRequest.ConnectionStatusValueId = ddlConnectionStatus.SelectedValue.AsIntegerOrNull();

                if ( dpRequestDate.SelectedDate.HasValue )
                {
                    benevolenceRequest.RequestDateTime = dpRequestDate.SelectedDate.Value;
                }

                benevolenceRequest.HomePhoneNumber = pnbHomePhone.Number;
                benevolenceRequest.CellPhoneNumber = pnbCellPhone.Number;
                benevolenceRequest.WorkPhoneNumber = pnbWorkPhone.Number;

                List<BenevolenceResultInfo> resultListUI = BenevolenceResultsState;
                var resultListDB = benevolenceRequest.BenevolenceResults.ToList();

                // remove any Benevolence Results that were removed in the UI
                foreach ( BenevolenceResult resultDB in resultListDB )
                {
                    if ( !resultListUI.Any( r => r.ResultId == resultDB.Id ) )
                    {
                        benevolenceRequest.BenevolenceResults.Remove( resultDB );
                        benevolenceResultService.Delete( resultDB );
                    }
                }

                // add any Benevolence Results that were added in the UI
                foreach ( BenevolenceResultInfo resultUI in resultListUI )
                {
                    var resultDB = resultListDB.FirstOrDefault( r => r.Guid == resultUI.TempGuid );
                    if ( resultDB == null )
                    {
                        resultDB = new BenevolenceResult();
                        resultDB.BenevolenceRequestId = benevolenceRequest.Id;
                        resultDB.Guid = resultUI.TempGuid;
                        benevolenceRequest.BenevolenceResults.Add( resultDB );
                    }

                    resultDB.Amount = resultUI.Amount;
                    resultDB.ResultSummary = resultUI.ResultSummary;
                    resultDB.ResultTypeValueId = resultUI.ResultTypeValueId;
                }

                if ( benevolenceRequest.IsValid )
                {
                    if ( benevolenceRequest.Id.Equals( 0 ) )
                    {
                        benevolenceRequestService.Add( benevolenceRequest );
                    }

                    rockContext.SaveChanges();

                    var personId = this.PageParameter( "PersonId" ).AsIntegerOrNull();
                    var qryParams = new Dictionary<string, string>();
                    if ( personId.HasValue )
                    {
                        qryParams.Add( "PersonId", personId.ToString() );
                    }

                    NavigateToParentPage( qryParams );
                }
            }
        }
コード例 #13
0
ファイル: BenevolenceResultAdd.cs プロジェクト: sjison/Rock
        /// <summary>
        /// Executes the specified workflow.
        /// </summary>
        /// <param name="rockContext">The rock context.</param>
        /// <param name="action">The action.</param>
        /// <param name="entity">The entity.</param>
        /// <param name="errorMessages">The error messages.</param>
        /// <returns></returns>
        public override bool Execute(RockContext rockContext, WorkflowAction action, Object entity, out List <string> errorMessages)
        {
            errorMessages = new List <string>();

            var mergeFields = GetMergeFields(action);

            // get benevolence request id
            var requestGuid = GetAttributeValue(action, "BenevolenceRequest", true).AsGuidOrNull();

            if (!requestGuid.HasValue)
            {
                var errorMessage = "A valid benevolence request ID was not provided.";
                errorMessages.Add(errorMessage);
                action.AddLogEntry(errorMessage, true);
                return(false);
            }

            // get result summary
            var resultSummary = GetAttributeValue(action, "ResultSummary", true).ResolveMergeFields(mergeFields);

            // get next steps
            var nextSteps = GetAttributeValue(action, "NextSteps", true).ResolveMergeFields(mergeFields);

            // get result type
            var resultType = DefinedValueCache.Read(GetAttributeValue(action, "ResultType", true).AsGuid());

            if (resultType == null)
            {
                var errorMessage = "A valid result type was not provided.";
                errorMessages.Add(errorMessage);
                action.AddLogEntry(errorMessage, true);
                return(false);
            }

            // get result details
            var resultDetails = GetAttributeValue(action, "ResultDetails", true).ResolveMergeFields(mergeFields);

            // get amount
            var amount = GetAttributeValue(action, "ResultAmount", true).AsDecimalOrNull();

            if (!amount.HasValue)
            {
                var errorMessage = "A valid result amount was not provided.";
                errorMessages.Add(errorMessage);
                action.AddLogEntry(errorMessage, true);
                return(false);
            }

            // create benevolence request
            BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService(rockContext);

            BenevolenceRequest request = benevolenceRequestService.Get(requestGuid.Value);

            if (request == null)
            {
                var errorMessage = "The benevolence request provided could not be found.";
                errorMessages.Add(errorMessage);
                action.AddLogEntry(errorMessage, true);
                return(false);
            }

            if (nextSteps.IsNotNullOrWhitespace())
            {
                request.ProvidedNextSteps = nextSteps;
            }

            if (resultSummary.IsNotNullOrWhitespace())
            {
                request.ResultSummary = resultSummary;
            }

            BenevolenceResult result = new BenevolenceResult();

            request.BenevolenceResults.Add(result);

            result.Amount            = amount;
            result.ResultTypeValueId = resultType.Id;
            result.ResultSummary     = resultDetails;

            rockContext.SaveChanges();

            return(true);
        }
コード例 #14
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 )
        {
            var rockContext = new RockContext();
            BenevolenceRequestService service = new BenevolenceRequestService( rockContext );
            BenevolenceRequest benevolenceRequest = service.Get( e.RowKeyId );
            if ( benevolenceRequest != null )
            {
                string errorMessage;
                if ( !service.CanDelete( benevolenceRequest, out errorMessage ) )
                {
                    mdGridWarning.Show( errorMessage, ModalAlertType.Information );
                    return;
                }

                service.Delete( benevolenceRequest );
                rockContext.SaveChanges();
            }

            BindGrid();
        }
        /// <summary>
        /// Handles the Click event of the lbSave 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 lbSave_Click( object sender, EventArgs e )
        {
            if ( Page.IsValid )
            {
                RockContext rockContext = new RockContext();
                BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService( rockContext );
                BenevolenceResultService benevolenceResultService = new BenevolenceResultService( rockContext );

                BenevolenceRequest benevolenceRequest = null;
                int benevolenceRequestId = PageParameter( "BenevolenceRequestId" ).AsInteger();

                if ( !benevolenceRequestId.Equals( 0 ) )
                {
                    benevolenceRequest = benevolenceRequestService.Get( benevolenceRequestId );
                }

                if ( benevolenceRequest == null )
                {
                    benevolenceRequest = new BenevolenceRequest { Id = 0 };
                }

                benevolenceRequest.FirstName = dtbFirstName.Text;
                benevolenceRequest.LastName = dtbLastName.Text;
                benevolenceRequest.Email = ebEmail.Text;
                benevolenceRequest.RequestText = dtbRequestText.Text;
                benevolenceRequest.ResultSummary = dtbSummary.Text;
                benevolenceRequest.GovernmentId = dtbGovernmentId.Text;

                if ( lapAddress.Location != null )
                {
                    benevolenceRequest.LocationId = lapAddress.Location.Id;
                }

                benevolenceRequest.RequestedByPersonAliasId = ppPerson.PersonAliasId;
                benevolenceRequest.CaseWorkerPersonAliasId = ddlCaseWorker.SelectedItem.Value.AsIntegerOrNull();
                benevolenceRequest.RequestStatusValueId = ddlRequestStatus.SelectedItem.Value.AsIntegerOrNull();
                benevolenceRequest.ConnectionStatusValueId = ddlConnectionStatus.SelectedItem.Value.AsIntegerOrNull();

                if ( dpRequestDate.SelectedDate.HasValue )
                {
                    benevolenceRequest.RequestDateTime = dpRequestDate.SelectedDate.Value;
                }

                benevolenceRequest.HomePhoneNumber = pnbHomePhone.Number;
                benevolenceRequest.CellPhoneNumber = pnbCellPhone.Number;
                benevolenceRequest.WorkPhoneNumber = pnbWorkPhone.Number;

                List<BenevolenceResultInfo> resultList = BenevolenceResultsState;
                BenevolenceResult benevolenceResult = null;

                foreach ( BenevolenceResult result in benevolenceRequest.BenevolenceResults.ToList() )
                {
                    if ( resultList.FirstOrDefault( r => r.ResultId == result.Id ) == null )
                    {
                        benevolenceRequest.BenevolenceResults.Remove( result );
                        benevolenceResultService.Delete( result );
                    }
                }

                foreach ( BenevolenceResultInfo benevolenceResultInfo in resultList )
                {
                    if ( benevolenceResultInfo.ResultId == null )
                    {
                        benevolenceResult = new BenevolenceResult();
                        benevolenceResult.Amount = benevolenceResultInfo.Amount;
                        benevolenceResult.ResultSummary = benevolenceResultInfo.ResultSummary;
                        benevolenceResult.ResultTypeValueId = benevolenceResultInfo.ResultTypeValueId;
                        benevolenceResult.BenevolenceRequestId = benevolenceRequest.Id;
                        benevolenceRequest.BenevolenceResults.Add( benevolenceResult );
                    }
                }

                if ( benevolenceRequest.IsValid )
                {
                    if ( benevolenceRequest.Id.Equals( 0 ) )
                    {
                        benevolenceRequestService.Add( benevolenceRequest );
                    }

                    rockContext.SaveChanges();
                    NavigateToParentPage();
                }
            }
        }
コード例 #16
0
        /// <summary>
        /// Handles the Click event of the lbSave 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 lbSave_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                RockContext rockContext = new RockContext();
                BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService(rockContext);
                BenevolenceResultService  benevolenceResultService  = new BenevolenceResultService(rockContext);

                BenevolenceRequest benevolenceRequest = null;
                int benevolenceRequestId = PageParameter("BenevolenceRequestId").AsInteger();

                if (!benevolenceRequestId.Equals(0))
                {
                    benevolenceRequest = benevolenceRequestService.Get(benevolenceRequestId);
                }

                if (benevolenceRequest == null)
                {
                    benevolenceRequest = new BenevolenceRequest {
                        Id = 0
                    };
                }

                benevolenceRequest.FirstName         = dtbFirstName.Text;
                benevolenceRequest.LastName          = dtbLastName.Text;
                benevolenceRequest.Email             = ebEmail.Text;
                benevolenceRequest.RequestText       = dtbRequestText.Text;
                benevolenceRequest.ResultSummary     = dtbSummary.Text;
                benevolenceRequest.CampusId          = cpCampus.SelectedCampusId;
                benevolenceRequest.ProvidedNextSteps = dtbProvidedNextSteps.Text;
                benevolenceRequest.GovernmentId      = dtbGovernmentId.Text;

                if (lapAddress.Location != null)
                {
                    benevolenceRequest.LocationId = lapAddress.Location.Id;
                }

                benevolenceRequest.RequestedByPersonAliasId = ppPerson.PersonAliasId;
                benevolenceRequest.CaseWorkerPersonAliasId  = ddlCaseWorker.SelectedValue.AsIntegerOrNull();
                benevolenceRequest.RequestStatusValueId     = ddlRequestStatus.SelectedValue.AsIntegerOrNull();
                benevolenceRequest.ConnectionStatusValueId  = ddlConnectionStatus.SelectedValue.AsIntegerOrNull();

                if (dpRequestDate.SelectedDate.HasValue)
                {
                    benevolenceRequest.RequestDateTime = dpRequestDate.SelectedDate.Value;
                }

                benevolenceRequest.HomePhoneNumber = pnbHomePhone.Number;
                benevolenceRequest.CellPhoneNumber = pnbCellPhone.Number;
                benevolenceRequest.WorkPhoneNumber = pnbWorkPhone.Number;

                List <BenevolenceResultInfo> resultListUI = BenevolenceResultsState;
                var resultListDB = benevolenceRequest.BenevolenceResults.ToList();

                // remove any Benevolence Results that were removed in the UI
                foreach (BenevolenceResult resultDB in resultListDB)
                {
                    if (!resultListUI.Any(r => r.ResultId == resultDB.Id))
                    {
                        benevolenceRequest.BenevolenceResults.Remove(resultDB);
                        benevolenceResultService.Delete(resultDB);
                    }
                }

                // add any Benevolence Results that were added in the UI
                foreach (BenevolenceResultInfo resultUI in resultListUI)
                {
                    var resultDB = resultListDB.FirstOrDefault(r => r.Guid == resultUI.TempGuid);
                    if (resultDB == null)
                    {
                        resultDB = new BenevolenceResult();
                        resultDB.BenevolenceRequestId = benevolenceRequest.Id;
                        resultDB.Guid = resultUI.TempGuid;
                        benevolenceRequest.BenevolenceResults.Add(resultDB);
                    }

                    resultDB.Amount            = resultUI.Amount;
                    resultDB.ResultSummary     = resultUI.ResultSummary;
                    resultDB.ResultTypeValueId = resultUI.ResultTypeValueId;
                }

                if (benevolenceRequest.IsValid)
                {
                    if (benevolenceRequest.Id.Equals(0))
                    {
                        benevolenceRequestService.Add(benevolenceRequest);
                    }

                    // get attributes
                    benevolenceRequest.LoadAttributes();
                    Rock.Attribute.Helper.GetEditValues(phAttributes, benevolenceRequest);

                    rockContext.WrapTransaction(() =>
                    {
                        rockContext.SaveChanges();
                        benevolenceRequest.SaveAttributeValues(rockContext);
                    });

                    // update related documents
                    var documentsService = new BenevolenceRequestDocumentService(rockContext);

                    // delete any images that were removed
                    var orphanedBinaryFileIds = new List <int>();
                    var documentsInDb         = documentsService.Queryable().Where(b => b.BenevolenceRequestId == benevolenceRequest.Id).ToList();

                    foreach (var document in documentsInDb.Where(i => !DocumentsState.Contains(i.BinaryFileId)))
                    {
                        orphanedBinaryFileIds.Add(document.BinaryFileId);
                        documentsService.Delete(document);
                    }

                    // save documents
                    int documentOrder = 0;
                    foreach (var binaryFileId in DocumentsState)
                    {
                        // Add or Update the activity type
                        var document = documentsInDb.FirstOrDefault(i => i.BinaryFileId == binaryFileId);
                        if (document == null)
                        {
                            document = new BenevolenceRequestDocument();
                            document.BenevolenceRequestId = benevolenceRequest.Id;
                            benevolenceRequest.Documents.Add(document);
                        }
                        document.BinaryFileId = binaryFileId;
                        document.Order        = documentOrder;
                        documentOrder++;
                    }
                    rockContext.SaveChanges();

                    // redirect back to parent
                    var personId  = this.PageParameter("PersonId").AsIntegerOrNull();
                    var qryParams = new Dictionary <string, string>();
                    if (personId.HasValue)
                    {
                        qryParams.Add("PersonId", personId.ToString());
                    }

                    NavigateToParentPage(qryParams);
                }
            }
        }
        /// <summary>
        /// Shows the detail.
        /// </summary>
        /// <param name="benevolenceRequestId">The benevolence request identifier</param>
        public void ShowDetail( int benevolenceRequestId )
        {
            BenevolenceRequest benevolenceRequest = null;
            BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService( new RockContext() );
            if ( !benevolenceRequestId.Equals( 0 ) )
            {
                benevolenceRequest = benevolenceRequestService.Get( benevolenceRequestId );
            }

            if ( benevolenceRequest == null )
            {
                benevolenceRequest = new BenevolenceRequest { Id = 0 };
                benevolenceRequest.RequestDateTime = RockDateTime.Now;
            }

            dtbFirstName.Text = benevolenceRequest.FirstName;
            dtbLastName.Text = benevolenceRequest.LastName;
            dtbGovernmentId.Text = benevolenceRequest.GovernmentId;
            ebEmail.Text = benevolenceRequest.Email;
            dtbRequestText.Text = benevolenceRequest.RequestText;
            dtbSummary.Text = benevolenceRequest.ResultSummary;
            dpRequestDate.SelectedDate = benevolenceRequest.RequestDateTime;

            if ( benevolenceRequest.RequestedByPersonAlias != null )
            {
                ppPerson.SetValue( benevolenceRequest.RequestedByPersonAlias.Person );
            }
            else
            {
                ppPerson.SetValue( null );
            }

            if ( benevolenceRequest.HomePhoneNumber != null )
            {
                pnbHomePhone.Text = benevolenceRequest.HomePhoneNumber;
            }
            if ( benevolenceRequest.CellPhoneNumber != null )
            {
                pnbCellPhone.Text = benevolenceRequest.CellPhoneNumber;
            }
            if ( benevolenceRequest.WorkPhoneNumber != null )
            {
                pnbWorkPhone.Text = benevolenceRequest.WorkPhoneNumber;
            }
            lapAddress.SetValue( benevolenceRequest.Location );

            LoadDropDowns( benevolenceRequest );

            if ( benevolenceRequest.RequestStatusValueId != null )
            {
                ddlRequestStatus.SelectedValue = benevolenceRequest.RequestStatusValueId.ToString();

                if ( benevolenceRequest.RequestStatusValue.Value == "Approved" )
                {
                    hlStatus.Text = "Approved";
                    hlStatus.LabelType = LabelType.Success;
                }

                if ( benevolenceRequest.RequestStatusValue.Value == "Denied" )
                {
                    hlStatus.Text = "Denied";
                    hlStatus.LabelType = LabelType.Danger;
                }
            }

            if ( benevolenceRequest.ConnectionStatusValueId != null )
            {
                ddlConnectionStatus.SelectedValue = benevolenceRequest.ConnectionStatusValueId.ToString();
            }

            ddlCaseWorker.SelectedValue = benevolenceRequest.CaseWorkerPersonAliasId.ToString();

            BindGridFromViewState();
        }
コード例 #18
0
        /// <summary>
        /// Handles the Click event of the lbSave 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 lbSave_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                RockContext rockContext = new RockContext();
                BenevolenceRequestService benevolenceRequestService = new BenevolenceRequestService(rockContext);
                BenevolenceResultService  benevolenceResultService  = new BenevolenceResultService(rockContext);

                BenevolenceRequest benevolenceRequest = null;
                int benevolenceRequestId = PageParameter("BenevolenceRequestId").AsInteger();

                if (!benevolenceRequestId.Equals(0))
                {
                    benevolenceRequest = benevolenceRequestService.Get(benevolenceRequestId);
                }

                if (benevolenceRequest == null)
                {
                    benevolenceRequest = new BenevolenceRequest {
                        Id = 0
                    };
                }

                benevolenceRequest.FirstName     = dtbFirstName.Text;
                benevolenceRequest.LastName      = dtbLastName.Text;
                benevolenceRequest.Email         = ebEmail.Text;
                benevolenceRequest.RequestText   = dtbRequestText.Text;
                benevolenceRequest.ResultSummary = dtbSummary.Text;
                benevolenceRequest.GovernmentId  = dtbGovernmentId.Text;

                if (lapAddress.Location != null)
                {
                    benevolenceRequest.LocationId = lapAddress.Location.Id;
                }

                benevolenceRequest.RequestedByPersonAliasId = ppPerson.PersonAliasId;
                benevolenceRequest.CaseWorkerPersonAliasId  = ddlCaseWorker.SelectedValue.AsIntegerOrNull();
                benevolenceRequest.RequestStatusValueId     = ddlRequestStatus.SelectedValue.AsIntegerOrNull();
                benevolenceRequest.ConnectionStatusValueId  = ddlConnectionStatus.SelectedValue.AsIntegerOrNull();

                if (dpRequestDate.SelectedDate.HasValue)
                {
                    benevolenceRequest.RequestDateTime = dpRequestDate.SelectedDate.Value;
                }

                benevolenceRequest.HomePhoneNumber = pnbHomePhone.Number;
                benevolenceRequest.CellPhoneNumber = pnbCellPhone.Number;
                benevolenceRequest.WorkPhoneNumber = pnbWorkPhone.Number;

                List <BenevolenceResultInfo> resultListUI = BenevolenceResultsState;
                var resultListDB = benevolenceRequest.BenevolenceResults.ToList();

                // remove any Benevolence Results that were removed in the UI
                foreach (BenevolenceResult resultDB in resultListDB)
                {
                    if (!resultListUI.Any(r => r.ResultId == resultDB.Id))
                    {
                        benevolenceRequest.BenevolenceResults.Remove(resultDB);
                        benevolenceResultService.Delete(resultDB);
                    }
                }

                // add any Benevolence Results that were added in the UI
                foreach (BenevolenceResultInfo resultUI in resultListUI)
                {
                    var resultDB = resultListDB.FirstOrDefault(r => r.Guid == resultUI.TempGuid);
                    if (resultDB == null)
                    {
                        resultDB = new BenevolenceResult();
                        resultDB.BenevolenceRequestId = benevolenceRequest.Id;
                        resultDB.Guid = resultUI.TempGuid;
                        benevolenceRequest.BenevolenceResults.Add(resultDB);
                    }

                    resultDB.Amount            = resultUI.Amount;
                    resultDB.ResultSummary     = resultUI.ResultSummary;
                    resultDB.ResultTypeValueId = resultUI.ResultTypeValueId;
                }

                if (benevolenceRequest.IsValid)
                {
                    if (benevolenceRequest.Id.Equals(0))
                    {
                        benevolenceRequestService.Add(benevolenceRequest);
                    }

                    rockContext.SaveChanges();

                    var personId  = this.PageParameter("PersonId").AsIntegerOrNull();
                    var qryParams = new Dictionary <string, string>();
                    if (personId.HasValue)
                    {
                        qryParams.Add("PersonId", personId.ToString());
                    }

                    NavigateToParentPage(qryParams);
                }
            }
        }