Пример #1
4
        public OptionsViewModel(OptionsPageData data,  ObservableValue<IEnumerable<string>> exceptionNames)
        {
            _data = data;
            IgnoredPatterns = new PatternCollectionViewModel(data.Ignored);
            AllExceptions = exceptionNames.GetObservable(v => new ReadOnlyCollection<ExceptionViewModel>(
                v.Select(n => new ExceptionViewModel(n, IgnoredPatterns.Selected)).ToArray()
            ));

            _exceptionsMatchingIgnored = new ObservableCollection<ExceptionViewModel>();
            ExceptionsMatchingIgnored = new ReadOnlyObservableCollection<ExceptionViewModel>(_exceptionsMatchingIgnored);

            AllExceptions.ValueChanged += (sender, e) => RecalculateExceptionsMatchingIgnored();

            IgnoredPatterns.Values.CollectionChanged += (sender, e) => RecalculateExceptionsMatchingIgnored();
            var ignoredChangeHandler = (EventHandler) delegate { RecalculateExceptionsMatchingIgnored(); };
            IgnoredPatterns.Values.AddHandlers(
                added => {
                    added.Pattern.ValueChanged += ignoredChangeHandler;
                    added.Enabled.ValueChanged += ignoredChangeHandler;
                },
                removed => {
                    removed.Pattern.ValueChanged -= ignoredChangeHandler;
                    removed.Enabled.ValueChanged -= ignoredChangeHandler;
                }
            );

            RecalculateExceptionsMatchingIgnored();
        }
Пример #2
1
        public RecipesViewModel()
        {
            // initialize commands
            m_addNewRecipeCommand = new RelayCommand(AddNewRecipe);
            m_deleteRecipeCommand = new RelayCommand<RecipeDataModel>(DeleteRecipe);
            m_addHopsIngredientToRecipeCommand = new RelayCommand<Hops>(AddHopsIngredient);
            m_addFermentableIngredientToRecipeCommand = new RelayCommand<Fermentable>(AddFermentableIngredient);
            m_changeYeastCommand = new RelayCommand<Yeast>(ChangeYeast);
            m_deleteHopsIngredientCommand = new RelayCommand<IHopsIngredient>(DeleteHopsIngredient);
            m_deleteFermentableIngredientCommand = new RelayCommand<IFermentableIngredient>(DeleteFermentableIngredient);

            // get available ingredients
            List<IngredientTypeBase> allAvailableIngredients = RecipeUtility.GetAvailableIngredients().OrderBy(ingredient => ingredient.Name).ToList();
            m_availableHops = allAvailableIngredients.OfType<Hops>().ToReadOnlyObservableCollection();
            m_availableFermentables = allAvailableIngredients.OfType<Fermentable>().ToReadOnlyObservableCollection();
            m_availableYeasts = allAvailableIngredients.OfType<Yeast>().ToReadOnlyObservableCollection();

            List<Style> beerStyles = RecipeUtility.GetAvailableBeerStyles().OrderBy(style => style.Name).ToList();
            m_availableBeerStyles = beerStyles.ToReadOnlyObservableCollection();
            m_savedRecipes = new ObservableCollection<RecipeDataModel>(RecipeUtility.GetSavedRecipes(beerStyles));

            GetSettings();

            // set the current recipe to the first in the collection
            CurrentRecipe = m_savedRecipes.FirstOrDefault();
        }
Пример #3
0
        protected override void InstantiationFinished()
        {
            base.InstantiationFinished();
            Users = CreateObservableCollection(m_users);

            AddNewUserCommand  = new RelayCommand(AddNewUser);
        }
Пример #4
0
 /// <summary>
 /// Initializes a new instance of the FilterRulePanelController class.
 /// </summary>
 public FilterRulePanelController()
 {
     this.filterRulePanelItems = 
         new ObservableCollection<FilterRulePanelItem>();
     this.readOnlyFilterRulePanelItems = 
         new ReadOnlyObservableCollection<FilterRulePanelItem>(this.filterRulePanelItems);
 }
 public StorageServicesAdapter(PortableDevice device)
 {
     this.device = device;
     portableDeviceClass = device.PortableDeviceClass;
     storages = new ObservableCollection<PortableDeviceFunctionalObject>(ExtractStorageServices());
     Storages = new ReadOnlyObservableCollection<PortableDeviceFunctionalObject>(storages);
 }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="modelTreeView">Diagram tree view.</param>
        public SerializationViewModel(ViewModelStore viewModelStore, SerializationModel serializationModel)
            : base(viewModelStore)
        {
            this.allVMs = new ObservableCollection<SerializedDomainModelViewModel>();
            this.serializationModel = serializationModel;
            this.selectedVMS = new Collection<object>();

            this.rootVMs = new ObservableCollection<SerializedDomainModelViewModel>();
            this.rootVMsRO = new ReadOnlyObservableCollection<SerializedDomainModelViewModel>(this.rootVMs);

            this.selectRelationshipCommand = new DelegateCommand(SelectRelationshipCommand_Executed);
            this.moveUpCommand = new DelegateCommand(MoveUpCommand_Executed, MoveUpCommand_CanExecute);
            this.moveDownCommand = new DelegateCommand(MoveDownCommand_Executed, MoveDownCommand_CanExecute);

            if (this.serializationModel.SerializedDomainModel != null)
            {
                this.rootVMs.Add(new SerializedDomainModelViewModel(this.ViewModelStore, this.serializationModel.SerializedDomainModel));
            }
            if (this.serializationModel != null)
            {
                foreach (SerializationClass c in this.serializationModel.Children)
                    if (c is SerializedDomainClass)
                        this.AddChild(c as SerializedDomainClass);

                this.EventManager.GetEvent<ModelElementLinkAddedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRelationship(SerializationModelHasChildren.DomainClassId),
                    true, this.serializationModel.Id, new System.Action<ElementAddedEventArgs>(OnChildAdded));
                this.EventManager.GetEvent<ModelElementLinkDeletedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRelationship(SerializationModelHasChildren.DomainClassId),
                    true, this.serializationModel.Id, new System.Action<ElementDeletedEventArgs>(OnChildRemoved));
                
            }
        }
        public MiniMapWindow(Route route, Region region)
        {
            InitializeComponent();
            Region = region;

            var waypoints = new List<Waypoint>();
            var connections = new List<Connection>();

            foreach (var conn in route.Path)
            {
                if (conn.Source.Region == region)
                    waypoints.Add(conn.Source);

                if (conn.Target.Region == region)
                    waypoints.Add(conn.Target);

                if (conn.Source.Region == region && conn.Target.Region == region)
                    connections.Add(conn);
            }

            Waypoints = new ReadOnlyObservableCollection<Waypoint>(new ObservableCollection<Waypoint>(waypoints));
            Connections = new ReadOnlyObservableCollection<Connection>(new ObservableCollection<Connection>(connections));

            DataContext = this;
        }
        public MainWindowViewModel() {
            Pokemons = new ReadOnlyObservableCollection<SniperInfoModel>(GlobalVariables.PokemonsInternal);
            SettingsComand = new ActionCommand(ShowSettings);
            StartStopCommand = new ActionCommand(Startstop);
            DebugComand = new ActionCommand(ShowDebug);

            Settings.Default.DebugOutput = "Debug stuff in here!";
            //var poke = new SniperInfo {
            //    Id = PokemonId.Missingno,
            //    Latitude = 45.99999,
            //    Longitude = 66.6677,
            //    ExpirationTimestamp = DateTime.Now
            //};
            //var y = new SniperInfoModel {
            //    Info = poke,
            //    Icon = new BitmapImage(new Uri(Path.Combine(iconPath, $"{(int) poke.Id}.png")))
            //};
            //GlobalVariables.PokemonsInternal.Add(y);

            GlobalSettings.Output = new Output();
            Program p = new Program();
            Thread a = new Thread(p.Start) { IsBackground = true};
            //Start(); p
            a.Start();
        }
 public NotificationInfoContainer(PlatformClient client, bool isReadedItemOnly)
     : base(client)
 {
     _isReadedItemOnly = isReadedItemOnly;
     _notifications = new ObservableCollection<NotificationInfo>();
     Notifications = new ReadOnlyObservableCollection<NotificationInfo>(_notifications);
 }
Пример #10
0
 public ChatRoom(ChatServerImpl server)
 {
     _server = server;
     _users = new ObservableCollection<IChatUser>();
     Users = new ReadOnlyObservableCollection<IChatUser>(_users);
     RoomId = Guid.NewGuid().ToString("N");
 }
