예제 #1
0
        private NetworkVisualNode CreateVisualItem(object tag)
        {
            IRelevance relevance = tag as IRelevance;

            if (relevance != null)
            {
                if (relevance.Relevance < sliderRelevance.Minimum && relevance.Relevance != -1)
                {
                    sliderRelevance.Minimum = relevance.Relevance;
                    sliderRelevance.Value   = relevance.Relevance;
                }
            }

            NetworkVisualNode visualNode = new NetworkVisualNode();

            visualNode.ContentObject  = tag;
            visualNode.NodeSelected  += new NetworkVisualNode.NodeSelectedEventHandler(visualNode_NodeSelected);
            visualNode.NodeActivated += new NetworkVisualNode.NodeActivatedEventHandler(visualNode_NodeActivated);
            visualNode.NodeHovered   += new NetworkVisualNode.NodeHoveredEventHandler(visualNode_NodeHovered);
            visualNode.UpdateRelevence(sliderRelevance.Value <= sliderRelevance.Minimum ? -1 : sliderRelevance.Value);

            _canvas.Children.Add(visualNode);

            return(visualNode);
        }
        /// <summary>
        /// Update the visual state based on the relevance limit
        /// </summary>
        /// <param name="relevanceLimit">The relevance limit</param>
        public void UpdateRelevence(double relevanceLimit)
        {
            double     relval    = 0;
            IRelevance relevance = _contentObject as IRelevance;

            if (relevance != null)
            {
                relval = relevance.Relevance;
            }
            _isFiltered = relval < relevanceLimit;
            UpdateVisualState();
        }
예제 #3
0
        internal static IList <IProperty> FilterProperty <K>(IEntityMapper <T> mapper, IEntityMapper <K> kMapper, IRelevance relevance, JoinType join, out string relevanceStr, IEnumerable <IProperty> disabled = null, IEnumerable <Polymerize> polymerizes = null)
        {
            disabled = disabled ?? new IProperty[0];
            var p1 = polymerizes == null ? from t in mapper.Propertys where !(t.Ignore || disabled.Contains((m) => m.Equals(t))) && t.SetTableName(mapper.TableName) select t.IsJoin(true) :
                     from t in mapper.Propertys
                         where !(t.Ignore || disabled.Contains((m) => m.Equals(t)) || polymerizes.Contains((m) => m.Property.Name == t.Name)) && t.SetTableName(mapper.TableName)
                     select t.IsJoin(true)
            ;

            var p2 = polymerizes == null ? from t in kMapper.Propertys
                     where !(t.Ignore || disabled.Contains((m) => m.Equals(t))) && t.SetAliaName(relevance)
                     select t.IsJoin(true) :
                     from t in kMapper.Propertys
                         where !(t.Ignore || disabled.Contains((m) => m.Equals(t)) || !polymerizes.Contains((m) => m.Property.Name == t.Name)) && t.SetAliaName(relevance)
                     select t.IsJoin(true)
            ;

            relevanceStr = $"{mapper.TableName}  { JoinString(join)} {kMapper.TableName} as {relevance.AliaName} on {relevance.AliaName}.{relevance.PrimaryKey.Name}= {mapper.TableName}.{relevance.ForeignKey.Name}";
            return(p1.Union(p2).ToList());
        }
