/// <summary> /// Binds the signature documents grid. /// </summary> protected void BindGrid() { var qry = new SignatureDocumentService(new RockContext()) .Queryable().AsNoTracking(); if (TargetPerson != null) { qry = qry.Where(d => (d.AppliesToPersonAlias != null && d.AppliesToPersonAlias.PersonId == TargetPerson.Id) || (d.AssignedToPersonAlias != null && d.AssignedToPersonAlias.PersonId == TargetPerson.Id) || (d.SignedByPersonAlias != null && d.SignedByPersonAlias.PersonId == TargetPerson.Id)); } else { int?documentTypeId = PageParameter("SignatureDocumentTemplateId").AsIntegerOrNull(); if (documentTypeId.HasValue) { qry = qry.Where(d => d.SignatureDocumentTemplateId == documentTypeId.Value); var typeColumn = gSignatureDocuments.ColumnsOfType <RockBoundField>().Where(f => f.HeaderText == "Document Type").First(); typeColumn.Visible = false; } } SortProperty sortProperty = gSignatureDocuments.SortProperty; if (sortProperty != null) { qry = qry.Sort(sortProperty); } else { qry = qry.OrderByDescending(d => d.LastInviteDate); } gSignatureDocuments.DataSource = qry.Select(d => new { d.Id, d.Name, d.DocumentKey, d.AppliesToPersonAlias, d.AssignedToPersonAlias, d.SignedByPersonAlias, d.Status, d.LastInviteDate, d.SignatureDocumentTemplate, FileText = d.BinaryFileId.HasValue ? "<i class='fa fa-file-text-o fa-lg'></i>" : "", FileId = d.BinaryFileId ?? 0 }).ToList(); gSignatureDocuments.DataBind(); }
private void ShowRequiredDocumentStatus(RockContext rockContext, GroupMember groupMember, Group group) { if (groupMember.Person != null && group.RequiredSignatureDocumentTemplate != null) { var documents = new SignatureDocumentService(rockContext) .Queryable().AsNoTracking() .Where(d => d.SignatureDocumentTemplateId == group.RequiredSignatureDocumentTemplate.Id && d.AppliesToPersonAlias.PersonId == groupMember.Person.Id) .ToList(); if (!documents.Any(d => d.Status == SignatureDocumentStatus.Signed)) { var lastSent = documents.Any(d => d.Status == SignatureDocumentStatus.Sent) ? documents.Where(d => d.Status == SignatureDocumentStatus.Sent).Max(d => d.LastInviteDate) : (DateTime?)null; pnlRequiredSignatureDocument.Visible = true; if (lastSent.HasValue) { lbResendDocumentRequest.Text = "Resend Signature Request"; lRequiredSignatureDocumentMessage.Text = string.Format("A signed {0} document has not yet been received for {1}. The last request was sent {2}.", group.RequiredSignatureDocumentTemplate.Name, groupMember.Person.NickName, lastSent.Value.ToElapsedString()); } else { lbResendDocumentRequest.Text = "Send Signature Request"; lRequiredSignatureDocumentMessage.Text = string.Format("The required {0} document has not yet been sent to {1} for signing.", group.RequiredSignatureDocumentTemplate.Name, groupMember.Person.NickName); } } else { pnlRequiredSignatureDocument.Visible = false; } } else { pnlRequiredSignatureDocument.Visible = false; } }