Пример #11
0
        public ServersList(ServersListMessage msg)
        {
            if (msg == null) throw new ArgumentNullException("msg");

            m_collection = new ObservableCollection<ServersListEntry>(msg.servers.Select(entry => new ServersListEntry(entry)));
            m_readOnlyCollection = new ReadOnlyObservableCollection<ServersListEntry>(m_collection);
        }
        public WorkspaceViewModel(TraceLab.Core.Workspaces.Workspace workspace, string experimentId)
        {
            if (workspace == null)
                throw new ArgumentNullException("workspace");
            if (String.IsNullOrEmpty(experimentId))
                throw new ArgumentException("Experiment id cannot be null or empty", "experimentId");

            m_workspace = workspace;
            m_workspace.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(workspace_PropertyChanged);

            m_experimentId = experimentId;

            //init observable collections
            m_experimentWorkspaceUnits = new ObservableCollection<WorkspaceUnit>();
            m_readonlyExperimentWorkspaceUnits = new ReadOnlyObservableCollection<WorkspaceUnit>(m_experimentWorkspaceUnits);

            //prefill local units with units of this experiment
            foreach (WorkspaceUnit unit in m_workspace.Units)
            {
                AddUnit(unit);
            }

            INotifyCollectionChanged workspaceUnitCollection = m_workspace.Units;
            workspaceUnitCollection.CollectionChanged += WorkspaceCollectionCollectionChanged;

            (new TraceLab.Core.Components.LibraryHelper(m_workspace.TypeDirectories)).PreloadWorkspaceTypes(System.AppDomain.CurrentDomain);
        }
 public SelectionFileForDownloadingViewModel(ReadOnlyObservableCollection<HexFileViewModel> files)
 {
     this.files = files;
     IndexOfTheSelectedFile = 0;
     OkCommand = new DelegateCommand(OnOk);
     CloseCommand = new DelegateCommand(OnClose);
 }
Пример #14
0
 public AudioEffect(AudioContext context, AudioEffectType type)
     : base(context, Create(context))
 {
     using (Context.Bind())
         Context.AlEffecti(Id, AlEfxEnums.EffectType, (int)type);
     sourcesReadOnly = new ReadOnlyObservableCollection<AudioSource>(sources);
 }
Пример #15
0
 public MainWindowViewModel(
     IAssigmentsCache assigmentsCache, 
     ITagsCache tagsCache,
     IAddAssigmentService addAssigmentService,
     Func<IAssigment, IAssigmentViewModel> assigmentViewModelFactory,
     Func<ITag, ISelectableTagViewModel> tagViewModelFactory)
 {
     ApplicationTitle = "ToDo";
     Assigments = new ReadOnlyObservableCollection<IAssigmentViewModel>(_assigments);
     AvalibleTags = new ReadOnlyObservableCollection<ISelectableTagViewModel>(_avalibleTags);
     AddAssigment = new AddAssigmentCommand(this);
     _addAssigmentService = addAssigmentService;
     _assigmentViewModelFactory = assigmentViewModelFactory;
     _tagViewModelFactory = tagViewModelFactory;
     foreach (var assigment in assigmentsCache.Items)
     {
         _assigments.Add(assigmentViewModelFactory(assigment));
     }
     assigmentsCache.AssimentAdded += OnAssimentAdded;
     foreach (var tag in tagsCache.Items)
     {
         _avalibleTags.Add(_tagViewModelFactory(tag));
     }
     tagsCache.TagAdded += OnTagAdded;
 }
 public TimeModule()
 {
   _bookmarks = new ReadOnlyObservableCollection<Bookmark>(new ObservableCollection<Bookmark>());
   MapViewTimeChangedEvent.Subscribe(OnTimeChanged);
   ActiveMapViewChangedEvent.Subscribe(OnActiveMapViewChanged);     
   LoadBookmarks();
 }
Пример #17
0
 public void Select_ReadOnlyObservableCollection_InputContentsMatchOutputContents()
 {
     var readOnlySource = new ReadOnlyObservableCollection<Person>(_source);
     ReadOnlyContinuousCollection<Person> output = from person in readOnlySource
                                                   select person;
     Assert.AreEqual(readOnlySource, output);
 }
Пример #18
0
        public PersonEntry(ILocationService locationService, IAddress address)
        {
            _locationService = locationService;
            _address = address;

            _roAvailableCountries = new ReadOnlyObservableCollection<ICountry>(_availableCountries);
        }
        public SessionsViewModel()
        {
            r_Sessions = new ObservableCollection<Session>();
            Sessions = new ReadOnlyObservableCollection<Session>(r_Sessions);

            KanColleGame.Current.Proxy.NewSession += r => DispatcherUtil.UIDispatcher.BeginInvoke(new Action<Session>(r_Sessions.Add), r);
        }
        /// <summary>
        /// Constuctor.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        public MainSurfaceViewModel(ViewModelStore viewModelStore)
            : base(viewModelStore)
        {
            this.rootNodeVMs = new ObservableCollection<ModelContextViewModel>();
            this.rootNodeVMsRO = new ReadOnlyObservableCollection<ModelContextViewModel>(this.rootNodeVMs);

            if (this.ModelData.MetaModel != null)
            {
                foreach (BaseModelContext mc in this.ModelData.MetaModel.ModelContexts)
                    AddModelContext(mc);

                // subscribe
                this.EventManager.GetEvent<ModelElementLinkAddedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRelationship(MetaModelHasModelContexts.DomainClassId),
                    true, this.ModelData.MetaModel.Id, new Action<ElementAddedEventArgs>(OnModelContextAdded));

                this.EventManager.GetEvent<ModelElementLinkDeletedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRelationship(MetaModelHasModelContexts.DomainClassId),
                    true, this.ModelData.MetaModel.Id, new Action<ElementDeletedEventArgs>(OnModelContextRemoved));

                if (this.ModelContextVMs.Count > 0)
                    this.selectedItem = this.ModelContextVMs[0];
            }


           this.EventManager.GetEvent<SelectionChangedEvent>().Subscribe(new Action<SelectionChangedEventArgs>(OnSelectionChanged));
        }
Пример #21
0
        public RecentFilesViewModel(IRecentFileCollection recentFileCollection, ISchedulerProvider schedulerProvider)
        {
            _recentFileCollection = recentFileCollection;
            if (recentFileCollection == null) throw new ArgumentNullException(nameof(recentFileCollection));
            if (schedulerProvider == null) throw new ArgumentNullException(nameof(schedulerProvider));
            
            ReadOnlyObservableCollection<RecentFileProxy> data;
            var recentLoader = recentFileCollection.Items
                .Connect()
                .Transform(rf => new RecentFileProxy(rf, toOpen =>
                                                            {
                                                                _fileOpenRequest.OnNext(new FileInfo(toOpen.Name));
                                                            },
                                                            recentFileCollection.Remove))
                .Sort(SortExpressionComparer<RecentFileProxy>.Descending(proxy => proxy.Timestamp))
                .ObserveOn(schedulerProvider.MainThread)
                .Bind(out data)
                .Subscribe();

            Files = data;

            _cleanUp = Disposable.Create(() =>
            {
                recentLoader.Dispose();
                _fileOpenRequest.OnCompleted();
            }) ;
        }
        public SelectProviderPage()
        {
            InitializeComponent();
            DataContext = this;

            readonlyChildren = new ReadOnlyObservableCollection<IWizardPage>(children);

            // Register to self so that we can handler user interactions.
            PropertyChanged += PropertyChangedHandler;

            providerManager = ServiceLocator.Instance.Get<IProviderManager>();
            if (providerManager != null)
            {
                foreach (var guid in providerManager)
                {
                    providers.Add(providerManager.GetInformation(guid));

                    // If any additional page, we shall cache them with the
                    // same index, so make sure the collection matches providers.
                    additionalPages.Add(null);
                }
            }

            LoggerName = "Untitled";
        }
        private DesktopStartMenuContext()
        {
            IsApplicationActive = true;
            Entries = _programsModel.Entry.Childs;

            SidePanelEntries = new ReadOnlyObservableCollection<StartPanelEntry>(_sidePanelEntries);
        }
Пример #24
0
 public SetLoggerNamePage()
 {
     InitializeComponent();
     DataContext = this;
     readonlyChildren = new ReadOnlyObservableCollection<IWizardPage>(children);
     PropertyChanged += PropertyChangedHandler;
 }
Пример #25
0
 public Message()
 {
     textCollection = new ObservableCollection<string>();
     keyCollection = new ObservableCollection<KeyPress>();
     Text = new ReadOnlyObservableCollection<string>(textCollection);
     Keys = new ReadOnlyObservableCollection<KeyPress>(keyCollection);
 }
