コード例 #1
0
        protected void CreateAndAddCalculationToMain(int regionIndex, string panelName, string panelId, ItemQueryService.eFunctionMode function, string title, string medatadataSetName, string fieldName, string prefix = "$", int decimalPlaces = 2, string groupByMetadataSetName = null, string groupByFieldName = null)
        {
            // Create the Graph Section
            Driver.FindElement(By.LinkText(SettingsLinkText), 10).Click();
            Driver.FindElement(By.LinkText(PageTypesLinkText), 10).Click();
            Driver.FindElement(By.LinkText(StandardPageLinkText), 10).Click();

            // add region to main page
            Driver.FindElement(By.Id(RegionNameFieldId)).SendKeys(panelName);
            Driver.FindElement(By.Id(RegionInternalIdId)).SendKeys(panelId);

            IWebElement   typeSelectorElement = Driver.FindElement(By.Id(RegionTypeSelectorId));
            SelectElement typeSelector        = new SelectElement(typeSelectorElement);

            typeSelector.SelectByValue("Catfish.Models.Regions.CalculatedFieldPanel");

            Driver.FindElement(By.Id(AddRegionButtonId)).Click();

            Driver.FindElement(By.LinkText(SaveLinkText), 10).Click();
            Driver.FindElement(By.LinkText(ContentLinkText), 10).Click();
            Driver.FindElement(By.LinkText(PagesLinkText), 10).Click();
            Driver.FindElement(By.LinkText(StartLinkText), 10).SendKeys(Keys.Return);

            Driver.FindElement(By.XPath($@"//button[contains(.,'{panelName}')]"), 10).Click();

            // Define the region settings
            string regionBaseName = "Regions_" + regionIndex + "__Body_";

            IWebElement element = Driver.FindElement(By.Id(regionBaseName + "Title"), 10);

            element.Clear();
            element.SendKeys(title);

            element = Driver.FindElement(By.Id(regionBaseName + "Prefix"), 10);
            element.Clear();
            element.SendKeys(prefix);

            element = Driver.FindElement(By.Id(regionBaseName + "DecimalPlaces"), 10);
            element.Clear();
            element.SendKeys(decimalPlaces.ToString());

            SelectElement select = new SelectElement(Driver.FindElement(By.Id(regionBaseName + "SelectedFieldMetadataSet"), 10));

            select.SelectByText(medatadataSetName);

            select = new SelectElement(Driver.FindElement(By.Id(regionBaseName + "SelectedField"), 10));
            select.SelectByText(fieldName);

            if (groupByMetadataSetName != null && groupByFieldName != null)
            {
                select = new SelectElement(Driver.FindElement(By.Id(regionBaseName + "SelectedGroupByFieldMetadataSet"), 10));
                select.SelectByText(groupByMetadataSetName);

                select = new SelectElement(Driver.FindElement(By.Id(regionBaseName + "SelectedGroupByField"), 10));
                select.SelectByText(groupByFieldName);
            }

            select = new SelectElement(Driver.FindElement(By.Id(regionBaseName + "SelectedFunction"), 10));
            select.SelectByText(Enum.GetName(typeof(ItemQueryService.eFunctionMode), function));

            // Save the page
            Driver.FindElement(By.ClassName(UpdateButtonClass), 10).Click();
        }
コード例 #2
0
        public JsonResult GetStatsData(string q, ItemQueryService.eFunctionMode statMode, string selectedFieldMetadataSet, string selectedField, string selectedGroupByFieldMetadataSet, string selectedGroupByField)
        {
            decimal result = ItemQueryService.GetCalculatedField(q, statMode, selectedFieldMetadataSet, selectedField, selectedGroupByFieldMetadataSet, selectedGroupByField);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }