public static PERSPECTIVE_VIEW LookupView(PSsqmEntities ctx, string perspective, string viewName, decimal viewID, string nlsLanguage) { PERSPECTIVE_VIEW view = null; try { if (viewID > 0) { view = (from v in ctx.PERSPECTIVE_VIEW.Include("PERSPECTIVE_VIEW_ITEM").Include("PERSPECTIVE_VIEW_LANG").Include("PERSPECTIVE_VIEW_ITEM.PERSPECTIVE_VIEW_ITEM_LANG") where (v.VIEW_ID == viewID) select v).SingleOrDefault(); } else { view = (from v in ctx.PERSPECTIVE_VIEW.Include("PERSPECTIVE_VIEW_ITEM").Include("PERSPECTIVE_VIEW_LANG").Include("PERSPECTIVE_VIEW_ITEM.PERSPECTIVE_VIEW_ITEM_LANG") where (v.PERSPECTIVE == perspective && v.VIEW_NAME == viewName) select v).SingleOrDefault(); } if (view != null && nlsLanguage.ToLower() != "en") { PERSPECTIVE_VIEW_LANG lang = view.PERSPECTIVE_VIEW_LANG.Where(v => v.NLS_LANGUAGE.ToLower() == nlsLanguage.ToLower()).FirstOrDefault(); if (lang != null) { view.VIEW_NAME = lang.VIEW_NAME; view.VIEW_DESC = lang.VIEW_DESC; PERSPECTIVE_VIEW_ITEM_LANG langItem = null; foreach (PERSPECTIVE_VIEW_ITEM item in view.PERSPECTIVE_VIEW_ITEM) { if ((langItem = item.PERSPECTIVE_VIEW_ITEM_LANG.Where(i => i.NLS_LANGUAGE.ToLower() == nlsLanguage.ToLower()).FirstOrDefault()) != null) { item.TITLE = langItem.TITLE; item.SCALE_LABEL = langItem.SCALE_LABEL; item.A_LABEL = langItem.A_LABEL; if (!string.IsNullOrEmpty(langItem.OPTIONS)) { item.OPTIONS = langItem.OPTIONS; } } } } } } catch (Exception ex) { //SQMLogger.LogException(ex); } return(view); }
public static List <PERSPECTIVE_VIEW> SelectFilteredViewList(string perspective, decimal personID, decimal companyID, decimal busOrgID, decimal plantID, bool activeOnly, string nlsLanguage) { List <PERSPECTIVE_VIEW> viewList = SelectViewList(perspective, companyID); List <PERSPECTIVE_VIEW> outList = new List <PERSPECTIVE_VIEW>(); foreach (PERSPECTIVE_VIEW view in viewList) { if (!activeOnly || (activeOnly && view.STATUS != "I")) { if (view.AVAILABILTY == 4 || view.OWNER_ID == personID) { outList.Add(view); } else if ((view.AVAILABILTY == 3 && view.BUS_ORG_ID == busOrgID) || (view.AVAILABILTY == 2 && view.PLANT_ID == plantID)) { outList.Add(view); } else { ; } } } // get alternate language texts if (nlsLanguage != "en") { PERSPECTIVE_VIEW_LANG langView = null; { foreach (PERSPECTIVE_VIEW view in outList) { if ((langView = view.PERSPECTIVE_VIEW_LANG.Where(v => v.NLS_LANGUAGE.ToLower() == nlsLanguage.ToLower()).FirstOrDefault()) != null) { view.VIEW_NAME = langView.VIEW_NAME; view.VIEW_DESC = langView.VIEW_DESC; } } } } return(outList); }