Пример #26
0
 public DiagramLine()
 {
     _Visuals = new ObservableCollection<DiagramVisual>();
     _Visuals.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(_Visuals_CollectionChanged);
     Visuals = new ReadOnlyObservableCollection<DiagramVisual>(_Visuals);
     _Visuals.Add(new DiagramLineHeaderVisual());
 }
        /// <summary>
        /// Constructor. This view model constructed with 'bHookUpEvents=true' does react on model changes.
        /// </summary>
        /// <param name="viewModelStore">The store this view model belongs to.</param>
        /// <param name="embeddingDiagramNode">Element represented by this view model.</param>
        public EmbeddingDiagramNodeViewModel(ViewModelStore viewModelStore, EmbeddingDiagramNode embeddingDiagramNode, EmbeddingDiagramNodeViewModel parent)
            : base(viewModelStore, embeddingDiagramNode)
        {
            this.parent = parent;

            this.embeddingNodeVMs = new ObservableCollection<EmbeddingDiagramNodeViewModel>();
            this.embeddingNodeVMsRO = new ReadOnlyObservableCollection<EmbeddingDiagramNodeViewModel>(this.embeddingNodeVMs);

            if (this.EmbeddingDiagramNode != null)
            {
                foreach (EmbeddingDiagramNode node in this.EmbeddingDiagramNode.EmbeddingDiagramNodes)
                    this.AddEmbeddingDiagramNode(node);

                this.EventManager.GetEvent<ModelElementPropertyChangedEvent>().Subscribe(this.EmbeddingDiagramNode.Id, new Action<ElementPropertyChangedEventArgs>(OnElementPropertyChanged));

                this.EventManager.GetEvent<ModelElementLinkAddedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRelationship(EmbeddingDiagramNodeHasEmbeddingDiagramNodes.DomainClassId),
                    true, this.EmbeddingDiagramNode.Id, new Action<ElementAddedEventArgs>(OnEmbeddingDiagramNodeAdded));

                this.EventManager.GetEvent<ModelElementLinkDeletedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRelationship(EmbeddingDiagramNodeHasEmbeddingDiagramNodes.DomainClassId),
                    true, this.EmbeddingDiagramNode.Id, new Action<ElementDeletedEventArgs>(OnEmbeddingDiagramNodeRemoved));

                this.EventManager.GetEvent<ModelRolePlayerMovedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRelationship(EmbeddingDiagramNodeHasEmbeddingDiagramNodes.DomainClassId),
                    this.EmbeddingDiagramNode.Id, new Action<RolePlayerOrderChangedEventArgs>(OnEmbeddingDiagramNodeMoved));

                this.EventManager.GetEvent<ModelRolePlayerChangedEvent>().Subscribe(this.Store.DomainDataDirectory.GetDomainRole(EmbeddingDiagramNodeHasEmbeddingDiagramNodes.SourceEmbeddingDiagramNodeDomainRoleId),
                    new Action<RolePlayerChangedEventArgs>(OnEmbeddingDiagramNodeChanged));
            }

            expandCollapseTreeCommand = new DelegateCommand(ExpandCollapseTreeCommand_Executed);
        }
Пример #28
0
 public UserVM(User user, bool innerAvatarOnly)
 {
     Model = user;
       avatar = new AvatarVM(user.Avatar, innerAvatarOnly);
       commands = new ObservableCollection<MenuCommand>();
       Commands = new ReadOnlyObservableCollection<MenuCommand>(commands);
 }
