コード例 #1
0
        /// <summary>
        /// Raises the <see cref="E:System.Web.UI.Control.Load" /> event.
        /// </summary>
        /// <param name="e">The <see cref="T:System.EventArgs" /> object that contains the event data.</param>
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            if (!Page.IsPostBack)
            {
                string itemId = PageParameter("definedTypeId");
                if (!string.IsNullOrWhiteSpace(itemId))
                {
                    ShowDetail("definedTypeId", int.Parse(itemId));
                }
                else
                {
                    pnlDetails.Visible = false;
                }
            }

            if (pnlDefinedValueEditor.Visible)
            {
                if (!string.IsNullOrWhiteSpace(hfDefinedTypeId.Value))
                {
                    var definedValue = new DefinedValue {
                        DefinedTypeId = hfDefinedTypeId.ValueAsInt()
                    };
                    definedValue.LoadAttributes();
                    phDefinedValueAttributes.Controls.Clear();
                    Rock.Attribute.Helper.AddEditControls(definedValue, phDefinedValueAttributes, false);
                }
            }
        }
コード例 #2
0
ファイル: Checkr.cs プロジェクト: kra3889/rockrms
        /// <summary>
        /// Get the Checkr packages and update the list on the server.
        /// </summary>
        /// <param name="errorMessages">The error messages.</param>
        /// <returns>True/False value of whether the request was successfully sent or not.</returns>
        public static bool UpdatePackages(List <string> errorMessages)
        {
            GetPackagesResponse getPackagesResponse;

            if (!CheckrApiUtility.GetPackages(out getPackagesResponse, errorMessages))
            {
                return(false);
            }

            List <string> packages;

            using (var rockContext = new RockContext())
            {
                var definedType = DefinedTypeCache.Get(Rock.SystemGuid.DefinedType.BACKGROUND_CHECK_TYPES.AsGuid());

                DefinedValueService definedValueService = new DefinedValueService(rockContext);
                packages = definedValueService
                           .GetByDefinedTypeGuid(Rock.SystemGuid.DefinedType.BACKGROUND_CHECK_TYPES.AsGuid())
                           .Where(v => v.ForeignId == 2)
                           .ToList()
                           .Select(v => { v.LoadAttributes(rockContext); return(v.GetAttributeValue("PMMPackageName").ToString()); }) // v => v.Value.Substring( CheckrConstants.TYPENAME_PREFIX.Length ) )
                           .ToList();

                foreach (var packageRestResponse in getPackagesResponse.Data)
                {
                    string packageName = packageRestResponse.Slug;
                    if (!packages.Contains(packageName))
                    {
                        DefinedValue definedValue = null;

                        definedValue = new DefinedValue();
                        definedValue.DefinedTypeId = definedType.Id;
                        definedValue.ForeignId     = 2;
                        definedValueService.Add(definedValue);

                        definedValue.Value = CheckrConstants.CHECKR_TYPENAME_PREFIX + packageName.Replace('_', ' ').FixCase();

                        definedValue.Description = packageRestResponse.Name == "Educatio Report" ? "Education Report" : packageRestResponse.Name;
                        rockContext.SaveChanges();

                        definedValue.LoadAttributes(rockContext);

                        definedValue.SetAttributeValue("PMMPackageName", packageName);
                        definedValue.SetAttributeValue("DefaultCounty", string.Empty);
                        definedValue.SetAttributeValue("SendHomeCounty", "False");
                        definedValue.SetAttributeValue("DefaultState", string.Empty);
                        definedValue.SetAttributeValue("SendHomeState", "False");
                        definedValue.SetAttributeValue("MVRJurisdiction", string.Empty);
                        definedValue.SetAttributeValue("SendHomeStateMVR", "False");
                        definedValue.SaveAttributeValues(rockContext);
                    }
                }
            }

            DefinedValueCache.Clear();
            return(true);
        }
コード例 #3
0
        private static DefinedValueCache CreateVerb(string url, string name)
        {
            RockContext         rockContext         = new RockContext();
            DefinedValueService definedValueService = new DefinedValueService(rockContext);
            var verbTypeId = DefinedTypeCache.Get(Constants.DEFINED_TYPE_VERBS).Id;

            var verb = new DefinedValue
            {
                DefinedTypeId = verbTypeId,
                Value         = url
            };

            definedValueService.Add(verb);
            rockContext.SaveChanges();

            verb.LoadAttributes();
            verb.SetAttributeValue(Constants.DEFINED_VALUE_VERBS_ATTRIBUTE_KEY_NAME, name);
            verb.SaveAttributeValues();

            return(DefinedValueCache.Get(verb.Id));
        }
