/// <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_LookupText SetLookupText(int detailId, int lang, string displayText, def_LookupText lkpTxt = null)
        {
            if (lkpTxt == null)
            {
                lkpTxt = new def_LookupText();

                lkpTxt.lookupDetailId = detailId;
                lkpTxt.langId         = (short)lang;
                lkpTxt.displayText    = displayText;

                db.def_LookupText.Add(lkpTxt);
            }
            else
            {
                lkpTxt.lookupDetailId = detailId;
                lkpTxt.langId         = (short)lang;
                lkpTxt.displayText    = displayText;

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

            db.SaveChanges();

            return(lkpTxt);
        }
        public ActionResult deleteText(int lookupTextId, int lookupDetailId)
        {
            def_LookupText text = formsRepo.GetLookupTextById(lookupTextId);

            formsRepo.DeleteLookupText(text);

            //lookupModel.LookupTexts = getTexts(lookupDetailId);
            lookupModel.detailId = lookupDetailId;

            return(PartialView("_Texts", lookupModel));
        }
        public ActionResult saveText(int lookupTextId, int lookupDetailId, int langId, string displayText)
        {
            def_LookupText text = formsRepo.GetLookupTextById(lookupTextId);

            formsRepo.SetLookupText(lookupDetailId, langId, displayText, text);

            //lookupModel.LookupTexts = getTexts(lookupDetailId);
            lookupModel.detailId = lookupDetailId;

            return(PartialView("_Texts", 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");
        }
Пример #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);
        }
        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);
        }
        /// <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);
            }
        }
        public string DataTableDetails(int draw, int start, int length, string searchValue, string searchRegex, string order)
        {
            int    masterId = 0;
            int    ent      = 0;
            int    grp      = 0;
            string result   = String.Empty;

            Debug.WriteLine("Def3Maint Controller DataTableDetails draw:" + draw.ToString());
            Debug.WriteLine("Def3Maint Controller DataTableDetails start:" + start.ToString());
            Debug.WriteLine("Def3Maint Controller DataTableDetails searchValue:" + searchValue);
            Debug.WriteLine("Def3Maint Controller DataTableDetails searchRegex:" + searchRegex);
            Debug.WriteLine("Def3Maint Controller DataTableDetails order:" + order);
            try
            {
                string r = Request["masterId"];
                if (!String.IsNullOrEmpty(r))
                {
                    masterId = Convert.ToInt32(r);
                }
                r = Request["entId"];
                if (!String.IsNullOrEmpty(r))
                {
                    try
                    {
                        ent = Convert.ToInt32(r);
                    }
                    catch (FormatException excptn)
                    {
                    }
                }
                r = Request["grpId"];
                if (!String.IsNullOrEmpty(r))
                {
                    try
                    {
                        grp = Convert.ToInt32(r);
                    }
                    catch (FormatException excptn)
                    {
                    }
                }
                //  Lists all the Request parameters
                foreach (string s in Request.Params.Keys)
                {
                    Debug.WriteLine(s.ToString() + ":" + Request.Params[s]);
                }

                try
                {
                    // Initialize the DataTable response (later transformed to JSON)
                    DataTableResult dtr = new DataTableResult()
                    {
                        draw            = draw,
                        recordsTotal    = 1,
                        recordsFiltered = 1,
                        data            = new List <string[]>(),
                        error           = String.Empty
                    };

                    // rename to avoid language/library conflicts
                    int iniIndex    = start;
                    int noDsplyRecs = length;

                    int englishId = 0;
                    foreach (def_Languages l in formsRepo.GetAllLanguages())
                    {
                        if (l.title.Equals("English"))
                        {
                            englishId = l.langId;
                            break;
                        }
                    }
                    List <def_LookupDetail> query = formsRepo.GetLookupDetails(masterId, ent, grp);

                    List <def_BaseTypes> types = formsRepo.GetBaseTypes();
                    dtr.recordsTotal = dtr.recordsFiltered = query.Count();
                    foreach (def_LookupDetail q in query.Skip(iniIndex).Take(noDsplyRecs).ToList())
                    {
                        def_LookupText dl      = formsRepo.GetLookupTextsByLookupDetailLanguage(q.lookupDetailId, englishId).FirstOrDefault();
                        string         engText = (dl != null) ? dl.displayText : String.Empty;
                        string[]       data    = new string[] {
                            "<span id=\"dataValue[" + q.lookupDetailId + "]\">" + q.dataValue + "</span>",
                            "<span id=\"order[" + q.lookupDetailId + "]\">" + q.displayOrder + "</span>",
                            "<span id=\"english[" + q.lookupDetailId + "]\">" + engText + "</span>",
                            "<span id=\"editDetail[" + q.lookupDetailId + "]\"><a href=\"#\" onclick=\"editDetail(" + q.lookupDetailId + ")\">Edit</a></span>"
                            + "<span id=\"saveDetail[" + q.lookupDetailId + "]\" hidden=\"hidden\"><a href=\"#\" onclick=\"saveDetail(" + q.lookupDetailId + ")\">Save </a></span>",
                            "<span id=\"textDetail[" + q.lookupDetailId + "]\"><a href=\"#\" onclick=\"textDetail(" + q.lookupDetailId + ", '" + q.dataValue + "')\">View Text </a></span>"
                            + "<span id=\"cancelDetail[" + q.lookupDetailId + "]\" hidden=\"hidden\"><a href=\"#\" onclick=\"cancelDetail(" + q.lookupDetailId + ")\">Cancel </a></span>",
                            "<span id=\"deleteDetail[" + q.lookupDetailId + "]\"><a href=\"#\" onclick=\"deleteDetail(" + q.lookupDetailId + ", '" + q.dataValue + "')\">Delete</a></span>"
                        };
                        dtr.data.Add(data);
                    }

                    Debug.WriteLine("Def3Maint Controller DataTableDetails data populated.");

                    // Output the JSON in DataTable format
                    fastJSON.JSONParameters param = new fastJSON.JSONParameters();
                    param.EnableAnonymousTypes = true;
                    result = fastJSON.JSON.ToJSON(dtr, param);
                    Debug.WriteLine("Def3Maint Controller DataTableDetails result:" + result);
                }
                catch (Exception excptn)
                {
                    Debug.WriteLine("Def3Maint Controller DataTableDetails exception:" + excptn.Message);
                    result = excptn.Message + " - " + excptn.Message;
                }
            }
            catch (FormatException excptn)
            {
                Debug.WriteLine("Def3Maint Controller DataTableDetails masterId format exception:" + excptn.Message);
            }
            return(result);
        }
Пример #10
0
        public void SaveLookupText(def_LookupText lkpTxt)
        {
            db.Entry(lkpTxt).State = EntityState.Modified;

            db.SaveChanges();
        }
Пример #11
0
        public void AddLookupText(def_LookupText lkpTxt)
        {
            db.def_LookupText.Add(lkpTxt);

            db.SaveChanges();
        }
Пример #12
0
 public void DeleteLookupText(def_LookupText lkpTxt)
 {
     db.def_LookupText.Remove(lkpTxt);
     db.SaveChanges();
 }