Пример #29
0
		public ReactiveFilterBase()
		{
			_IncludeFilters = new ObservableCollection<string>();
			IncludeFilter = new ReadOnlyObservableCollection<string>(_IncludeFilters);
			_ExcludeFilters = new ObservableCollection<string>();
			ExcludeFilter = new ReadOnlyObservableCollection<string>(_ExcludeFilters);
		}
 public UserRateListViewModel(IUserInterop userInterop, IControllerInterop controllerInterop, Dispatcher dispatcher, BaseEntityDTO entity)
     : base(userInterop, controllerInterop, dispatcher)
 {
     this.entity = entity;
     rates = new ObservableCollection<UserRateItemDTO>();
     Rates = new ReadOnlyObservableCollection<UserRateItemDTO>(rates);
 }
        private async void LoadBannerData()
        {
            try
            {
                if (CrossConnectivity.Current.IsConnected)
                {
                    UserDialogs.Instance.ShowLoading("Loading...", MaskType.Black);
                    int count = 0, subonecount = 0, subtwocount = 0;

                    //get db data to load in mainbanner
                    HttpClientHelper apicall = new HttpClientHelper(string.Format(ApiUrls.Url_GetbannerImages, true), Settings.AccessTokenSettings);
                    var response             = await apicall.GetResponse <BannerResponse>();

                    if (response != null)
                    {
                        if (response.banner != null)
                        {
                            if (response.banner.Count > 0)
                            {
                                foreach (var item in response.banner.ToList())
                                {
                                    count++;
                                    if (count < 7)
                                    {
                                        string       filepath   = AppSetting.Root_Url + item.ImageData;
                                        BannerImages _bannerImg = new BannerImages();
                                        _bannerImg.ImageId = item.ImageId;
                                        _bannerImg.Image   = filepath;
                                        //var imageBytes = Convert.FromBase64String(item.ImageData);
                                        //_bannerImg.Image = ImageSource.FromStream(() => new MemoryStream(imageBytes));
                                        MainBannerImagesList.Add(_bannerImg);
                                    }
                                }
                            }
                            else
                            {
                                BannerImages _bannerImg = new BannerImages();
                                string       imagePath  = AppSetting.Root_Url + "Portals/0/UrbanService/Images/banner.png";
                                _bannerImg.Image = imagePath;// "banner.png";
                                MainBannerImagesList.Add(_bannerImg);
                            }
                        }
                        else
                        {
                            BannerImages _bannerImg = new BannerImages();
                            string       imagePath  = AppSetting.Root_Url + "Portals/0/UrbanService/Images/banner.png";
                            _bannerImg.Image = imagePath;// "banner.png";
                            MainBannerImagesList.Add(_bannerImg);
                        }
                    }
                    else
                    {
                        BannerImages _bannerImg = new BannerImages();
                        string       imagePath  = AppSetting.Root_Url + "Portals/0/UrbanService/Images/banner.png";
                        _bannerImg.Image = imagePath;// "banner.png";
                        MainBannerImagesList.Add(_bannerImg);
                    }

                    MainBannerImgs = new ReadOnlyObservableCollection <BannerImages>(MainBannerImagesList);
                    //UserDialogs.Instance.HideLoading();

                    //slide show images
                    Device.StartTimer(TimeSpan.FromSeconds(6), () =>
                    {
                        MainSlidePosition++;
                        if (MainSlidePosition == MainBannerImgs.Count)
                        {
                            MainSlidePosition = 0;
                        }
                        MainPosition = MainSlidePosition;
                        return(true);
                    });

                    //load sub banner one data

                    //load sub banner one data

                    SubBannerOneImages banner_Img = new SubBannerOneImages();
                    string             image_Path = AppSetting.Root_Url + "Portals/0/UrbanService/Images/AC.png";
                    banner_Img.SubOneImage      = image_Path;
                    banner_Img.SubOneImagelabel = "AC";
                    banner_Img.Catagory         = "Electrical";
                    SubOneBannerImagesList.Add(banner_Img);

                    SubBannerOneImages banner_Img1 = new SubBannerOneImages();
                    string             image_Path1 = AppSetting.Root_Url + "Portals/0/UrbanService/Images/Fridge.png";
                    banner_Img1.SubOneImage      = image_Path1;
                    banner_Img1.SubOneImagelabel = "Fridge";
                    banner_Img1.Catagory         = "Electronics";
                    SubOneBannerImagesList.Add(banner_Img1);

                    SubBannerOneImages banner_Img2 = new SubBannerOneImages();
                    string             image_Path2 = AppSetting.Root_Url + "Portals/0/UrbanService/Images/TV.jpg";
                    banner_Img2.SubOneImage      = image_Path2;
                    banner_Img2.SubOneImagelabel = "TV ( LCD / LED )";
                    banner_Img2.Catagory         = "Electronics";
                    SubOneBannerImagesList.Add(banner_Img2);

                    SubBannerOneImages banner_Img3 = new SubBannerOneImages();
                    string             image_Path3 = AppSetting.Root_Url + "Portals/0/UrbanService/Images/Computer.png";
                    banner_Img3.SubOneImage      = image_Path3;
                    banner_Img3.SubOneImagelabel = "Computer / Laptop";
                    banner_Img3.Catagory         = "Electronics";
                    SubOneBannerImagesList.Add(banner_Img3);

                    SubBannerOneImages banner_Img4 = new SubBannerOneImages();
                    string             image_Path4 = AppSetting.Root_Url + "Portals/0/UrbanService/Images/Washing_Machine.png";
                    banner_Img4.SubOneImage      = image_Path4;
                    banner_Img4.SubOneImagelabel = "Washing Machine";
                    banner_Img4.Catagory         = "Electronics";
                    SubOneBannerImagesList.Add(banner_Img4);

                    SubBannerOneImages banner_Img5 = new SubBannerOneImages();
                    string             image_Path5 = AppSetting.Root_Url + "Portals/0/UrbanService/Images/Geyser.png";
                    banner_Img5.SubOneImage      = image_Path5;
                    banner_Img5.SubOneImagelabel = "Geyser";
                    banner_Img5.Catagory         = "Electrical";
                    SubOneBannerImagesList.Add(banner_Img5);

                    SubBannerOneImages banner_Img6 = new SubBannerOneImages();
                    string             image_Path6 = AppSetting.Root_Url + "Portals/0/UrbanService/Images/Printer.png";
                    banner_Img6.SubOneImage      = image_Path6;
                    banner_Img6.SubOneImagelabel = "Printer";
                    banner_Img6.Catagory         = "Electronics";
                    SubOneBannerImagesList.Add(banner_Img6);

                    //load sub banner two data

                    SubBannerTwoImages bannerTwoImg = new SubBannerTwoImages();
                    string             imagePathTwo = AppSetting.Root_Url + "Portals/0/UrbanService/Images/Electrician.png";
                    bannerTwoImg.SubTwoImage      = imagePathTwo;// "banner.png";
                    bannerTwoImg.SubTwoImagelabel = "Electrician";
                    bannerTwoImg.Catagory         = "Daily Services";
                    SubTwoBannerImagesList.Add(bannerTwoImg);

                    SubBannerTwoImages bannerTwoImg1 = new SubBannerTwoImages();
                    string             imagePathTwo1 = AppSetting.Root_Url + "Portals/0/UrbanService/Images/Plumber.png";
                    bannerTwoImg1.SubTwoImage      = imagePathTwo1;// "banner.png";
                    bannerTwoImg1.SubTwoImagelabel = "Plumber";
                    bannerTwoImg1.Catagory         = "Daily Services";
                    SubTwoBannerImagesList.Add(bannerTwoImg1);

                    SubBannerTwoImages bannerTwoImg2 = new SubBannerTwoImages();
                    string             imagePathTwo2 = AppSetting.Root_Url + "Portals/0/UrbanService/Images/Carpenter.png";
                    bannerTwoImg2.SubTwoImage      = imagePathTwo2;// "banner.png";
                    bannerTwoImg2.SubTwoImagelabel = "Carpenter / Furnitur";
                    bannerTwoImg2.Catagory         = "Daily Services";
                    SubTwoBannerImagesList.Add(bannerTwoImg2);

                    SubBannerTwoImages bannerTwoImg3 = new SubBannerTwoImages();
                    string             imagePathTwo3 = AppSetting.Root_Url + "Portals/0/UrbanService/Images/CivilEnginner.jpg";
                    bannerTwoImg3.SubTwoImage      = imagePathTwo3;// "banner.png";
                    bannerTwoImg3.SubTwoImagelabel = "Civil Engineer";
                    bannerTwoImg3.Catagory         = "Daily Services";
                    SubTwoBannerImagesList.Add(bannerTwoImg3);

                    SubBannerTwoImages bannerTwoImg4 = new SubBannerTwoImages();
                    string             imagePathTwo4 = AppSetting.Root_Url + "Portals/0/UrbanService/Images/PestControl.png";
                    bannerTwoImg4.SubTwoImage      = imagePathTwo4;// "banner.png";
                    bannerTwoImg4.SubTwoImagelabel = "Pest Control";
                    bannerTwoImg4.Catagory         = "Daily Services";
                    SubTwoBannerImagesList.Add(bannerTwoImg4);

                    SubBannerTwoImages bannerTwoImg5 = new SubBannerTwoImages();
                    string             imagePathTwo5 = AppSetting.Root_Url + "Portals/0/UrbanService/Images/Painter.png";
                    bannerTwoImg5.SubTwoImage      = imagePathTwo5;// "banner.png";
                    bannerTwoImg5.SubTwoImagelabel = "Painter";
                    bannerTwoImg5.Catagory         = "Daily Services";
                    SubTwoBannerImagesList.Add(bannerTwoImg5);

                    SubBannerTwoImages bannerTwoImg6 = new SubBannerTwoImages();
                    string             imagePathTwo6 = AppSetting.Root_Url + "Portals/0/UrbanService/Images/fabricator.png";
                    bannerTwoImg6.SubTwoImage      = imagePathTwo6;// "banner.png";
                    bannerTwoImg6.SubTwoImagelabel = "Fabricator";
                    bannerTwoImg6.Catagory         = "Daily Services";
                    SubTwoBannerImagesList.Add(bannerTwoImg6);
                    UserDialogs.Instance.HideLoading();

                    ////get db data to load in subonebanner
                    //HttpClientHelper _apicall = new HttpClientHelper(string.Format(ApiUrls.Url_GetbannerImages, false), Settings.AccessTokenSettings);
                    //var _response = await _apicall.GetResponse<BannerResponse>();
                    //if (_response != null)
                    //{
                    //    if (_response.subOneBanner != null)
                    //    {
                    //        if (_response.subOneBanner.Count > 0)
                    //        {
                    //            foreach (var item in _response.subOneBanner.ToList())
                    //            {
                    //                subonecount++;
                    //                if (subonecount < 8)
                    //                {
                    //                    string filepath = AppSetting.Root_Url + item.ImageData;
                    //                    SubBannerOneImages _bannerImg = new SubBannerOneImages();
                    //                    _bannerImg.ImageId = item.ImageId;
                    //                    _bannerImg.SubOneImage = filepath;
                    //                    _bannerImg.SubOneImagelabel = string.IsNullOrEmpty(item.Description) ? "" : item.Description;
                    //                    //var imageBytes = Convert.FromBase64String(item.ImageData);
                    //                    //_bannerImg.Image = ImageSource.FromStream(() => new MemoryStream(imageBytes));
                    //                    SubOneBannerImagesList.Add(_bannerImg);
                    //                }
                    //            }
                    //        }
                    //        else
                    //        {
                    //            SubBannerOneImages _bannerImg = new SubBannerOneImages();
                    //            string imagePath = AppSetting.Root_Url + "Portals/0/UrbanService/Images/banner.png";
                    //            _bannerImg.SubOneImage = imagePath;// "banner.png";
                    //            _bannerImg.SubOneImagelabel = "Banner Image";
                    //            SubOneBannerImagesList.Add(_bannerImg);
                    //        }
                    //    }
                    //    else
                    //    {
                    //        SubBannerOneImages _bannerImg = new SubBannerOneImages();
                    //        string imagePath = AppSetting.Root_Url + "Portals/0/UrbanService/Images/banner.png";
                    //        _bannerImg.SubOneImage = imagePath;// "banner.png";
                    //        _bannerImg.SubOneImagelabel = "Banner Image";
                    //        SubOneBannerImagesList.Add(_bannerImg);
                    //    }
                    //    if (_response.subTwoBanner != null)
                    //    {
                    //        if (_response.subTwoBanner.Count > 0)
                    //        {
                    //            foreach (var item in _response.subTwoBanner.ToList())
                    //            {
                    //                subtwocount++;
                    //                if (subtwocount < 8)
                    //                {
                    //                    string filepath = AppSetting.Root_Url + item.ImageData;
                    //                SubBannerTwoImages _bannerImg = new SubBannerTwoImages();
                    //                _bannerImg.ImageId = item.ImageId;
                    //                _bannerImg.SubTwoImage = filepath;
                    //                _bannerImg.SubTwoImagelabel = string.IsNullOrEmpty(item.Description) ? "" : item.Description;
                    //                //var imageBytes = Convert.FromBase64String(item.ImageData);
                    //                //_bannerImg.Image = ImageSource.FromStream(() => new MemoryStream(imageBytes));
                    //                SubTwoBannerImagesList.Add(_bannerImg);
                    //                }
                    //            }
                    //        }
                    //        else
                    //        {
                    //            SubBannerTwoImages _bannerImg = new SubBannerTwoImages();
                    //            string imagePath = AppSetting.Root_Url + "Portals/0/UrbanService/Images/banner.png";
                    //            _bannerImg.SubTwoImage = imagePath;// "banner.png";
                    //            _bannerImg.SubTwoImagelabel = "Banner Image";
                    //            SubTwoBannerImagesList.Add(_bannerImg);
                    //        }
                    //    }
                    //    else
                    //    {
                    //        SubBannerTwoImages _bannerImg = new SubBannerTwoImages();
                    //        string imagePath = AppSetting.Root_Url + "Portals/0/UrbanService/Images/banner.png";
                    //        _bannerImg.SubTwoImage = imagePath;// "banner.png";
                    //        _bannerImg.SubTwoImagelabel = "Banner Image";
                    //        SubTwoBannerImagesList.Add(_bannerImg);

                    //        SubBannerOneImages bannerImg = new SubBannerOneImages();
                    //        string _imagePath = AppSetting.Root_Url + "Portals/0/UrbanService/Images/banner.png";
                    //        bannerImg.SubOneImage = _imagePath;// "banner.png";
                    //        bannerImg.SubOneImagelabel = "Banner Image";
                    //        SubOneBannerImagesList.Add(bannerImg);
                    //    }
                    //}
                    //else
                    //{
                    //    SubBannerTwoImages _bannerImg = new SubBannerTwoImages();
                    //    string imagePath = AppSetting.Root_Url + "Portals/0/UrbanService/Images/banner.png";
                    //    _bannerImg.SubTwoImage = imagePath;// "banner.png";
                    //    _bannerImg.SubTwoImagelabel = "Banner Image";
                    //    SubTwoBannerImagesList.Add(_bannerImg);

                    //    SubBannerOneImages bannerImg = new SubBannerOneImages();
                    //    string _imagePath = AppSetting.Root_Url + "Portals/0/UrbanService/Images/banner.png";
                    //    bannerImg.SubOneImage = _imagePath;// "banner.png";
                    //    bannerImg.SubOneImagelabel = "Banner Image";
                    //    SubOneBannerImagesList.Add(bannerImg);
                    //}

                    //SubOneBannerImgs = new ReadOnlyObservableCollection<SubBannerOneImages>(SubOneBannerImagesList);
                    //SubTwoBannerImgs = new ReadOnlyObservableCollection<SubBannerTwoImages>(SubTwoBannerImagesList);
                    //UserDialogs.Instance.HideLoading();
                }
                else
                {
                    UserDialogs.Instance.HideLoading();
                    await Application.Current.MainPage.DisplayAlert("Network", AppConstant.NETWORK_FAILURE, "OK");

                    return;
                }
            }
            catch (Exception ex)
            {
                UserDialogs.Instance.HideLoading();
            }
        }
        /// <summary>
        /// Given a collection, index and item to remove, will try to remove that item
        /// from the index. If the item has duplicates, will verify that only the first
        /// instance was removed.
        /// </summary>
        public void RemoveItemTest(ReadOnlyObservableCollection <string> readOnlyCol, ObservableCollection <string> collection,
                                   int itemIndex, string itemToRemove, bool isSuccessfulRemove, bool hasDuplicates)
        {
            INotifyPropertyChanged readOnlyPropertyChanged = readOnlyCol;

            readOnlyPropertyChanged.PropertyChanged += Collection_PropertyChanged;
            _expectedPropertyChanged = new[]
            {
                new PropertyNameExpected(COUNT),
                new PropertyNameExpected(ITEMARRAY)
            };

            INotifyCollectionChanged readOnlyCollectionChange = readOnlyCol;

            readOnlyCollectionChange.CollectionChanged += Collection_CollectionChanged;

            if (isSuccessfulRemove)
            {
                _expectedCollectionChangedFired++;
            }

            _expectedAction           = NotifyCollectionChangedAction.Remove;
            _expectedNewItems         = null;
            _expectedNewStartingIndex = -1;
            _expectedOldItems         = new string[] { itemToRemove };
            _expectedOldStartingIndex = itemIndex;

            int expectedCount = isSuccessfulRemove ? collection.Count - 1 : collection.Count;

            bool removedItem = collection.Remove(itemToRemove);

            Assert.Equal(expectedCount, readOnlyCol.Count);
            Assert.Equal(_expectedCollectionChangedFired, _numCollectionChangedFired);

            if (isSuccessfulRemove)
            {
                foreach (var item in _expectedPropertyChanged)
                {
                    Assert.True(item.IsFound, "The propertychanged event should have fired for" + item.Name + ", since an item was removed");
                }

                Assert.True(removedItem, "Should have been successful in removing the item.");
            }
            else
            {
                foreach (var item in _expectedPropertyChanged)
                {
                    Assert.False(item.IsFound, "The propertychanged event should have fired for" + item.Name + ", since no items were removed.");
                }

                Assert.False(removedItem, "Should not have been successful in removing the item.");
            }
            if (hasDuplicates)
            {
                return;
            }

            Assert.DoesNotContain(itemToRemove, collection);

            readOnlyCollectionChange.CollectionChanged -= Collection_CollectionChanged;
            readOnlyPropertyChanged.PropertyChanged    -= Collection_PropertyChanged;
        }
