Beispiel #1
0
 void Start()
 {
     _group = transform.parent.GetComponent <SelectorGroup>(); // Get the parent which must contain a selector group
     _group.NewSelection += RefreshSelection;
     _renderer            = GetComponent <SpriteRenderer>();
     RefreshSelection();
 }
Beispiel #2
0
 private bool CheckIfEverySelectorsIsChecked(SelectorGroup selectorGroup)
 {
     foreach (var selector in selectorGroup.Selectors)
     {
         if (!selector.Export)
         {
             return(false);
         }
     }
     return(true);
 }
Beispiel #3
0
        public List <IRoleSelector> RoleEntries()
        {
            var selectors = new List <IRoleSelector>();

            foreach (var group in SelectorGroup.Default())
            {
                var subSelectors = group.Get(Roles);
                selectors.AddRange(subSelectors);
            }

            return(selectors);
        }
Beispiel #4
0
 private void AddSelectorsToSelectorGroup(IList selectors, SelectorGroup selectorGroup)
 {
     if (selectors != null && selectors.Count > 0)
     {
         foreach (var selector in selectors)
         {
             if (!string.IsNullOrEmpty(selector.ToString()) && SelectorGroup.Selectors.Any(s => s.CSSSelector.Equals(selector)) == false)
             {
                 SelectorGroup.Selectors.Add(new Selector(selector.ToString()));
             }
         }
     }
 }
Beispiel #5
0
        public IActionResult Lobby()
        {
            if (!Session.TryLobbyController(out var controller))
            {
                return(View("Join"));
            }

            var lobbyId = controller.Lobby.Id;

            ViewData["LobbyId"]        = lobbyId.ToString("N");
            ViewData["SelectorGroups"] = SelectorGroup.Default();

            return(View("Lobby"));
        }
Beispiel #6
0
            public LogicalGroup(ConditionGroup group)
            {
                List<LogicalItem> subItems = new List<LogicalItem>();

                Group = group;

                foreach (ExpressionTreeBase current in group.Children)
                {
                    foreach (LogicalItem next in ConditionGroup.Convert(current))
                    {
                        subItems.Add(next);
                    }
                }

                SubItems = subItems.ToArray();

                IEnumerable<SelectorTypes> types = SubItems.Select(x => x.SingleSelector).Distinct();

                if (IsSingleSelector = types.Count() == 1 && !SubItems.OfType<LogicalGroup>().Any(x => !x.IsSingleSelector))
                {
                    SingleSelector = types.First();
                }

                List<List<LogicalItem>> chains = GetChains(subItems);

                List<SelectorGroup> groups = new List<SelectorGroup>();

                foreach (List<LogicalItem> chain in chains)
                {
                    List<LogicalItem> unknownItems = new List<LogicalItem>();

                    SelectorTypes[] newTypes = chain.Select(x => x is LogicalGroup ? (((LogicalGroup)x).IsSingleSelector ? x.SingleSelector : SelectorTypes.Invalid) : x.SingleSelector).Distinct().ToArray();

                    foreach (SelectorTypes current in newTypes)
                    {
                        List<LogicalItem> items = new List<LogicalItem>();

                        for (int i = chain.Count - 1; i >= 0; i--)
                        {
                            LogicalItem item = chain[i];
                            SelectorTypes? selector = item is LogicalGroup ? (((LogicalGroup)item).IsSingleSelector ? (SelectorTypes?)item.SingleSelector : null) : item.SingleSelector;

                            if (selector == null)
                            {
                                unknownItems.Insert(0, item);
                                chain.RemoveAt(i);
                            }
                            else if (selector == current)
                            {
                                items.Insert(0, item);
                            }
                        }

                        if (items.Count > 0)
                        {
                            groups.Add(new SelectorGroup(items, current));
                        }
                    }

                    if (unknownItems.Count > 0)
                    {
                        groups.Add(new SelectorGroup(unknownItems, null));
                    }
                }

                for (int i = groups.Count - 1; i >= 0; i--)
                {
                    if (i > 0)
                    {
                        if (groups[i].Selector == groups[i - 1].Selector)
                        {
                            SelectorGroup upperGroup = groups[i];
                            SelectorGroup lowerGroup = groups[i - 1];
                            groups.RemoveAt(i);
                            groups.RemoveAt(i - 1);

                            List<LogicalItem> items = new List<LogicalItem>();

                            items.AddRange(lowerGroup.Children);
                            items.AddRange(upperGroup.Children);

                            SelectorGroup joinedGroup = new SelectorGroup(items, upperGroup.Selector);

                            groups.Insert(i - 1, joinedGroup);
                        }
                    }
                }

                SelectorGroups = groups.ToArray();
            }
