Exemplo n.º 1
0
        private List <ISelectListResult> BuildViewBagRelations(TModel src)
        {
            var res  = new List <ISelectListResult>();
            var navs = GetOneToManyNavigations().ToList();

            navs.ForEach(n => {
                using (var serviceScope = _serviceProvider.CreateScope())
                {
                    try
                    {
                        var repotype = n.ForeignKey.PrincipalEntityType.ClrType;
                        if (repotype.IsSubclassOf(typeof(HotelDataOwnId)))
                        {
                            var sl        = new SelectListResult();
                            var relrepo   = GetModelRepository(serviceScope, n.ForeignKey.PrincipalEntityType.ClrType);
                            var relfield  = n.ForeignKey.Properties.First().Name;
                            sl.SelectList = relrepo.GetSelectList(relfield, GetFieldValue(src, relfield));
                            res.Add(sl);
                        }
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(ex, "BuildViewBagRelations");
                    }
                }
            });
            return(res);
        }
        private CreateTrackingEntry GetNewModel(TrackingEntryType entryType, string dfn)
        {
            // *** Gets appropriate model based on entry type and dfn ***

            CreateTrackingEntry returnModel = new CreateTrackingEntry();

            // *** Set up button text, title, other ui elements ***
            switch (entryType)
            {
            case TrackingEntryType.Start:
                returnModel.ButtonText  = "Start Tracking";
                returnModel.PageTitle   = "Start Tracking a Patient";
                returnModel.PageMessage = "The following patient will appear as a tracked patient in the dashboard";
                SelectListResult selectListResult = this.DashboardRepository.SelectLists.GetReasonList();
                if (selectListResult.Success)
                {
                    returnModel.Reasons = selectListResult.SelectList;
                }
                returnModel.ReasonText = "Reason for Tracking";
                break;

            case TrackingEntryType.Stop:
                returnModel.ButtonText         = "Stop Tracking";
                returnModel.PageTitle          = "Stop Tracking a Patient";
                returnModel.PageMessage        = "Patient will no longer appear as a tracked patient in the dashboard";
                returnModel.OutcomeTableHeader = "Pregnancy Outcome";
                returnModel.OutcomeHeader      = "Outcome:";
                returnModel.DateHeader         = "Outcome/Delivery Date:";
                returnModel.ReasonText         = "Stop Tracking Reason";
                List <string> stopTrackingReasonList = new List <string>()
                {
                    "First trimester pregnancy failure or loss",
                    "Second trimester pregnancy failure or loss",
                    "Term or pre-term delivery, completed 8 weeks of postpartum care",
                    "Transfer of care",
                    "Moved out of area",
                    "Other"
                };
                returnModel.Reasons = stopTrackingReasonList;
                break;

            case TrackingEntryType.Accept:
                returnModel.ButtonText  = "Accept Tracking";
                returnModel.PageTitle   = "Accept Flagged Patient";
                returnModel.PageMessage = "The following patient will appear as a tracked patient in the dashboard";
                break;

            case TrackingEntryType.Reject:
                returnModel.ButtonText  = "Reject Tracking";
                returnModel.PageTitle   = "Reject Flagged Patient";
                returnModel.PageMessage = "The following patient will not appear as a tracked or flagged patient in the dashboard";
                break;
            }

            // *** Set return url ***
            if (TempData.ContainsKey(ReturnUrl))
            {
                returnModel.ReturnUrl = TempData[ReturnUrl].ToString();
                TempData[ReturnUrl]   = TempData[ReturnUrl];
            }

            // *** Get patient demographics ***
            this.CurrentPatientDfn = dfn;
            BasePatient currentPatient = this.CurrentPatient;

            if (!currentPatient.NotFound)
            {
                // *** Populate model with data ***
                returnModel.TrackingEntry = new TrackingEntry()
                {
                    PatientDfn  = dfn,
                    EntryType   = entryType,
                    PatientName = currentPatient.Name
                };

                returnModel.Patient = currentPatient;
            }

            return(returnModel);
        }