Пример #33
0
 public FFmpegLog()
 {
     LogItems = new ReadOnlyObservableCollection <FFmpegLogItem>(_logItems);
 }
Пример #34
0
 /// <summary>
 /// Creates a <see cref="MaxTracker{TValue}"/> for <paramref name="source"/>
 /// </summary>
 /// <typeparam name="TValue">The type of the max value.</typeparam>
 /// <param name="source">The source collection.</param>
 /// <returns>A tracker with Value synced with source.Max()</returns>
 public static MaxTracker <TValue> TrackMax <TValue>(this ReadOnlyObservableCollection <TValue> source)
     where TValue : struct, IComparable <TValue>
 {
     return(new MaxTracker <TValue>(new SimpleChanges <ReadOnlyObservableCollection <TValue>, TValue>(source)));
 }
Пример #35
0
 /// <summary>
 /// Creates a <see cref="MaxTracker{TValue}"/> for <paramref name="source"/>
 /// </summary>
 /// <typeparam name="TItem">The type of the items in <paramref name="source"/></typeparam>
 /// <typeparam name="TValue">The type of the max value.</typeparam>
 /// <param name="source">The source collection.</param>
 /// <param name="selector">The function used when producing a value from an item.</param>
 /// <returns>A tracker with Value synced with source.Max()</returns>
 public static MaxTracker <TValue> TrackMax <TItem, TValue>(this ReadOnlyObservableCollection <TItem> source, Expression <Func <TItem, TValue> > selector)
     where TItem : class, INotifyPropertyChanged
     where TValue : struct, IComparable <TValue>
 {
     return(new MaxTracker <TValue>(new NestedChanges <ReadOnlyObservableCollection <TItem>, TItem, TValue>(source, selector)));
 }
Пример #36
0
 public Model()
 {
     StudentItems = new ReadOnlyObservableCollection <string>(_studentItems);
     GroupItems   = new ReadOnlyObservableCollection <string>(_groupItems);
 }
Пример #37
0
 public MenuViewModel(MenuDefinition definition)
 {
     this.definition = definition ?? throw new ArgumentNullException(nameof(definition));
     items           = definition.Items.ToReadOnlyObservableCollectionOf(d => d.Build());
 }
Пример #38
0
 public MenuViewModel()
 {
     this.definition = CreateDefinition();
     items           = definition.Items.ToReadOnlyObservableCollectionOf(d => d.Build());
 }
 public Parent(int id)
 {
     Id               = id;
     Children         = new ObservableCollection <Person>();
     ChildrenReadonly = new ReadOnlyObservableCollection <Person>(Children);
 }
Пример #40
0
        public IssueDialogViewModel()
        {
            Items = new ReadOnlyObservableCollection <ItemViewModel>(_items);

            AddDummyItems(3);
        }
Пример #41
0
 public static int BinarySearch(this ReadOnlyObservableCollection <ILogItem> Collection, ILogItem Item, ItemNotFoundBehavior ItemNotFoundBehavior = ItemNotFoundBehavior.ReturnMinusOne)
 {
     return(BinarySearch(Collection, Item, 0, Collection.Count - 1, ItemNotFoundBehavior));
 }
Пример #42
0
 public RootPage()
 {
     Children = new ReadOnlyObservableCollection <IWizardPage>(pages);
 }
