public void AddAfterAction(ObservableCollection<ItemData> selectedItems, RangeObservableCollection<ItemData> itemsSource) { var selectedItem = GetSelectedItem(selectedItems); if (selectedItem == null) return; var newItem = AddNew(selectedItem.ItemId, itemsSource); if (newItem != null) itemsSource.Add(newItem); }
public void Performance_MonitorNumberOfAllocatedThreads() { int maxNumberOfThreads = 0; int currentNumberOfThreads = Process.GetCurrentProcess().Threads.Count; Console.WriteLine("Number of threads before run {0}", currentNumberOfThreads); for (int j = 0; j < 100; j++) { var collection = new RangeObservableCollection <int>(); for (int i = 0; i < 100; i++) { collection.Add(i); if (i % 10 == 0) { int tmp = Process.GetCurrentProcess().Threads.Count; if (tmp > maxNumberOfThreads) { maxNumberOfThreads = tmp; } } } } Console.WriteLine("Max number of threads {0}", maxNumberOfThreads); Assert.That(maxNumberOfThreads - currentNumberOfThreads, Is.LessThan(10), "too many threads created"); }
public void ApplyPropertyChanges_AddSomeVisiblesOthersNotAndReplaceOriginalList_GetsNewVisibleItems() { ///Arrange var visibleItemsList = new RangeObservableCollection <VisibleItem> (); for (int i = 0; i < 10; i++) { visibleItemsList.Add(new VisibleItem() { Visible = (i % 2 == 0) }); } ///Act var target = new VisibleRangeObservableProxy <VisibleItem> (visibleItemsList); var newVisibleItemsList = new RangeObservableCollection <VisibleItem> (); for (int i = 0; i < 5; i++) { newVisibleItemsList.Add(new VisibleItem() { Visible = (i % 2 == 0) }); } visibleItemsList.Reset(newVisibleItemsList); target.ApplyPropertyChanges(); ///Assert Assert.AreEqual(3, target.Count); }
public void CollectionChanges() { var numbers = new RangeObservableCollection <int>(Enumerable.Range(1, 10)); var values = new BlockingCollection <int>(); using (var expr = ActiveExpression.Create(p1 => p1[5], numbers)) { var disconnect = expr.OnPropertyChanged(ae => ae.Value, value => values.Add(value)); values.Add(expr.Value); numbers.Add(11); numbers.Insert(0, 0); numbers.Remove(11); numbers.Remove(0); numbers[4] = 50; numbers[4] = 5; numbers[5] = 60; numbers[5] = 6; numbers[6] = 70; numbers[6] = 7; numbers.Move(0, 1); numbers.Move(0, 1); numbers.MoveRange(0, 5, 5); numbers.MoveRange(0, 5, 5); numbers.MoveRange(5, 0, 5); numbers.MoveRange(5, 0, 5); numbers.Reset(numbers.Select(i => i * 10).ToImmutableArray()); disconnect(); } Assert.IsTrue(new int[] { 6, 5, 6, 60, 6, 1, 6, 1, 6, 60 }.SequenceEqual(values)); }
private async void UpdateViewModel() { var profile = AppState.Data.Profile; if (!AppState.Data.DefinitionsLoaded || profile == null) { return; } viewIsUpdating = true; triumphs.Clear(); PresentationNodeDef = await Definitions.GetPresentationNode(presentationNodeHash); if (PresentationNodeDef == null) { return; } foreach (var childRecord in PresentationNodeDef.Children.Records) { var recordDefinition = await Definitions.GetRecord(childRecord.RecordHash); var triumph = new Triumph { Definition = recordDefinition, Hash = childRecord.RecordHash, Objectives = new List <Objective>(), Record = Triumph.FindRecordInProfileOrDefault(childRecord.RecordHash.ToString(), profile) }; if (triumph.Record == null) { Log.Info($"Triumph {childRecord.RecordHash} is missing its record from profile data"); } foreach (var objectiveProgress in triumph.ObjectiveProgresses) { if (objectiveProgress == null) { continue; } var obj = new Objective { Progress = objectiveProgress }; await obj.PopulateDefinition(); triumph.Objectives.Add(obj); } triumphs.Add(triumph); } viewIsUpdating = false; UpdateSelection(); }
public void AddRootAction(RangeObservableCollection<ItemData> itemsSource) { if (itemsSource == null || !itemsSource.Any()) { var newItem = AddNew("", 0, 0, itemsSource); itemsSource.Add(newItem); } }
public void Read_CheckLengthAfterAdd_LengthIsUpdated() { var col = new RangeObservableCollection <int>(); col.Add(1); col.Count.Should().Be(1); }
public void Read_CheckLengthAfterAdd_LengthIsUpdated() { var col = new RangeObservableCollection <int>(); col.Add(1); Assert.That(col.Count, Is.EqualTo(1)); }
public void Write_AddElement_ElementAdded() { var col = new RangeObservableCollection <string>(); col.Add("a"); col.First().Should().Be("a"); }
public DiagnosticsViewModel(IDiagnosticsService diagnosticsService, ISchedulerService schedulerService) { Id = string.Format("Identifier: {0}", Guid.NewGuid()); Rps = Constants.DefaultRpsString; Cpu = Constants.DefaultCpuString; ManagedMemory = Constants.DefaultManagedMemoryString; TotalMemory = Constants.DefaultTotalMemoryString; _log = new RangeObservableCollection <string>(); _disposable = new CompositeDisposable { diagnosticsService.Log .ObserveOn(schedulerService.Dispatcher) .Subscribe(x => _log.Add(x), e => { Logger.Error(e); _log.Clear(); }), diagnosticsService.Rps .Select(FormatRps) .ObserveOn(schedulerService.Dispatcher) .Subscribe(x => Rps = x, e => { Logger.Error(e); Rps = Constants.DefaultRpsString; }), diagnosticsService.Cpu .Select(FormatCpu) .ObserveOn(schedulerService.Dispatcher) .Subscribe(x => Cpu = x, e => { Logger.Error(e); Cpu = Constants.DefaultCpuString; }), diagnosticsService.Memory .Select(FormatMemory) .ObserveOn(schedulerService.Dispatcher) .Subscribe(x => { ManagedMemory = x.ManagedMemory; TotalMemory = x.TotalMemory; }, e => { Logger.Error(e); ManagedMemory = Constants.DefaultManagedMemoryString; TotalMemory = Constants.DefaultTotalMemoryString; }) }; }
public async Task AddProfileAsync(string profileName) { var profile = new Profile(profileName, _entityService.Entities); profile.Changed += ProfileOnChanged; _profiles.Add(profile); await UpdateProfileAsync(profile); }
async Task LoadGroup(Album album, RangeObservableCollection <PhotoGroup> Items) { var photoGroup = new PhotoGroup(album.Title, album); var photos = await App.jsonPlaceholder.GetPhotosAsync(photoGroup.Album); photoGroup.ClearRange(); photoGroup.AddRange(photos); Items.Add(photoGroup); //await Task.Delay(1000); }
public void TestSyncViewModel() { model.RemoveAt(0); Assert.AreEqual(1, viewModel.ViewModels.Count); model.RemoveAt(0); Assert.AreEqual(0, viewModel.ViewModels.Count); model.Add(new BindableBase()); Assert.AreEqual(1, viewModel.ViewModels.Count); model [0] = new BindableBase(); Assert.AreEqual(1, viewModel.ViewModels.Count); }
/// <summary> /// Getting the currently filtered/grouped items from the DataGrid /// </summary> private void SetGroupedData() { string methodNamespace = String.Format("{0}.{1}", GetType().FullName, System.Reflection.MethodInfo.GetCurrentMethod().Name); Logging.LogBeginMethod(this.DataContextPortfolioDetails.Logger, methodNamespace); try { RangeObservableCollection <PortfolioDetailsData> collection = new RangeObservableCollection <PortfolioDetailsData>(); foreach (PortfolioDetailsData item in dgPortfolioDetails.Items) { PortfolioDetailsData data = new PortfolioDetailsData(); data.ActivePosition = item.ActivePosition; data.AsecSecShortName = item.AsecSecShortName; data.AshEmmModelWeight = item.AshEmmModelWeight; data.BalanceNominal = item.BalanceNominal; data.BenchmarkWeight = item.BenchmarkWeight; data.DirtyValuePC = item.DirtyValuePC; data.IndustryName = item.IndustryName; data.IsoCountryCode = item.IsoCountryCode; data.IssueName = item.IssueName; data.MarketCapUSD = item.MarketCapUSD; data.PortfolioDirtyValuePC = item.PortfolioDirtyValuePC; data.PortfolioWeight = item.PortfolioWeight; data.ProprietaryRegionCode = item.ProprietaryRegionCode; data.ReAshEmmModelWeight = item.ReAshEmmModelWeight; data.ReBenchmarkWeight = item.ReBenchmarkWeight; data.RePortfolioWeight = item.RePortfolioWeight; data.SectorName = item.SectorName; data.SecurityType = item.SecurityType; data.SubIndustryName = item.SubIndustryName; data.Ticker = item.Ticker; data.MarketCap = item.MarketCap; data.Upside = item.Upside; data.ForwardPE = item.ForwardPE; data.ForwardPBV = item.ForwardPBV; data.ForwardEB_EBITDA = item.ForwardEB_EBITDA; data.RevenueGrowthCurrentYear = item.RevenueGrowthCurrentYear; data.RevenueGrowthNextYear = item.RevenueGrowthNextYear; data.NetIncomeGrowthCurrentYear = item.NetIncomeGrowthCurrentYear; data.NetIncomeGrowthNextYear = item.NetIncomeGrowthNextYear; data.ROE = item.ROE; data.NetDebtEquity = item.NetDebtEquity; data.FreecashFlowMargin = item.FreecashFlowMargin; collection.Add(data); } DataContextPortfolioDetails.GroupedFilteredPortfolioDetailsData = collection; } catch (Exception ex) { Prompt.ShowDialog("Message: " + ex.Message + "\nStackTrace: " + Logging.StackTraceToString(ex), "Exception", MessageBoxButton.OK); Logging.LogException(this.DataContextPortfolioDetails.Logger, ex); } }
public void Write_ComplexOperation_CollectionUpdatedProperly() { var col = new RangeObservableCollection <string>(new[] { "a", "b", "c" }); col.Add("d"); col.Remove("b"); col.Insert(0, "x"); col.AddRange(new[] { "z", "f", "y" }); col.RemoveAt(4); col.RemoveRange(new[] { "y", "c" }); col[2] = "p"; CollectionAssert.AreEquivalent(new[] { "x", "a", "p", "f" }, col); }
public void AddSiblingAction(ObservableCollection<ItemData> selectedItems, RangeObservableCollection<ItemData> itemsSource) { var selectedItem = GetSelectedItem(selectedItems); if (selectedItem != null) { if (selectedItem.ItemParentId.IsNullOrEmpty()) { AddAfterAction(selectedItems, itemsSource); return; } var newItem = AddNew(selectedItem.ItemParentId, itemsSource); itemsSource.Add(newItem); } }
public void Write_FiresAddEvent() { var col = new RangeObservableCollection <string>(); string received = string.Empty; col.CollectionChanged += (sender, args) => { if (args.Action == NotifyCollectionChangedAction.Add) { received = args.NewItems.OfType <string>().First(); } }; col.Add("a"); Assert.That(received, Is.EqualTo("a")); }
private void UpdateEntities(IEnumerable <Entity> entities) { foreach (var entity in entities) { var updatedEntity = _entities.SingleOrDefault(x => x.Id == entity.Id); if (updatedEntity is not null) { updatedEntity.UpdateWith(entity); } else if (TryUpdateEntity(entity)) { _entities.Add(entity); } } }
public ResumeEpisodesViewModel(Task<TvView> tvViewTask, IApiClient apiClient, IImageManager imageManager, IServerEvents serverEvents, INavigator navigator, ISessionManager sessionManager, IPlaybackManager playbackManager) { _apiClient = apiClient; _imageManager = imageManager; _serverEvents = serverEvents; _navigator = navigator; _sessionManager = sessionManager; _playbackManager = playbackManager; Episodes = new RangeObservableCollection<ItemTileViewModel>(); for (int i = 0; i < 3; i++) { Episodes.Add(CreateEpisodeItem()); } IsVisible = true; LoadItems(tvViewTask); }
public LatestTrailersViewModel(Task<MoviesView> moviesViewTask, IApiClient apiClient, IImageManager imageManager, IServerEvents serverEvents, INavigator navigator, ISessionManager sessionManager, IPlaybackManager playbackManager) { _apiClient = apiClient; _imageManager = imageManager; _serverEvents = serverEvents; _navigator = navigator; _sessionManager = sessionManager; _playbackManager = playbackManager; Trailers = new RangeObservableCollection<ItemTileViewModel>(); for (int i = 0; i < 8; i++) { Trailers.Add(CreateMovieItem()); } IsVisible = true; LoadItems(moviesViewTask); }
private void InitializeCollections() { Clients = new ObservableCollection <IClient>(clientManager.Clients); Books = new ObservableCollection <IBook>(bookManager.Books); Users = new ObservableCollection <IUser>(userManager.Users); SearchedRequests = new RangeObservableCollection <IRequestForQuote>(); TodaysRequests = new RangeObservableCollection <IRequestForQuote>(); Requests = new RangeObservableCollection <IRequestForQuote>(); Requests = new RangeObservableCollection <IRequestForQuote>(); Users = new ObservableCollection <IUser>(); // TODO change Java BE to use text. Status = new List <string>(); foreach (var status in Enum.GetNames(typeof(StatusEnum))) { Status.Add(status); } if (configManager.IsStandAlone) { TodaysRequests.Add(new RequestForQuoteImpl() { Request = "C 100 23Dec2013 0001.HK", Status = StatusEnum.PENDING, Identifier = 1, Client = Clients[0], TradeDate = DateTime.Today, NotionalCurrency = CurrencyEnum.EUR, BookCode = "AB01", HedgeType = HedgeTypeEnum.SHARES }); TodaysRequests.Add(new RequestForQuoteImpl() { Request = "P 110 23Dec2013 0002.HK", Status = StatusEnum.FILLED, Identifier = 2, Client = Clients[1], TradeDate = DateTime.Today, NotionalCurrency = CurrencyEnum.EUR, BookCode = "AB02", HedgeType = HedgeTypeEnum.SHARES }); TodaysRequests.Add(new RequestForQuoteImpl() { Request = "C+P 90 23Dec2013 0003.HK", Status = StatusEnum.PICKEDUP, Identifier = 3, Client = Clients[2], TradeDate = DateTime.Today, NotionalCurrency = CurrencyEnum.HKD, BookCode = "AB01", HedgeType = HedgeTypeEnum.SHARES }); TodaysRequests.Add(new RequestForQuoteImpl() { Request = "C-P 100 23Dec2013 0004.HK", Status = StatusEnum.TRADEDAWAY, Identifier = 4, Client = Clients[0], TradeDate = DateTime.Today, NotionalCurrency = CurrencyEnum.USD, BookCode = "AB02", HedgeType = HedgeTypeEnum.SHARES }); TodaysRequests.Add(new RequestForQuoteImpl() { Request = "2C 120 23Dec2013 0005.HK", Status = StatusEnum.PENDING, Identifier = 5, Client = Clients[1], TradeDate = new DateTime(2013, 6, 21), NotionalCurrency = CurrencyEnum.GBP, BookCode = "AB03", HedgeType = HedgeTypeEnum.SHARES }); TodaysRequests.Add(new RequestForQuoteImpl() { Request = "-2C 100 23Dec2013 0006.HK", Status = StatusEnum.TRADEDAWAY, Identifier = 6, Client = Clients[2], TradeDate = new DateTime(2013, 6, 23), NotionalCurrency = CurrencyEnum.SGD, BookCode = "AB03", HedgeType = HedgeTypeEnum.SHARES }); } else { TodaysRequests.AddRange(optionRequestPersistanceManager.GetRequestsForToday(true)); } Requests.AddRange(TodaysRequests); NotifyPropertyChanged("Requests"); }
public void ExpressionlessSourceManipulation() { var numbers = new RangeObservableCollection <int>(System.Linq.Enumerable.Range(0, 10)); using (var query = numbers.ActiveFirst()) { Assert.IsNull(query.OperationFault); Assert.AreEqual(0, query.Value); numbers.Remove(0); Assert.AreEqual(1, query.Value); numbers.Clear(); Assert.IsNotNull(query.OperationFault); Assert.AreEqual(0, query.Value); numbers.Add(30); Assert.IsNull(query.OperationFault); Assert.AreEqual(30, query.Value); } }
public void SourceManipulation() { var numbers = new RangeObservableCollection <int>(System.Linq.Enumerable.Range(0, 10)); using (var query = numbers.ActiveFirstOrDefault(i => i % 3 == 0)) { Assert.IsNull(query.OperationFault); Assert.AreEqual(0, query.Value); numbers.Remove(0); Assert.AreEqual(3, query.Value); numbers.RemoveAll(i => i % 3 == 0); Assert.IsNull(query.OperationFault); Assert.AreEqual(0, query.Value); numbers.Add(30); Assert.IsNull(query.OperationFault); Assert.AreEqual(30, query.Value); } }
public RecommendationsViewModel(BaseItemDto item, IApiClient apiClient, IImageManager imageManager, IServerEvents serverEvents, INavigator navigator, ISessionManager sessionManager, IPlaybackManager playbackManager) { _item = item; _apiClient = apiClient; _imageManager = imageManager; _serverEvents = serverEvents; _navigator = navigator; _sessionManager = sessionManager; _playbackManager = playbackManager; Items = new RangeObservableCollection<ItemTileViewModel>(); for (int i = 0; i < 6; i++) { Items.Add(CreateItem()); } IsVisible = true; LoadItems(); }
// Gets all relavent info for each video and determines how it should be displayed. public PlaylistPage(string playList, string title) { System.Diagnostics.Debug.WriteLine("PlayList Selected : " + playList); //sets the background color based on settings if (Helpers.Settings.ContrastSetting == true) { BackgroundColor = Colors.contrastBg; } else { BackgroundColor = Colors.background; } Title = playList; // Holds data to be displayed on this content page. RangeObservableCollection<OnlineVViewModel> tmp = AmazonUtils.getOnlineVList; vids = new RangeObservableCollection<OnlineVViewModel>(); for (int i = 0; i < tmp.Count; i++) { if (tmp [i].Description.Length > 110) { tmp [i].Description = tmp [i].Description.Substring (0, 110) + "..."; } if (tmp[i].Playlist.Equals(playList)) { vids.Add(tmp[i]); } } ListView VidLstView = new ListView(); // View type for this content page. VidLstView.RowHeight = 100; // Set size (height) of each element displayed on this page. this.Title = title; // Set the title of this page. VidLstView.ItemsSource = vids; // Set the source of data for page's list view. VidLstView.BackgroundColor = BackgroundColor; VidLstView.ItemTemplate = new DataTemplate(typeof(VideoCell)); // Set layout for each element in this list view. VidLstView.ItemSelected += Onselected; // Set behavior of element when selected by user. Content = VidLstView; // Assign the list view created above to this content page. // Accomodate iPhone status bar. this.Padding = new Thickness(10, Device.OnPlatform(20, 0, 0), 10, 5); }
private RangeObservableCollection <BeatmapExtensionEx> GetBeatmaps(string url) { var beatmaps = new RangeObservableCollection <BeatmapExtensionEx>(); var jsonResponse = _client.DownloadString(url); if (jsonResponse == "Please provide a valid API key.") { throw new Exception("Invalid osu!Api key"); } //jsonResponse = jsonResponse.Trim(']', '['); if (jsonResponse.Trim(' ') == string.Empty) { return(null); } var jsonArray = JArray.Parse(jsonResponse); foreach (var json in jsonArray) { var beatmap = new BeatmapExtensionEx(); beatmap.MapSetId = int.Parse(json["beatmapset_id"].ToString()); beatmap.MapId = int.Parse(json["beatmap_id"].ToString()); beatmap.DiffName = json["version"].ToString(); beatmap.Md5 = json["file_md5"].ToString(); beatmap.ArtistRoman = json["artist"].ToString(); beatmap.TitleRoman = json["title"].ToString(); beatmap.Creator = json["creator"].ToString(); var approvedDate = json["approved_date"]; beatmap.ApprovedDate = approvedDate != null?approvedDate.Value <DateTime?>() ?? DateTime.MinValue : DateTime.MinValue; beatmap.ModPpStars.Add(PlayMode.Osu, new Dictionary <int, double>() { { 0, Math.Round(double.Parse(json["difficultyrating"].ToString(), CultureInfo.InvariantCulture), 2) } }); beatmap.GenreId = Int32.Parse(json["genre_id"].ToString()); beatmap.LanguageId = Int32.Parse(json["language_id"].ToString()); beatmap.PlayMode = (PlayMode)Int32.Parse(json["mode"].ToString()); beatmap.DataDownloaded = true; beatmaps.Add(beatmap); } return(beatmaps); }
private void Remove() { var selectedRight = _right.Where(x => x.IsSelected) .ToArray(); var hiddenColumns = _columnsService.HiddenColumns(_identifier) .Concat(selectedRight.Select(x => x.Name)) .ToArray(); _columnsService.HideColumns(_identifier, hiddenColumns); selectedRight.ForEach(x => { _right.Remove(x); _left.Add(x); x.IsSelected = false; }); }
private void Add() { var selectedLeft = _left.Where(x => x.IsSelected) .ToArray(); var visibleColumns = _columnsService.VisibleColumns(_identifier) .Concat(selectedLeft.Select(x => x.Name)) .ToArray(); _columnsService.ShowColumns(_identifier, visibleColumns); selectedLeft.ForEach(x => { _left.Remove(x); _right.Add(x); x.IsSelected = false; }); }
public void SourceManipulation() { var numbers = new RangeObservableCollection <int>(System.Linq.Enumerable.Range(0, 10)); using (var query = numbers.ActiveElementAt(9)) { Assert.IsNull(query.OperationFault); Assert.AreEqual(9, query.Value); numbers.Remove(9); Assert.IsNotNull(query.OperationFault); Assert.AreEqual(0, query.Value); numbers.Add(30); Assert.IsNull(query.OperationFault); Assert.AreEqual(30, query.Value); numbers.Insert(9, 15); Assert.IsNull(query.OperationFault); Assert.AreEqual(15, query.Value); } }
public void ExpressionlessSourceManipulation() { var numbers = new RangeObservableCollection <int>(new int[] { 1 }); using (var expr = numbers.ActiveSingleOrDefault()) { Assert.IsNull(expr.OperationFault); Assert.AreEqual(1, expr.Value); numbers.Add(2); Assert.IsNotNull(expr.OperationFault); Assert.AreEqual(0, expr.Value); numbers.RemoveAt(0); Assert.IsNull(expr.OperationFault); Assert.AreEqual(2, expr.Value); numbers.Clear(); Assert.IsNull(expr.OperationFault); Assert.AreEqual(0, expr.Value); } }
public void SourceManipulation() { var numbers = new RangeObservableCollection <int>(System.Linq.Enumerable.Range(1, 10).Select(i => i * 3)); using (var query = numbers.ActiveAny(i => i % 3 != 0)) { Assert.IsNull(query.OperationFault); Assert.IsFalse(query.Value); numbers[0] = 2; Assert.IsTrue(query.Value); numbers.RemoveAt(0); Assert.IsFalse(query.Value); --numbers[0]; Assert.IsTrue(query.Value); numbers.Clear(); Assert.IsFalse(query.Value); numbers.Add(7); Assert.IsTrue(query.Value); } }
public void RegisterWidget(IWidgetPropertyData wdgVM) { if (_widgtes.Contains(wdgVM)) { return; } INotifyPropertyChanged vm = wdgVM as INotifyPropertyChanged; vm.PropertyChanged += WdgPropertyChangedHandler; //_widgtes.Add(wdgVM); try { _widgtes.Add(wdgVM); } catch (System.Exception ex) { Debug.WriteLine(ex.Message); } }
public void ExpressionlessSourceManipulation() { var numbers = new RangeObservableCollection <int>(); using (var aggregate = numbers.ActiveMax()) { Assert.IsNotNull(aggregate.OperationFault); Assert.AreEqual(0, aggregate.Value); numbers.Add(1); Assert.IsNull(aggregate.OperationFault); Assert.AreEqual(1, aggregate.Value); numbers.AddRange(System.Linq.Enumerable.Range(2, 3)); Assert.AreEqual(4, aggregate.Value); numbers.RemoveRange(0, 2); Assert.AreEqual(4, aggregate.Value); numbers.RemoveAt(1); Assert.AreEqual(3, aggregate.Value); numbers.Reset(System.Linq.Enumerable.Range(2, 3)); Assert.AreEqual(4, aggregate.Value); } }
public void SourceManipulation() { var things = new RangeObservableCollection <object>(new object[] { 0, false, "John", DateTime.Now, "Emily", Guid.NewGuid(), "Charles", TimeSpan.Zero, new object() }); using (var strings = things.ActiveOfType <string>()) { void checkStrings(params string[] against) => Assert.IsTrue(strings.OrderBy(s => s).SequenceEqual(against)); checkStrings("Charles", "Emily", "John"); things.Add("Bridget"); things.Remove("John"); things.Move(things.Count - 1, 0); checkStrings("Bridget", "Charles", "Emily"); things.Reset(new object[] { new object(), TimeSpan.Zero, "George", Guid.NewGuid(), "Craig", DateTime.Now, "Cliff", false, 0 }); checkStrings("Cliff", "Craig", "George"); } }
public ImageResultViewerDialogModel(Action <ImageResultViewerDialogModel> closeHandel, Action <ImageResultViewerDialogModel> saveHandel, Action <ImageResultViewerDialogModel> exportHandel, string directory, string pattern) { Images = new RangeObservableCollection <CvImageContainer>(); foreach (string file in Directory.GetFiles(directory, pattern)) { Images.Add(new CvImageContainer() { CvImage = CvInvoke.Imread(file) }); } _CloseCommand = new RelayCommand <object>( async(object o) => { await Task.Factory.StartNew(() => { closeHandel(this); }); }); _SaveCommand = new RelayCommand <object>( async(object o) => { await Task.Factory.StartNew(() => { saveHandel(this); }); }); _ExportCommand = new RelayCommand <object>( async(object o) => { await Task.Factory.StartNew(() => { exportHandel(this); }); }); }
/// <summary> /// Resynchronize events with the periods synced with the video file. /// Imported projects or fake analysis projects create events assuming periods /// don't have gaps between them. /// After adding a file to the project and synchronizing the periods with the /// video file, all events must be offseted with the new start time of the period. /// /// Before sync: /// Period 1: start=00:00:00 Period 2: start=00:30:00 /// evt1 00:10:00 evt2 00:32:00 /// After sync: /// Period 1: start=00:05:00 Period 2: start= 00:39:00 /// evt1 00:15:00 evt2 00:41:00 /// </summary> /// <param name="oldPeriods">The periods baseline to sync against.</param> public void ResyncEvents(IList <Period> oldPeriods) { RangeObservableCollection <TimelineEvent> newTimeline = new RangeObservableCollection <TimelineEvent> (); if (oldPeriods.Count != Periods.Count) { throw new IndexOutOfRangeException( "Periods count is different from the project's ones"); } for (int i = 0; i < oldPeriods.Count; i++) { Period oldPeriod = oldPeriods [i]; TimeNode oldTN = oldPeriod.PeriodNode; TimeNode newTN = Periods [i].PeriodNode; Time diff = newTN.Start - oldTN.Start; /* Find the events in this period */ var periodEvents = Timeline.Where(e => e.EventTime >= oldTN.Start && e.EventTime <= oldTN.Stop).ToList(); /* Apply new offset and move the new timeline so that the next * iteration for the following period does not use them anymore */ periodEvents.ForEach(e => { e.Move(diff); newTimeline.Add(e); Timeline.Remove(e); }); foreach (TimeNode tn in oldPeriod.Nodes) { tn.Move(diff); } } Timeline = newTimeline; }
protected async override void OnAppearing() { base.OnAppearing(); _items.Clear(); await _Connection.CreateTableAsync <GroceryItem>(); var itemList = await _Connection.Table <GroceryItem>().ToListAsync(); var tmpSelectableList = itemList.Select(x => new ShoppingListItem(x)).ToList(); if (ShoppingListView != null && ShoppingCartView != null) { foreach (var item in tmpSelectableList) { if (!ShoppingListView.HasItem(item.ItemID) && !ShoppingCartView.HasItem(item.ItemID)) { _items.Add(item); } } } OnPropertyChanged("Items"); }