Ejemplo n.º 1
0
        /// <summary>
        /// Получить элемент окна данных, имеющий спецификацию заданного типа, по идентификатору.
        /// </summary>
        public DataWndItem GetDataWndItem(int dataWndID, Type specType, bool throwOnFail = false)
        {
            DataWndItem dataWndItem = GetDataWndItem(dataWndID);

            if (dataWndItem == null)
            {
                if (throwOnFail)
                {
                    throw new ScadaException(string.Format(WebPhrases.DataWndNotFound, dataWndID));
                }
                else
                {
                    return(null);
                }
            }
            else if (dataWndItem.DataWndSpec == null || dataWndItem.DataWndSpec.GetType() != specType)
            {
                if (throwOnFail)
                {
                    throw new ScadaException(string.Format(WebPhrases.UnexpectedDataWndSpec, dataWndID));
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(dataWndItem);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Добавление контента, прописанного в базе конфигурации.
        /// </summary>
        protected void AddContentFromBase(UserRights userRights, Dictionary <string, UiObjSpec> uiObjSpecs,
                                          DataAccess dataAccess)
        {
            if (userRights != null && uiObjSpecs != null)
            {
                List <UiObjProps> uiObjPropsList = dataAccess.GetUiObjPropsList(
                    UiObjProps.BaseUiTypes.Report | UiObjProps.BaseUiTypes.DataWnd);

                foreach (UiObjProps uiObjProps in uiObjPropsList)
                {
                    int uiObjID = uiObjProps.UiObjID;

                    if (!uiObjProps.Hidden && userRights.GetUiObjRights(uiObjID).ViewRight)
                    {
                        uiObjSpecs.TryGetValue(uiObjProps.TypeCode, out UiObjSpec uiObjSpec);

                        if (uiObjProps.BaseUiType == UiObjProps.BaseUiTypes.Report)
                        {
                            // добавление элемента отчёта
                            ReportItem reportItem = new ReportItem()
                            {
                                UiObjID = uiObjID,
                                Text    = uiObjProps.Title,
                                Path    = uiObjProps.Path
                            };

                            if (uiObjSpec is ReportSpec reportSpec)
                            {
                                if (string.IsNullOrEmpty(reportItem.Text))
                                {
                                    reportItem.Text = reportSpec.Name;
                                }
                                reportItem.Url        = uiObjSpec.GetUrl(uiObjID);
                                reportItem.ReportSpec = reportSpec;
                            }

                            if (!string.IsNullOrEmpty(reportItem.Text))
                            {
                                ReportItems.Add(reportItem);
                                reportItemDict[uiObjID] = reportItem;
                            }
                        }
                        else if (uiObjProps.BaseUiType == UiObjProps.BaseUiTypes.DataWnd)
                        {
                            // добавление элемента окна данных
                            DataWndItem dataWndItem = new DataWndItem()
                            {
                                UiObjID = uiObjID,
                                Text    = uiObjProps.Title,
                                Path    = uiObjProps.Path
                            };

                            if (uiObjSpec is DataWndSpec dataWndSpec)
                            {
                                if (string.IsNullOrEmpty(dataWndItem.Text))
                                {
                                    dataWndItem.Text = dataWndSpec.Name;
                                }
                                dataWndItem.Url         = uiObjSpec.GetUrl(uiObjID);
                                dataWndItem.DataWndSpec = dataWndSpec;
                            }

                            if (!string.IsNullOrEmpty(dataWndItem.Text))
                            {
                                DataWndItems.Add(dataWndItem);
                                dataWndItemDict[uiObjID] = dataWndItem;
                            }
                        }
                    }
                }
            }
        }