Пример #43
0
        private void LoadCharacters(bool blnRefreshFavorites = true, bool blnRefreshRecents = true, bool blnRefreshWatch = true)
        {
            ReadOnlyObservableCollection <string> lstFavorites = new ReadOnlyObservableCollection <string>(GlobalOptions.FavoritedCharacters);
            bool     blnAddFavouriteNode = false;
            TreeNode objFavouriteNode    = null;

            TreeNode[] lstFavoritesNodes = null;
            if (blnRefreshFavorites)
            {
                objFavouriteNode = treCharacterList.FindNode("Favourite", false);
                if (objFavouriteNode == null)
                {
                    objFavouriteNode = new TreeNode(LanguageManager.GetString("Treenode_Roster_FavouriteCharacters", GlobalOptions.Language))
                    {
                        Tag = "Favourite"
                    };
                    blnAddFavouriteNode = true;
                }

                lstFavoritesNodes = new TreeNode[lstFavorites.Count];
            }

            IList <string> lstRecents = new List <string>(GlobalOptions.MostRecentlyUsedCharacters);

            List <string> lstWatch = new List <string>();

            if (!string.IsNullOrEmpty(GlobalOptions.CharacterRosterPath) && Directory.Exists(GlobalOptions.CharacterRosterPath))
            {
                string[] objFiles = Directory.GetFiles(GlobalOptions.CharacterRosterPath, "*.chum5");
                for (int i = 0; i < objFiles.Length; ++i)
                {
                    string strFile = objFiles[i];
                    // Make sure we're not loading a character that was already loaded by the MRU list.
                    if (lstFavorites.Contains(strFile) ||
                        lstRecents.Contains(strFile))
                    {
                        continue;
                    }

                    lstWatch.Add(strFile);
                }
            }

            bool     blnAddWatchNode = false;
            TreeNode objWatchNode    = null;

            TreeNode[] lstWatchNodes = null;
            if (blnRefreshWatch)
            {
                objWatchNode = treCharacterList.FindNode("Watch", false);
                if (objWatchNode == null && lstWatch.Count > 0)
                {
                    objWatchNode = new TreeNode(LanguageManager.GetString("Treenode_Roster_WatchFolder", GlobalOptions.Language))
                    {
                        Tag = "Watch"
                    };
                    blnAddWatchNode = true;
                }

                lstWatchNodes = new TreeNode[lstWatch.Count];
            }

            bool     blnAddRecentNode = false;
            TreeNode objRecentNode    = null;

            TreeNode[] lstRecentsNodes = null;
            if (blnRefreshRecents)
            {
                // Add any characters that are open to the displayed list so we can have more than 10 characters listed
                foreach (CharacterShared objCharacterForm in Program.MainForm.OpenCharacterForms)
                {
                    string strFile = objCharacterForm.CharacterObject.FileName;
                    // Make sure we're not loading a character that was already loaded by the MRU list.
                    if (lstFavorites.Contains(strFile) ||
                        lstRecents.Contains(strFile) ||
                        lstWatch.Contains(strFile))
                    {
                        continue;
                    }

                    lstRecents.Add(strFile);
                }

                foreach (string strFavorite in lstFavorites)
                {
                    lstRecents.Remove(strFavorite);
                }

                objRecentNode = treCharacterList.FindNode("Recent", false);
                if (objRecentNode == null && lstRecents.Count > 0)
                {
                    objRecentNode = new TreeNode(LanguageManager.GetString("Treenode_Roster_RecentCharacters", GlobalOptions.Language))
                    {
                        Tag = "Recent"
                    };
                    blnAddRecentNode = true;
                }

                lstRecentsNodes = new TreeNode[lstRecents.Count];
            }
            Parallel.Invoke(
                () => {
                if (objFavouriteNode != null && lstFavoritesNodes != null)
                {
                    object lstFavoritesNodesLock = new object();

                    Parallel.For(0, lstFavorites.Count, i =>
                    {
                        string strFile   = lstFavorites[i];
                        TreeNode objNode = CacheCharacter(strFile);
                        lock (lstFavoritesNodesLock)
                            lstFavoritesNodes[i] = objNode;
                    });

                    if (blnAddFavouriteNode)
                    {
                        for (int i = 0; i < lstFavoritesNodes.Length; i++)
                        {
                            TreeNode objNode = lstFavoritesNodes[i];
                            if (objNode != null)
                            {
                                objFavouriteNode.Nodes.Add(objNode);
                            }
                        }
                    }
                }
            },
                () => {
                if (objRecentNode != null && lstRecentsNodes != null)
                {
                    object lstRecentsNodesLock = new object();

                    Parallel.For(0, lstRecents.Count, i =>
                    {
                        string strFile   = lstRecents[i];
                        TreeNode objNode = CacheCharacter(strFile);
                        lock (lstRecentsNodesLock)
                            lstRecentsNodes[i] = objNode;
                    });

                    if (blnAddRecentNode)
                    {
                        for (int i = 0; i < lstRecentsNodes.Length; i++)
                        {
                            TreeNode objNode = lstRecentsNodes[i];
                            if (objNode != null)
                            {
                                objRecentNode.Nodes.Add(objNode);
                            }
                        }
                    }
                }
            },
                () =>
            {
                if (objWatchNode != null && lstWatchNodes != null)
                {
                    object lstWatchNodesLock = new object();

                    Parallel.For(0, lstWatch.Count, i =>
                    {
                        string strFile   = lstWatch[i];
                        TreeNode objNode = CacheCharacter(strFile);
                        lock (lstWatchNodesLock)
                            lstWatchNodes[i] = objNode;
                    });

                    if (blnAddWatchNode)
                    {
                        for (int i = 0; i < lstWatchNodes.Length; i++)
                        {
                            TreeNode objNode = lstWatchNodes[i];
                            if (objNode != null)
                            {
                                objWatchNode.Nodes.Add(objNode);
                            }
                        }
                    }
                }
            });
            if (objFavouriteNode != null)
            {
                if (blnAddFavouriteNode)
                {
                    treCharacterList.Nodes.Add(objFavouriteNode);
                    objFavouriteNode.Expand();
                }
                else
                {
                    objFavouriteNode.Nodes.Clear();
                    for (int i = 0; i < lstFavoritesNodes.Length; i++)
                    {
                        TreeNode objNode = lstFavoritesNodes[i];
                        if (objNode != null)
                        {
                            objFavouriteNode.Nodes.Add(objNode);
                        }
                    }
                }
            }

            if (objRecentNode != null)
            {
                if (blnAddRecentNode)
                {
                    treCharacterList.Nodes.Add(objRecentNode);
                    objRecentNode.Expand();
                }
                else
                {
                    objRecentNode.Nodes.Clear();
                    for (int i = 0; i < lstRecentsNodes.Length; i++)
                    {
                        TreeNode objNode = lstRecentsNodes[i];
                        if (objNode != null)
                        {
                            objRecentNode.Nodes.Add(objNode);
                        }
                    }
                }
            }
            if (objWatchNode != null)
            {
                if (blnAddWatchNode)
                {
                    treCharacterList.Nodes.Add(objWatchNode);
                    objWatchNode.Expand();
                }
                else
                {
                    objWatchNode.Nodes.Clear();
                    for (int i = 0; i < lstWatchNodes.Length; i++)
                    {
                        TreeNode objNode = lstWatchNodes[i];
                        if (objNode != null)
                        {
                            objWatchNode.Nodes.Add(objNode);
                        }
                    }
                }
            }
            treCharacterList.ExpandAll();
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="MappingView{TSource, TResult}"/> class.
 /// </summary>
 public MappingView(ReadOnlyObservableCollection <TSource> source, Func <TSource, int, TResult> selector, Func <TResult, int, TResult> updater, TimeSpan bufferTime, IScheduler scheduler = null, bool leaveOpen = false, params IObservable <object>[] triggers)
     : this((IEnumerable <TSource>)source, Mapper.Create(selector, updater), bufferTime, scheduler, leaveOpen, triggers)
 {
 }
Пример #45
0
        public void LoadCharacters(bool blnRefreshFavorites = true, bool blnRefreshRecents = true, bool blnRefreshWatch = true, bool blnRefreshPlugins = true)
        {
            _blnSkipUpdate = true;
            ReadOnlyObservableCollection <string> lstFavorites = new ReadOnlyObservableCollection <string>(GlobalOptions.FavoritedCharacters);
            bool     blnAddFavoriteNode = false;
            TreeNode objFavoriteNode    = null;

            TreeNode[] lstFavoritesNodes = null;
            if (blnRefreshFavorites)
            {
                objFavoriteNode = treCharacterList.FindNode("Favorite", false);
                if (objFavoriteNode == null)
                {
                    objFavoriteNode = new TreeNode(LanguageManager.GetString("Treenode_Roster_FavoriteCharacters"))
                    {
                        Tag = "Favorite"
                    };
                    blnAddFavoriteNode = true;
                }

                lstFavoritesNodes = new TreeNode[lstFavorites.Count];
            }

            List <string> lstRecents = new List <string>(GlobalOptions.MostRecentlyUsedCharacters);

            Dictionary <string, string> dicWatch = new Dictionary <string, string>();
            int intWatchFolderCount = 0;

            if (!string.IsNullOrEmpty(GlobalOptions.CharacterRosterPath) && Directory.Exists(GlobalOptions.CharacterRosterPath))
            {
                intWatchFolderCount++;
                foreach (string strFile in Directory.GetFiles(GlobalOptions.CharacterRosterPath, "*.chum5", SearchOption.AllDirectories))
                {
                    // Make sure we're not loading a character that was already loaded by the MRU list.
                    if (lstFavorites.Contains(strFile) ||
                        lstRecents.Contains(strFile))
                    {
                        continue;
                    }
                    FileInfo objInfo = new FileInfo(strFile);
                    if (objInfo.Directory == null || objInfo.Directory.FullName == GlobalOptions.CharacterRosterPath)
                    {
                        dicWatch.Add(strFile, "Watch");
                        continue;
                    }

                    string strNewParent = objInfo.Directory.FullName.Replace(GlobalOptions.CharacterRosterPath + "\\", string.Empty);
                    dicWatch.Add(strFile, strNewParent);
                }

                intWatchFolderCount++;
            }

            bool     blnAddWatchNode = false;
            TreeNode objWatchNode    = null;

            TreeNode[] lstWatchNodes = null;
            if (blnRefreshWatch)
            {
                objWatchNode = treCharacterList.FindNode("Watch", false);
                objWatchNode?.Remove();
                blnAddWatchNode = dicWatch.Count > 0;

                if (blnAddWatchNode)
                {
                    objWatchNode = new TreeNode(LanguageManager.GetString("Treenode_Roster_WatchFolder"))
                    {
                        Tag = "Watch"
                    };
                }

                lstWatchNodes = new TreeNode[intWatchFolderCount];
            }

            bool     blnAddRecentNode = false;
            TreeNode objRecentNode    = null;

            TreeNode[] lstRecentsNodes = null;
            if (blnRefreshRecents)
            {
                // Add any characters that are open to the displayed list so we can have more than 10 characters listed
                foreach (CharacterShared objCharacterForm in Program.MainForm.OpenCharacterForms)
                {
                    string strFile = objCharacterForm.CharacterObject.FileName;
                    // Make sure we're not loading a character that was already loaded by the MRU list.
                    if (lstFavorites.Contains(strFile) ||
                        lstRecents.Contains(strFile) ||
                        dicWatch.ContainsValue(strFile))
                    {
                        continue;
                    }

                    lstRecents.Add(strFile);
                }

                foreach (string strFavorite in lstFavorites)
                {
                    lstRecents.Remove(strFavorite);
                }

                objRecentNode = treCharacterList.FindNode("Recent", false);
                if (objRecentNode == null && lstRecents.Count > 0)
                {
                    objRecentNode = new TreeNode(LanguageManager.GetString("Treenode_Roster_RecentCharacters"))
                    {
                        Tag = "Recent"
                    };
                    blnAddRecentNode = true;
                }

                lstRecentsNodes = new TreeNode[lstRecents.Count];
            }

            Parallel.Invoke(
                () =>
            {
                if (lstFavoritesNodes == null || lstFavorites.Count <= 0)
                {
                    return;
                }
                Parallel.For(0, lstFavorites.Count, i => lstFavoritesNodes[i] = CacheCharacter(lstFavorites[i]));
                if (blnAddFavoriteNode && objFavoriteNode != null)
                {
                    foreach (TreeNode objNode in lstFavoritesNodes)
                    {
                        if (objNode != null)
                        {
                            objFavoriteNode.Nodes.Add(objNode);
                        }
                    }
                }
            },
                () =>
            {
                if (lstRecentsNodes == null || lstRecents.Count <= 0)
                {
                    return;
                }
                Parallel.For(0, lstRecents.Count, i => lstRecentsNodes[i] = CacheCharacter(lstRecents[i]));
                if (blnAddRecentNode && objRecentNode != null)
                {
                    foreach (TreeNode objNode in lstRecentsNodes)
                    {
                        if (objNode != null)
                        {
                            objRecentNode.Nodes.Add(objNode);
                        }
                    }
                }
            },
                () =>
            {
                if (objWatchNode == null || !blnAddWatchNode || dicWatch.Count <= 0)
                {
                    return;
                }
                ConcurrentDictionary <TreeNode, string> dicWatchNodes = new ConcurrentDictionary <TreeNode, string>();
                Parallel.ForEach(dicWatch, kvpLoop => dicWatchNodes.TryAdd(CacheCharacter(kvpLoop.Key), kvpLoop.Value));
                foreach (string s in dicWatchNodes.Values.Distinct())
                {
                    if (s == "Watch")
                    {
                        continue;
                    }
                    objWatchNode.Nodes.Add(new TreeNode(s)
                    {
                        Tag = s
                    });
                }
                foreach (KeyValuePair <TreeNode, string> kvtNode in dicWatchNodes)
                {
                    if (kvtNode.Value == "Watch")
                    {
                        objWatchNode.Nodes.Add(kvtNode.Key);
                    }
                    else
                    {
                        foreach (TreeNode objNode in objWatchNode.Nodes)
                        {
                            if (objNode.Tag.ToString() == kvtNode.Value)
                            {
                                objNode.Nodes.Add(kvtNode.Key);
                            }
                        }
                    }
                }
            },
                async() =>
            {
                foreach (IPlugin plugin in Program.PluginLoader.MyActivePlugins)
                {
                    List <TreeNode> lstNodes = await Task.Run(async() =>
                    {
                        Log.Info("Starting new Task to get CharacterRosterTreeNodes for plugin:" + plugin);
                        ICollection <TreeNode> lstTreeNodes = await plugin.GetCharacterRosterTreeNode(this, blnRefreshPlugins);
                        return(lstTreeNodes?.OrderBy(a => a.Text).ToList() ?? new List <TreeNode>());
                    });
                    await Task.Run(() =>
                    {
                        foreach (TreeNode node in lstNodes)
                        {
                            TreeNode objExistingNode = treCharacterList.Nodes.Cast <TreeNode>().FirstOrDefault(x => x.Text == node.Text && x.Tag == node.Tag);
                            Program.MainForm.DoThreadSafe(() =>
                            {
                                try
                                {
                                    if (objExistingNode != null)
                                    {
                                        treCharacterList.DoThreadSafe(() => treCharacterList.Nodes.Remove(objExistingNode));
                                    }

                                    if (node.Nodes.Count > 0 || !string.IsNullOrEmpty(node.ToolTipText) ||
                                        node.Tag != null)
                                    {
                                        if (treCharacterList.IsNullOrDisposed())
                                        {
                                            return;
                                        }
                                        treCharacterList.DoThreadSafe(() =>
                                        {
                                            if (treCharacterList.Nodes.ContainsKey(node.Name))
                                            {
                                                treCharacterList.Nodes.RemoveByKey(node.Name);
                                            }
                                            treCharacterList.Nodes.Insert(1, node);
                                        });
                                    }

                                    node.Expand();
                                }
                                catch (ObjectDisposedException e)
                                {
                                    Log.Trace(e);
                                }
                                catch (InvalidAsynchronousStateException e)
                                {
                                    Log.Trace(e);
                                }
                                catch (ArgumentException e)
                                {
                                    Log.Trace(e);
                                }
                                catch (Exception e)
                                {
                                    Log.Warn(e);
                                }
                            });
                        }
                        Log.Info("Task to get and add CharacterRosterTreeNodes for plugin " + plugin + " finished.");
                    });
                }
            });
            Log.Info("Populating CharacterRosterTreeNode (MainThread).");
            treCharacterList.SuspendLayout();
            if (objFavoriteNode != null)
            {
                if (blnAddFavoriteNode)
                {
                    treCharacterList.Nodes.Add(objFavoriteNode);
                    objFavoriteNode.Expand();
                }
                else
                {
                    objFavoriteNode.Nodes.Clear();
                    foreach (TreeNode objNode in lstFavoritesNodes)
                    {
                        if (objNode != null)
                        {
                            objFavoriteNode.Nodes.Add(objNode);
                        }
                    }
                }
            }

            if (objRecentNode != null)
            {
                if (blnAddRecentNode)
                {
                    treCharacterList.Nodes.Add(objRecentNode);
                    objRecentNode.Expand();
                }
                else
                {
                    try
                    {
                        objRecentNode.Nodes.Clear();
                        foreach (TreeNode objNode in lstRecentsNodes)
                        {
                            if (objNode != null)
                            {
                                objRecentNode.Nodes.Add(objNode);
                            }
                        }
                    }
                    catch (ObjectDisposedException e)
                    {
                        //just swallow this
                        Log.Trace(e, "ObjectDisposedException can be ignored here.");
                    }
                }
            }
            if (objWatchNode != null)
            {
                if (blnAddWatchNode)
                {
                    treCharacterList.Nodes.Add(objWatchNode);
                    objWatchNode.Expand();
                }
                else
                {
                    objWatchNode.Nodes.Clear();
                    foreach (TreeNode objNode in lstWatchNodes)
                    {
                        if (objNode != null)
                        {
                            objWatchNode.Nodes.Add(objNode);
                        }
                    }
                }
            }
            treCharacterList.ExpandAll();
            treCharacterList.ResumeLayout();
            UpdateCharacter(treCharacterList.SelectedNode?.Tag as CharacterCache);
            _blnSkipUpdate = false;
        }
Пример #46
0
 public static INotifyCollectionChanged AsINPC <T>(this ReadOnlyObservableCollection <T> source)
 {
     Contract.Requires(source != null);
     return((INotifyCollectionChanged)source);
 }
Пример #47
0
 public SourceFilter()
 {
     sourceFilters = new ObservableCollection <SourceFilterItem>();
     SourceFilters = new ReadOnlyObservableCollection <SourceFilterItem>(sourceFilters);
 }
        public MarbleDiagramScreenViewModel(IConcurrencyService concurrencyService)
        {
            var itemGroups = new ObservableCollectionExtended <MarbleObservableItemGroup>();

            ObservableItemGroups = new ReadOnlyObservableCollection <MarbleObservableItemGroup>(itemGroups);

            this.WhenActivated(disposables =>
            {
                itemGroups.Clear();

                var instances = ObservableInstances
                                .TakeUntilDisposed(disposables)
                                .Publish();

                var observableItems = instances
                                      .Transform(obs => Observable.Return(new MarbleObservableItem(concurrencyService)
                {
                    ObservableInstance = obs
                })
                                                 .Expand(item => item.ObservableInstance.Inputs.Select(input => new MarbleObservableItem(concurrencyService)
                {
                    ObservableInstance = input, PrimarySink = item
                }))
                                                 .ToObservableChangeSet(obs => obs.ObservableInstance.ObservableId))
                                      .RemoveKey()
                                      .AsObservableList()
                                      .Or();

                var observableItemsGroupedByCall = observableItems
                                                   .Group(item => item.ObservableInstance.Call.InstrumentedCallId)
                                                   .Transform(group =>
                {
                    var firstItem = group.Cache.Items.First();
                    var observableItemsInGroup = new ObservableCollectionExtended <MarbleObservableItem>();
                    group.Cache.Connect()
                    .OnItemAdded(obsItem => obsItem.Activator.Activate().DisposeWith(disposables))
                    .Sort(Utility.Comparer <MarbleObservableItem> .ByKey(x => x.GetOrdering(), EnumerableComparer <long> .LongerBeforeShorter))
                    .SubscribeOn(concurrencyService.TaskPoolRxScheduler)
                    .ObserveOn(concurrencyService.DispatcherRxScheduler)
                    .Bind(observableItemsInGroup)
                    .Subscribe()
                    .DisposeWith(disposables);

                    return(new MarbleObservableItemGroup(firstItem.GetOrdering(), firstItem.ObservableInstance.Call, new ReadOnlyObservableCollection <MarbleObservableItem>(observableItemsInGroup), concurrencyService));
                });

                observableItemsGroupedByCall
                .Sort(Utility.Comparer <MarbleObservableItemGroup> .ByKey(x => x.Ordering, EnumerableComparer <long> .LongerBeforeShorter))
                .SubscribeOn(concurrencyService.TaskPoolRxScheduler)
                .ObserveOn(concurrencyService.DispatcherRxScheduler)
                .Bind(itemGroups)
                .Subscribe()
                .DisposeWith(disposables);

                instances
                .Minimum(obs => obs.Created.Timestamp.Ticks)
                .DistinctUntilChanged()
                .Select(ticks => new DateTime(ticks, DateTimeKind.Utc))
                .SubscribeOn(concurrencyService.TaskPoolRxScheduler)
                .ObserveOn(concurrencyService.DispatcherRxScheduler)
                .ToProperty(this, x => x.StartTime, out mStartTime)
                .DisposeWith(disposables);

                instances.Connect();
            });
        }
Пример #49
0
 public ActionsDatabase()
 {
     _actions = new ObservableCollection <ActionEntry>();
     Actions  = new ReadOnlyObservableCollection <ActionEntry>(_actions);
 }
Пример #50
0
 static Logger()
 {
     LogItems = new ReadOnlyObservableCollection <LogItem>(logItems);
 }
Пример #51
0
 public QueryResultVm()
 {
     TreeNodes = new ReadOnlyObservableCollection<CodeTree>(_pointcuts);
 }
Пример #52
0
 protected AudioSource()
 {
     AvailableRecordingSources = new ReadOnlyObservableCollection <IAudioItem>(RecordingSources);
     AvailableLoopbackSources  = new ReadOnlyObservableCollection <IAudioItem>(LoopbackSources);
 }
Пример #53
0
 public ObservableCollectionPlus(IEnumerable <T> collection)
     : base(collection)
 {
     m_roCollection = new ReadOnlyObservableCollection <T>(this);
     m_lock         = new WrappedLock(BeforeMultiUpdate, finishMultiUpdate);
 }
 public ObservableSoundService()
 {
     _activeSounds = new ObservableCollection <ISound>();
     ActiveSounds  = new ReadOnlyObservableCollection <ISound>(_activeSounds);
 }
 public TypeLibraries()
 {
     _libraries      = new ObservableCollection <TypeLibrary>();
     LoadedLibraries = new ReadOnlyObservableCollection <TypeLibrary>(_libraries);
 }
 public SaveDataSlotSelectorViewModel()
 {
     Accounts = new ReadOnlyObservableCollection <SaveDataAccountViewModel <T> >(accounts);
 }
Пример #57
0
        private void MediaCharactersChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            if (e.NewItems != null)
            {
                foreach (MediaCharacter character in e.NewItems)
                {
                    foreach (MediaTag tag in character.Tags)
                    {
                        if (!_allCharacterTags.Contains(tag.Text))
                        {
                            _allCharacterTags.Add(tag.Text);
                        }
                    }
                    if (!_allCharacterNames.Contains(character.Name))
                    {
                        _allCharacterNames.Add(character.Name);
                    }
                    ((INotifyCollectionChanged)character.Tags).CollectionChanged += MediaCharacterTagsChanged;
                }
            }
            if (e.OldItems != null)
            {
                foreach (MediaCharacter oldCharacter in e.OldItems)
                {
                    ReadOnlyObservableCollection <MediaTag> oldTags = oldCharacter.Tags;
                    bool removeCharacterName = true;

                    foreach (MediaCollection collection in _mediaCollections)
                    {
                        foreach (Media media in collection.Media)
                        {
                            foreach (MediaCharacter character in media.Metadata.Characters)
                            {
                                if (character.Name == oldCharacter.Name)
                                {
                                    removeCharacterName = false;
                                }
                            }
                        }
                    }

                    foreach (MediaTag oldTag in oldTags)
                    {
                        bool removeTag = true;
                        foreach (MediaCollection collection in _mediaCollections)
                        {
                            foreach (Media media in collection.Media)
                            {
                                foreach (MediaCharacter character in media.Metadata.Characters)
                                {
                                    if (character.Name == oldCharacter.Name)
                                    {
                                        removeCharacterName = false;
                                    }

                                    foreach (MediaTag tag in character.Tags)
                                    {
                                        if (tag.Text == oldTag.Text)
                                        {
                                            removeTag = false;
                                        }
                                    }
                                }
                            }
                        }
                        if (removeTag)
                        {
                            _allCharacterTags.Remove(oldTag.Text);
                        }
                    }
                    if (removeCharacterName)
                    {
                        _allCharacterNames.Remove(oldCharacter.Name);
                    }
                }
            }
        }
 public Parent(int id, IEnumerable <Person> children)
 {
     Id               = id;
     Children         = new ObservableCollection <Person>(children);
     ChildrenReadonly = new ReadOnlyObservableCollection <Person>(Children);
 }
Пример #59
0
 public RecentViewModel(Settings Settings,
                        IRecentList Recent)
     : base(Settings)
 {
     Items = Recent.Items;
 }
Пример #60
0
 static MastodonAuthenticationHouse()
 {
     Authes = new ReadOnlyObservableCollection <MastodonAuthentication>(_authes);
 }