Beispiel #7
0
        public static void ExportSelectorGroupToCSV(SelectorGroup selectorGroup)
        {
            int           count         = 0;
            StringBuilder stringBuilder = null;

            if (selectorGroup.ExportSelectorGroup)
            {
                stringBuilder = new StringBuilder("Gruppenname\n" + selectorGroup.Name + "\n\n");

                foreach (var selector in selectorGroup.Selectors)
                {
                    if (selector.Export)
                    {
                        stringBuilder.Append("Selektor;Resultate insgesamt\n");
                        stringBuilder.Append(selector.CSSSelector + ";" + selector.DateEntries.Count + "\n\n");

                        foreach (var dateEntry in selector.DateEntries)
                        {
                            stringBuilder.Append("Erstellt am: " + dateEntry.CreationDate + "\n");

                            foreach (var result in dateEntry.Results)
                            {
                                foreach (var footPrintAResult in result.FootPrintsAResult)
                                {
                                    if (true)
                                    {
                                        stringBuilder.Append(footPrintAResult.Text + ";");
                                    }

                                    if (true)
                                    {
                                        stringBuilder.Append(footPrintAResult.InnerHTML + ";");
                                    }

                                    if (true)
                                    {
                                        stringBuilder.Append(footPrintAResult.OuterHTML + ";");
                                    }

                                    stringBuilder.Append("\n");
                                }
                            }
                            stringBuilder.Append("\n");
                        }
                    }
                }
            }
            count++;

            string exportPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\export";

            try
            {
                using (var sw = new StreamWriter(exportPath + "\\out" + selectorGroup.Name + ".csv"))
                {
                    sw.WriteLine(stringBuilder);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Beispiel #8
0
            public LogicalGroup(ConditionGroup group)
            {
                List <LogicalItem> subItems = new List <LogicalItem>();

                Group = group;

                foreach (ExpressionTreeBase current in group.Children)
                {
                    foreach (LogicalItem next in ConditionGroup.Convert(current))
                    {
                        subItems.Add(next);
                    }
                }

                SubItems = subItems.ToArray();

                IEnumerable <SelectorTypes> types = SubItems.Select(x => x.SingleSelector).Distinct();

                if (IsSingleSelector = types.Count() == 1 && !SubItems.OfType <LogicalGroup>().Any(x => !x.IsSingleSelector))
                {
                    SingleSelector = types.First();
                }

                List <List <LogicalItem> > chains = GetChains(subItems);

                List <SelectorGroup> groups = new List <SelectorGroup>();

                foreach (List <LogicalItem> chain in chains)
                {
                    List <LogicalItem> unknownItems = new List <LogicalItem>();

                    SelectorTypes[] newTypes = chain.Select(x => x is LogicalGroup ? (((LogicalGroup)x).IsSingleSelector ? x.SingleSelector : SelectorTypes.Invalid) : x.SingleSelector).Distinct().ToArray();

                    foreach (SelectorTypes current in newTypes)
                    {
                        List <LogicalItem> items = new List <LogicalItem>();

                        for (int i = chain.Count - 1; i >= 0; i--)
                        {
                            LogicalItem   item     = chain[i];
                            SelectorTypes?selector = item is LogicalGroup ? (((LogicalGroup)item).IsSingleSelector ? (SelectorTypes?)item.SingleSelector : null) : item.SingleSelector;

                            if (selector == null)
                            {
                                unknownItems.Insert(0, item);
                                chain.RemoveAt(i);
                            }
                            else if (selector == current)
                            {
                                items.Insert(0, item);
                            }
                        }

                        if (items.Count > 0)
                        {
                            groups.Add(new SelectorGroup(items, current));
                        }
                    }

                    if (unknownItems.Count > 0)
                    {
                        groups.Add(new SelectorGroup(unknownItems, null));
                    }
                }

                for (int i = groups.Count - 1; i >= 0; i--)
                {
                    if (i > 0)
                    {
                        if (groups[i].Selector == groups[i - 1].Selector)
                        {
                            SelectorGroup upperGroup = groups[i];
                            SelectorGroup lowerGroup = groups[i - 1];
                            groups.RemoveAt(i);
                            groups.RemoveAt(i - 1);

                            List <LogicalItem> items = new List <LogicalItem>();

                            items.AddRange(lowerGroup.Children);
                            items.AddRange(upperGroup.Children);

                            SelectorGroup joinedGroup = new SelectorGroup(items, upperGroup.Selector);

                            groups.Insert(i - 1, joinedGroup);
                        }
                    }
                }

                SelectorGroups = groups.ToArray();
            }
Beispiel #9
0
 private void TcSelectorGroups_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     SelectorGroup = (SelectorGroup)((TabControl)sender).SelectedItem;
 }
Beispiel #10
0
        private void BtnExport_Click(object sender, RoutedEventArgs e)
        {
            SelectorGroup selectorGroup = (SelectorGroup)((Button)sender).DataContext;

            ExportFunctions.ExportSelectorGroupToCSV(selectorGroup);
        }