/// <summary>
        /// Used to display responses to radiobuttons or dropdowns.
        ///
        /// Retrieve a numerical response for the given def_FormResult and deF_ItemVariable from the ResponseVariables table,
        /// Then lookup the display text associated with the numerical response, for the current UI language.
        /// </summary>
        /// <param name="formResultId"></param>
        /// <param name="itm"></param>
        /// <param name="iv"></param>
        /// <returns></returns>
        private string GetResponseThroughLookupTables(int formResultId, def_Items itm, def_ItemVariables iv)
        {
            string           rsp = GetResponse(formResultId, itm, iv);
            def_LookupMaster lm  = formsRepo.GetLookupMastersByLookupCode(iv.identifier);

            if (lm == null)
            {
                return(rsp);
            }

            def_LookupDetail ld = formsRepo.GetLookupDetailByEnterpriseMasterAndDataValue(SessionHelper.LoginStatus.EnterpriseID, lm.lookupMasterId, rsp);

            if (ld != null)
            {
                CultureInfo    ci     = Thread.CurrentThread.CurrentUICulture;
                string         region = (ci == null) ? "en" : ci.TwoLetterISOLanguageName.ToLower();
                int            langId = formsRepo.GetLanguageByTwoLetterISOName(region).langId;
                def_LookupText lt     = formsRepo.GetLookupTextsByLookupDetailLanguage(ld.lookupDetailId, langId).FirstOrDefault();
                if (lt != null)
                {
                    return(lt.displayText);
                }
            }
            return(rsp);
        }
예제 #2
0
        public def_LookupDetail SetLookupDetail(string dataValue, int mstrId, int?entId, int?grpId, int dsplyOrdr, def_LookupDetail lkpDtl = null)
        {
            if (lkpDtl == null)
            {
                lkpDtl = new def_LookupDetail();

                lkpDtl.lookupMasterId = mstrId;
                lkpDtl.dataValue      = dataValue;
                lkpDtl.EnterpriseID   = entId;
                lkpDtl.GroupID        = grpId;
                lkpDtl.displayOrder   = dsplyOrdr;
                lkpDtl.StatusFlag     = "A";

                db.def_LookupDetail.Add(lkpDtl);
            }
            else
            {
                lkpDtl.lookupMasterId = mstrId;
                lkpDtl.dataValue      = dataValue;
                lkpDtl.EnterpriseID   = entId;
                lkpDtl.GroupID        = grpId;
                lkpDtl.displayOrder   = dsplyOrdr;
                lkpDtl.StatusFlag     = "A";

                db.Entry(lkpDtl).State = EntityState.Modified;
            }

            db.SaveChanges();

            return(lkpDtl);
        }
        public ActionResult saveDetail(int lookupDetailId, int lookupMasterId, string dataValue, int enterprise, int group, int displayOrder)
        {
            def_LookupDetail detail = formsRepo.GetLookupDetailById(lookupDetailId);

            formsRepo.SetLookupDetail(dataValue, lookupMasterId, enterprise, group, displayOrder, detail);

            //lookupModel.LookupDetails = getDetails(lookupMasterId, enterprise, group);
            lookupModel.masterId = lookupMasterId;

            return(PartialView("_Details", lookupModel));
        }
        /// <summary>
        /// Saves changes made on the SaveDetail page.
        /// </summary>
        /// <param name="adapAdminModel">Model for the SaveDetail cshtml page.</param>
        /// <returns>Redirects the user to the Clinic Admin page.</returns>
        public ActionResult SaveDetail(AdapAdmin adapAdminModel)
        {
            def_LookupDetail detail = formsRepo.GetLookupDetailById(adapAdminModel.lookupDetailId);

            if (detail == null)
            {
                detail = new def_LookupDetail();
                detail.lookupMasterId = adapAdminModel.lookupMasterId;
                detail.EnterpriseID = adapAdminModel.enterpriseId;
                detail.GroupID = adapAdminModel.groupId;
                detail.dataValue = adapAdminModel.dataValue;
                detail.displayOrder = adapAdminModel.displayOrder;
                detail.StatusFlag = adapAdminModel.statusFlag ? "A" : "I";

                formsRepo.AddLookupDetail(detail);

            }
            else
            {
                detail.dataValue = adapAdminModel.dataValue;
                detail.displayOrder = adapAdminModel.displayOrder;
                detail.GroupID = adapAdminModel.groupId;
                detail.StatusFlag = adapAdminModel.statusFlag ? "A" : "I";

                formsRepo.SaveLookupDetail(detail);
            }

            def_LookupText text = formsRepo.GetLookupTextsByLookupDetail(detail.lookupDetailId).FirstOrDefault();
            if (text == null)
            {
                text = new def_LookupText();
                text.displayText = adapAdminModel.displayText;
                text.langId = 1; // English
                text.lookupDetailId = detail.lookupDetailId;

                formsRepo.AddLookupText(text);
            }
            else
            {
                text.displayText = adapAdminModel.displayText;

                formsRepo.SaveLookupText(text);
            }

            return RedirectToAction("Clinic", "ADAP");
        }
        public ActionResult deleteDetail(int lookupDetailId, int lookupMasterId, int enterprise = 0, int group = 0)
        {
            List <def_LookupText> texts = formsRepo.GetLookupTextsByLookupDetail(lookupDetailId);

            foreach (def_LookupText text in texts)
            {
                formsRepo.DeleteLookupText(text);
            }

            def_LookupDetail detail = formsRepo.GetLookupDetailById(lookupDetailId);

            formsRepo.DeleteLookupDetail(detail);

            //lookupModel.LookupDetails = getDetails(lookupMasterId, enterprise, group);
            lookupModel.masterId = lookupMasterId;

            return(PartialView("_Details", lookupModel));
        }
예제 #6
0
        public def_LookupText GetLookupTextByDisplayTextEnterpriseIdMasterLang(string displayText, int enterpriseId, int lookupMasterId, int langId)
        {
            def_LookupDetail lookupDetail = null;

            List <def_LookupDetail> lookupDetails = db.def_LookupDetail.Where(ld => (ld.EnterpriseID == enterpriseId) &&
                                                                              (ld.lookupMasterId == lookupMasterId)).ToList();

            def_LookupText lookupText = null;

            List <def_LookupText> lookupTexts = db.def_LookupText.Where(lt => lt.displayText == displayText && lt.langId == langId).ToList();

            List <int> lookupDetailIds = new List <int>();

            lookupDetailIds = lookupDetails.Select(ld => ld.lookupDetailId).ToList();

            lookupText = lookupTexts.Where(lt => lookupDetailIds.Contains(lt.lookupDetailId)).FirstOrDefault();

            return(lookupText);
        }
        /// <summary>
        /// This method is not in use and may be deprecated.
        /// </summary>
        /// <param name="clinicDataValue"></param>
        /// <param name="formResultId"></param>
        /// <param name="lookupCode"></param>
        public void UpdateTeam(string clinicDataValue, int formResultId, string lookupCode)
        {
            def_FormResults formResult = formsRepo.GetFormResultById(formResultId);

            int? enterpriseId = formResult.EnterpriseID;

            def_LookupMaster lookupMaster = formsRepo.GetLookupMastersByLookupCode(lookupCode);


            if (enterpriseId != null)
            {
                def_LookupDetail lookupDetail = formsRepo.GetLookupDetailByEnterpriseMasterAndDataValue(enterpriseId.Value, lookupMaster.lookupMasterId, clinicDataValue);

                if (lookupDetail != null && lookupDetail.GroupID != null)
                {
                    formResult.GroupID = lookupDetail.GroupID;

                    formsRepo.SaveFormResults(formResult);
                }
            }

        }
        public ActionResult EditDetail(int lookupDetailId)
        {
            AdapAdmin model = new AdapAdmin();
            model.ActiveUserName = SessionHelper.LoginStatus.FirstName + " " + SessionHelper.LoginStatus.LastName;

            def_LookupDetail detail = formsRepo.GetLookupDetailById(lookupDetailId);


            if (detail != null)
            {
                IUasSql uasSql = new UasSql();

                if (detail.EnterpriseID != null)
                {

                    Dictionary<int, string> groups = uasSql.getGroups(detail.EnterpriseID.Value);
                    groups.Add(0, "Enterprise Wide");
                    model.groups = (new SelectList(groups.OrderBy(x => x.Key), "key", "value")).ToList();
                }
                model.lookupDetailId = lookupDetailId;
                model.lookupMasterId = detail.lookupMasterId;
                model.enterpriseId = detail.EnterpriseID;
                model.groupId = detail.GroupID;
                model.dataValue = detail.dataValue;
                model.displayOrder = detail.displayOrder;
                model.statusFlag = (detail.StatusFlag == "A") ? true : false;

                def_LookupText text = formsRepo.GetLookupTextsByLookupDetail(lookupDetailId).FirstOrDefault();

                if (text != null)
                {
                    model.displayText = text.displayText;
                }
            }

            return View("~/Views/COADAP/ListItems/SaveDetail.cshtml", model);
        }
 /*
  * Returns a list of lookup Texts given a lookup detail and language Id.
  */
 public List <def_LookupText> GetLookupText(def_LookupDetail lkpDtl, int langId)
 {
     return(formsRepo.GetLookupTextsByLookupDetailLanguage(lkpDtl.lookupDetailId, langId));
 }
        /*
         * Returns a list of lookup Texts given a lookup detail.
         */

        public List <def_LookupText> GetLookupText(def_LookupDetail lkpDtl)
        {
            return(formsRepo.GetLookupTextsByLookupDetail(lkpDtl.lookupDetailId));
        }
        /// <summary>
        /// Update lookup detail and lookup text records in the database (add them, update existing not currently supported --LK 11/4/2015)
        /// </summary>
        /// <param name="dataValues"></param>
        /// <param name="formsRepo"></param>
        private void UpdateLookups(int enterpriseId, string[] dataValues, IFormsRepository formsRepo)
        {
            int lookupDetailId;

            bool newDetail = false;

            def_LookupMaster lookupMaster = formsRepo.GetLookupMastersByLookupCode("ADAP_CLINIC");

            if (lookupMaster == null)
            {
                throw new Exception("Cannot find lookup master: code ADAP_CLINIC");
            }

            def_LookupDetail lookupDetail = null;

            // Display Choice (required)
            if (String.IsNullOrEmpty(dataValues[1]))
            {
                throw new Exception("Display Text is required field.");
            }

            // Display Order (required)
            if (String.IsNullOrEmpty(dataValues[0]))
            {
                throw new Exception("Display Order is required field. Missing for: " + dataValues[1]);
            }



            short langId = 0;

            // Check that language ID is valid (or empty)
            if (!Int16.TryParse(dataValues[2], out langId) || (langId != 1 && langId != 2))
            {
                throw new Exception("Invalid language ID for: " + dataValues[1]);
            }

            // Try to find lookup detail by ID
            if (Int32.TryParse(dataValues[6], out lookupDetailId))
            {
                lookupDetail = formsRepo.GetLookupDetailById(lookupDetailId);
            }

            if (lookupDetail == null && !String.IsNullOrEmpty(dataValues[5])) // find by data value
            {
                lookupDetail = formsRepo.GetLookupDetailByEnterpriseMasterAndDataValue(enterpriseId, lookupMaster.lookupMasterId, dataValues[5]);
            }

            if (lookupDetail == null && !String.IsNullOrEmpty(dataValues[1])) // find by display text and language
            {
                def_LookupText tempLookupText = formsRepo.GetLookupTextByDisplayTextEnterpriseIdMasterLang(dataValues[1], enterpriseId, lookupMaster.lookupMasterId, langId);

                if (tempLookupText != null)
                {
                    lookupDetail = formsRepo.GetLookupDetailById(tempLookupText.lookupDetailId);
                }
            }

            if (lookupDetail == null)
            {
                lookupDetail = new def_LookupDetail();
                newDetail    = true;
            }

            lookupDetail.lookupMasterId = lookupMaster.lookupMasterId;


            // Set detail's display order
            int dispOrder = 0;

            if (!Int32.TryParse(dataValues[0], out dispOrder))
            {
                throw new Exception("Display Order is not valid for: " + dataValues[1]);
            }
            else
            {
                lookupDetail.displayOrder = dispOrder;
            }

            // Set detail's status flag
            if (String.IsNullOrEmpty(dataValues[4]))
            {
                lookupDetail.StatusFlag = "A";
            }
            else if (dataValues[4].ToUpper() == "A" || dataValues[4].ToLower() == "active")
            {
                lookupDetail.StatusFlag = "A";
            }
            else if (dataValues[4].ToUpper() == "I" || dataValues[4].ToLower() == "inactive")
            {
                lookupDetail.StatusFlag = "I";
            }
            else
            {
                throw new Exception("Invalid value in Status Flag field for " + dataValues[1]);
            }


            // Set detail's data value (if data value field in spread sheet is blank, use display choice field instead (which is required))
            string dataValue = dataValues[5];

            if (String.IsNullOrEmpty(dataValues[5]))
            {
                dataValue = dataValues[1];
            }

            lookupDetail.dataValue = dataValue;

            lookupDetail.EnterpriseID = enterpriseId;

            int groupId = 0;

            if (Int32.TryParse(dataValues[3], out groupId))
            {
                lookupDetail.GroupID = groupId;

                UASEntities uasEntities = new UASEntities();

                uas_Group group = uasEntities.uas_Group.Where(g => g.GroupID == groupId && g.EnterpriseID == enterpriseId).FirstOrDefault();

                if (group == null)
                {
                    throw new Exception("Group with ID " + groupId + " does not exist for " + dataValues[1]);
                }
            }
            else
            {
                throw new Exception("Missing group ID for " + dataValues[1]);
            }

            if (newDetail)
            {
                // Add new lookup detail
                formsRepo.AddLookupDetail(lookupDetail);
            }
            else
            {
                // Update existing lookup detail
                formsRepo.SaveLookupDetail(lookupDetail);
            }

            def_LookupText lookupText = null;

            bool newLookupText = false;


            lookupText = formsRepo.GetLookupTextsByLookupDetailLanguage(lookupDetail.lookupDetailId, langId).FirstOrDefault();

            if (lookupText == null)
            {
                lookupText    = new def_LookupText();
                newLookupText = true;
            }

            // Set Display Choice (required)
            lookupText.displayText = dataValues[1];

            // Set Language
            if (String.IsNullOrEmpty(dataValues[2]))
            {
                throw new Exception("Language ID is a required field.");
            }
            else
            {
                // Language ID is either 1 (English) or 2 (Spanish), so use value
                lookupText.langId = langId;
            }
            // Set lookup detail ID to be for the associated lookup detail (either just saved/added)
            lookupText.lookupDetailId = lookupDetail.lookupDetailId;

            if (newLookupText)
            {
                // Add new lookup text
                formsRepo.AddLookupText(lookupText);
            }
            else
            {
                // Update the lookup text
                formsRepo.SaveLookupText(lookupText);
            }
        }
예제 #12
0
        public void SaveLookupDetail(def_LookupDetail lkpDtl)
        {
            db.Entry(lkpDtl).State = EntityState.Modified;

            db.SaveChanges();
        }
예제 #13
0
        public void AddLookupDetail(def_LookupDetail lkpDtl)
        {
            db.def_LookupDetail.Add(lkpDtl);

            db.SaveChanges();
        }
예제 #14
0
 public void DeleteLookupDetail(def_LookupDetail lkpDtl)
 {
     db.def_LookupDetail.Remove(lkpDtl);
     db.SaveChanges();
 }