コード例 #4
0
        private static DefinedValueCache CreateExtension(string url, string name)
        {
            RockContext         rockContext         = new RockContext();
            DefinedValueService definedValueService = new DefinedValueService(rockContext);
            var verbTypeId = DefinedTypeCache.Get(Constants.DEFINED_TYPE_EXTENSIONS).Id;

            var extension = new DefinedValue
            {
                DefinedTypeId = verbTypeId,
                Value         = url
            };

            definedValueService.Add(extension);
            rockContext.SaveChanges();

            extension.LoadAttributes();
            extension.SetAttributeValue(Constants.DEFINED_VALUE_EXTENSIONS_ATTRIBUTE_KEY_NAME, name);
            extension.SaveAttributeValues();

            return(DefinedValueCache.Get(extension.Id));
        }
コード例 #5
0
        private IQueryable <HospitalRow> GetQuery(RockContext rockContext)
        {
            var contextEntity = this.ContextEntity();

            var workflowService         = new WorkflowService(rockContext);
            var workflowActivityService = new WorkflowActivityService(rockContext);
            var attributeService        = new AttributeService(rockContext);
            var attributeValueService   = new AttributeValueService(rockContext);
            var personAliasService      = new PersonAliasService(rockContext);
            var definedValueService     = new DefinedValueService(rockContext);
            var entityTypeService       = new EntityTypeService(rockContext);


            int    entityTypeId = entityTypeService.Queryable().Where(et => et.Name == typeof(Workflow).FullName).FirstOrDefault().Id;
            string status       = (contextEntity != null ? "Completed" : "Active");

            Guid hospitalWorkflow = GetAttributeValue("HospitalAdmissionWorkflow").AsGuid();

            var workflowType           = new WorkflowTypeService(rockContext).Get(hospitalWorkflow);
            var workflowTypeIdAsString = workflowType.Id.ToString();

            var attributeIds = attributeService.Queryable()
                               .Where(a => a.EntityTypeQualifierColumn == "WorkflowTypeId" && a.EntityTypeQualifierValue == workflowTypeIdAsString)
                               .Select(a => a.Id).ToList();

            // Look up the activity type for "Visitation"
            var visitationActivityIdAsString = workflowType.ActivityTypes.Where(at => at.Name == "Visitation Info").Select(at => at.Id.ToString()).FirstOrDefault();

            var activityAttributeIds = attributeService.Queryable()
                                       .Where(a => a.EntityTypeQualifierColumn == "ActivityTypeId" && a.EntityTypeQualifierValue == visitationActivityIdAsString)
                                       .Select(a => a.Id).ToList();

            var wfTmpqry = workflowService.Queryable().AsNoTracking()
                           .Where(w => (w.WorkflowType.Guid == hospitalWorkflow) && (w.Status == "Active" || w.Status == status));

            if (contextEntity != null)
            {
                var personGuid       = (( Person )contextEntity).Aliases.Select(a => a.Guid.ToString()).ToList();
                var validWorkflowIds = new AttributeValueService(rockContext).Queryable()
                                       .Where(av => av.Attribute.Key == "PersonToVisit" && personGuid.Contains(av.Value)).Select(av => av.EntityId);
                wfTmpqry = wfTmpqry.Where(w => validWorkflowIds.Contains(w.Id));
                gReport.Columns[10].Visible = true;
            }

            var visits = workflowActivityService.Queryable()
                         .Join(
                attributeValueService.Queryable(),
                wa => wa.Id,
                av => av.EntityId.Value,
                (wa, av) => new { WorkflowActivity = wa, AttributeValue = av })
                         .Where(a => activityAttributeIds.Contains(a.AttributeValue.AttributeId))
                         .GroupBy(wa => wa.WorkflowActivity)
                         .Select(obj => new { WorkflowActivity = obj.Key, AttributeValues = obj.Select(a => a.AttributeValue) })
                         .ToList();

            var workflows = wfTmpqry.Join(
                attributeValueService.Queryable(),
                obj => obj.Id,
                av => av.EntityId.Value,
                (obj, av) => new { Workflow = obj, AttributeValue = av })
                            .Where(a => attributeIds.Contains(a.AttributeValue.AttributeId))
                            .GroupBy(obj => obj.Workflow)
                            .Select(obj => new { Workflow = obj.Key, AttributeValues = obj.Select(a => a.AttributeValue) })
                            .ToList();

            var qry = workflows.AsQueryable().GroupJoin(visits.AsQueryable(), wf => wf.Workflow.Id, wa => wa.WorkflowActivity.WorkflowId, (wf, wa) => new { Workflow = wf, WorkflowActivities = wa })
                      .Select(obj => new { Workflow = obj.Workflow.Workflow, AttributeValues = obj.Workflow.AttributeValues, VisitationActivities = obj.WorkflowActivities }).ToList();


            if (contextEntity == null)
            {
                // Make sure they aren't deceased
                qry = qry.AsQueryable().Where(w => !
                                              (personAliasService.Get(w.AttributeValues.Where(av => av.AttributeKey == "PersonToVisit").Select(av => av.Value).FirstOrDefault().AsGuid()) != null ?
                                               personAliasService.Get(w.AttributeValues.Where(av => av.AttributeKey == "PersonToVisit").Select(av => av.Value).FirstOrDefault().AsGuid()).Person.IsDeceased :
                                               false)).ToList();
            }

            var newQry = qry.Select(w => new HospitalRow
            {
                Id              = w.Workflow.Id,
                Workflow        = w.Workflow,
                Name            = w.Workflow.Name,
                Hospital        = w.AttributeValues.Where(av => av.AttributeKey == "Hospital").Select(av => av.ValueFormatted).FirstOrDefault(),
                HospitalAddress = new Func <string>(() =>
                {
                    DefinedValue dv = definedValueService.Get(w.AttributeValues.Where(av => av.AttributeKey == "Hospital").Select(av => av.Value).FirstOrDefault().AsGuid());
                    dv.LoadAttributes();
                    return(dv.AttributeValues["Qualifier1"].ValueFormatted + " " +
                           dv.AttributeValues["Qualifier2"].ValueFormatted + " " +
                           dv.AttributeValues["Qualifier3"].ValueFormatted + ", " +
                           dv.AttributeValues["Qualifier4"].ValueFormatted);
                })(),
                PersonToVisit = new Func <Person>(() =>
                {
                    PersonAlias pa = personAliasService.Get(w.AttributeValues.Where(av => av.AttributeKey == "PersonToVisit").Select(av => av.Value).FirstOrDefault().AsGuid());
                    if (pa != null)
                    {
                        return(pa.Person);
                    }
                    return(new Person());
                })(),
                Age = new Func <int?>(() =>
                {
                    PersonAlias pa = personAliasService.Get(w.AttributeValues.Where(av => av.AttributeKey == "PersonToVisit").Select(av => av.Value).FirstOrDefault().AsGuid());
                    if (pa != null)
                    {
                        return(pa.Person.Age);
                    }
                    return(null);
                })(),
                Room        = w.AttributeValues.Where(av => av.AttributeKey == "Room").Select(av => av.ValueFormatted).FirstOrDefault(),
                AdmitDate   = w.AttributeValues.Where(av => av.AttributeKey == "AdmitDate").Select(av => av.ValueAsDateTime).FirstOrDefault(),
                Description = w.AttributeValues.Where(av => av.AttributeKey == "VisitationRequestDescription").Select(av => av.ValueFormatted).FirstOrDefault(),
                Visits      = w.VisitationActivities.Where(a => a.AttributeValues != null && a.AttributeValues.Where(av => av.AttributeKey == "VisitDate" && !string.IsNullOrWhiteSpace(av.Value)).Any()).Count(),
                LastVisitor = new Func <string>(() => {
                    var visitor = w.VisitationActivities.Where(a => a.AttributeValues != null && a.AttributeValues.Where(av => av.AttributeKey == "VisitDate" && !string.IsNullOrWhiteSpace(av.Value)).Any()).Select(va => va.AttributeValues.Where(av => av.AttributeKey == "Visitor").LastOrDefault()).LastOrDefault();
                    if (visitor != null)
                    {
                        return(visitor.ValueFormatted);
                    }
                    return("N/A");
                })(),
                LastVisitDate  = w.VisitationActivities.Where(a => a.AttributeValues != null && a.AttributeValues.Where(av => av.AttributeKey == "VisitDate" && !string.IsNullOrWhiteSpace(av.Value)).Any()).Select(va => va.AttributeValues.Where(av => av.AttributeKey == "VisitDate").LastOrDefault()).Select(av => av == null ? "N/A" : av.ValueFormatted).DefaultIfEmpty("N/A").LastOrDefault(),
                LastVisitNotes = w.VisitationActivities.Where(a => a.AttributeValues != null && a.AttributeValues.Where(av => av.AttributeKey == "VisitDate" && !string.IsNullOrWhiteSpace(av.Value)).Any()).Select(va => va.AttributeValues.Where(av => av.AttributeKey == "VisitNote").LastOrDefault()).Select(av => av == null ? "N/A" : av.ValueFormatted).DefaultIfEmpty("N/A").LastOrDefault(),
                DischargeDate  = w.AttributeValues.Where(av => av.AttributeKey == "DischargeDate").Select(av => av.ValueFormatted).FirstOrDefault(),
                Status         = w.Workflow.Status,
                Communion      = w.AttributeValues.Where(av => av.AttributeKey == "Communion").Select(av => av.ValueFormatted).FirstOrDefault(),
                Actions        = ""
            }).ToList().AsQueryable().OrderBy(p => p.Hospital).ThenBy(p => p.PersonToVisit.LastName);

            return(newQry);
        }