예제 #4
0
 public bool SetAliaName(IRelevance relevanc)
 {
     this._aliaName = relevanc.AliaName;
     return(true);
 }
        private void PopulateItems(object root)
        {
            _currentRoot = root;

            _panelItems.Children.Clear();

            double minValue = 1;
            double maxValue = 0;
            double minPixel = 20;
            double maxPixel = 40;

            IEnumerable enumerable = _currentRoot as IEnumerable;

            if (enumerable != null)
            {
                IEnumerator iEnum = enumerable.GetEnumerator();

                iEnum.Reset();
                while (iEnum.MoveNext())
                {
                    IRelevance relevance = iEnum.Current as IRelevance;

                    if (relevance != null)
                    {
                        if (relevance.Relevance != -1)
                        {
                            if (relevance.Relevance < minValue)
                            {
                                minValue = relevance.Relevance;
                            }
                            if (relevance.Relevance > maxValue)
                            {
                                maxValue = relevance.Relevance;
                            }
                        }
                    }
                }

                double weightRange = maxValue - minValue;
                if (weightRange == 0)
                {
                    weightRange = 1;
                }

                double pixelWeightScale = (maxPixel - minPixel) / weightRange;

                iEnum.Reset();
                while (iEnum.MoveNext())
                {
                    TagCloudVisualNode tagCloudVisualNode = new TagCloudVisualNode();
                    tagCloudVisualNode.NodeActivated += new TagCloudVisualNode.NodeActivatedEventHandler(tagCloudVisualNode_NodeActivated);
                    tagCloudVisualNode.NodeSelected  += new TagCloudVisualNode.NodeSelectedEventHandler(tagCloudVisualNode_NodeSelected);
                    tagCloudVisualNode.ContentObject  = iEnum.Current;

                    double     relval    = 1;
                    IRelevance relevance = iEnum.Current as IRelevance;

                    if (relevance != null)
                    {
                        relval = relevance.Relevance;
                    }

                    tagCloudVisualNode.LabelFontSize = minPixel + (((relval == -1 ? minValue : relval) - minValue) * pixelWeightScale);
                    _panelItems.Children.Add(tagCloudVisualNode);
                }
            }

            buttonUpOneLevel.Visibility = _currentRoot == _originalRoot ? Visibility.Collapsed : Visibility.Visible;
        }
예제 #6
0
        public DepartmentItmm(string path, ref List <Task> tasks)
        {
            Path = path + Constants.defaultFolder;

            dictionaries = LoadGroupsDictionaries(Path + Constants.dictionariesFilename, CoursesCount);

            vkStuff = IVkStuffConstructor.Construct(Path + Constants.settingsFilename);

            userRepository = new UserRepository();
            IUserRepositoryReader.Read(ref userRepository, Path + Constants.userRepositoryFilename);

            for (int curCourse = 0; curCourse < CoursesCount; ++curCourse)
            {
                courses[curCourse] = new Course();
                for (int curGroup = 0; curGroup < dictionaries[curCourse].Count; curGroup++)
                {
                    courses[curCourse].groups.Add(new Group(dictionaries[curCourse].ElementAt(curGroup).Key));
                }
            }

            mapper = new Mapper(courses);

            relevance = new RelevanceItmm(Path);

            LoadSettings(Path + Constants.settingsFilename);

            CoursesKeyboards = Utils.Utils.ConstructKeyboards(in mapper, CoursesCount);

            if (loadModule[0])
            {
                tasks.Add(Task.Run(() => ExecuteMethodsAsync()));
            }
            if (loadModule[1])
            {
                tasks.Add(Task.Run(() => GetMessages()));
            }
            if (loadModule[2])
            {
                tasks.Add(CreateResponseMessagesTasks(Constants.responseMessagesTaskCount));
            }
            if (loadModule[3])
            {
                tasks.Add(Task.Run(() => UploadPhotosAsync()));
            }
            if (loadModule[4])
            {
                tasks.Add(Task.Run(() => SaveUsersAsync()));
            }

            StartTime = DateTime.Now;

            EnqueueMessage(
                sendAsNewMessage: true,
                editingEnabled: false,
                userId: vkStuff.AdminId,
                message: StartTime.ToString() + " | Запустился"
                );

            if (loadModule[5])
            {
                tasks.Add(StartRelevanceModule());
                EnqueueMessage(
                    sendAsNewMessage: true,
                    editingEnabled: false,
                    userId: vkStuff.AdminId,
                    message: DateTime.Now.ToString() + " | Запустил RelevanceModule"
                    );
            }
        }