public override void NavigateTo(object item) { OnNavigatedTo(item); LoadedObjects.Add(item); ActiveTabItem = item; RaiseAreMultipleTabsChangedEvents(); }
/// <summary> /// Updates this collection to only contain the specified items /// </summary> /// <param name="items"></param> public void Set(ICollection <T> items) { if (IsLoaded) { foreach (var item in items.Cast <BrightstarEntityObject>().Except(LoadedObjects, new BrightstarEntityObjectComparer())) { Add(item as T); } foreach (var item in LoadedObjects.Except(items.Cast <BrightstarEntityObject>(), new BrightstarEntityObjectComparer()).ToList()) { Remove(item as T); } } else { var entities = items.Select(x => AssertBrightstarObject(x, "items")).ToList(); if (_isInverse) { _parent.DataObject.RemoveInversePropertiesOfType(_propertyType); foreach (var entity in entities) { entity.DataObject.AddProperty(_propertyType, _parent.DataObject); } } else { _parent.DataObject.RemovePropertiesOfType(_propertyType); foreach (var entity in entities) { _parent.DataObject.AddProperty(_propertyType, entity.DataObject); } SetLoadedObjects(entities); } } }
public override IQueryable <ILocation> GetAll(string whereCondition, Dictionary <string, object> parameterValues) { using (var connection = new SqlConnection(ConnectionString)) { connection.Open(); using (var cmd = connection.CreateCommand()) { if (parameterValues.Count == 0 && string.IsNullOrWhiteSpace(whereCondition)) { cmd.CommandText = "select id, pod, location, hostname, severity, timestamp, message from v_logentries order by timestamp"; } else { cmd.CommandText = $"{SelectBase} WHERE {whereCondition} {_orderByBase}"; foreach (var keyValuePair in parameterValues) { cmd.Parameters.AddWithValue(keyValuePair.Key, keyValuePair.Value); } } try { using (var reader = cmd.ExecuteReader()) PopulateLoadedObjectList(reader); } catch (Exception ex) { MessageBox.Show(ex.Message); return(new List <Location>().AsQueryable()); } } } return(LoadedObjects.AsQueryable()); }
private void PopulateLoadedObjectList(IDataReader reader) { LoadedObjects.Clear(); while (reader.Read()) { LoadedObjects.Add(BuildLocation(reader)); } }
/// <summary> /// Find the last <see cref="BeatmapBPMChange"/> before a given beat time. /// </summary> /// <param name="beatTimeInSongBPM">Time in raw beats (Unmodified by any BPM Changes)</param> /// <param name="inclusive">Whether or not to include <see cref="BeatmapBPMChange"/>s with the same time value.</param> /// <returns>The last <see cref="BeatmapBPMChange"/> before the given beat (or <see cref="null"/> if there is none).</returns> public BeatmapBPMChange FindLastBPM(float beatTimeInSongBPM, bool inclusive = true) { if (inclusive) { return(LoadedObjects.LastOrDefault(x => x._time <= beatTimeInSongBPM + 0.01f) as BeatmapBPMChange); } return(LoadedObjects.LastOrDefault(x => x._time + 0.01f < beatTimeInSongBPM) as BeatmapBPMChange); }
/// <summary> /// Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index. /// </summary> /// <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param><exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception><exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception><exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.-or-Type <typeparamref name="T"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.</exception> public void CopyTo(T[] array, int arrayIndex) { AssertLoaded(); foreach (var o in LoadedObjects.Cast <T>()) { array[arrayIndex++] = o; } }
private void OnDestroy() { if (sceneEvents != null) { sceneEvents.RegionsCreated -= OnRegionsCreated; } LoadedObjects.DestroyAll(); }
/// <summary> /// Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value. /// </summary> /// <returns> /// true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. /// </returns> /// <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param> public bool Contains(T item) { if (!(item is BrightstarEntityObject)) { return(false); } var entity = AssertBrightstarObject(item, "item"); return(LoadedObjects.Any(x => x.DataObject.Identity.Equals(entity.DataObject.Identity))); }
public override IQueryable <ILocation> GetAll() { using (var connection = new SqlConnection(ConnectionString)) { connection.Open(); using (var cmd = connection.CreateCommand()) { cmd.CommandText = $"{SelectBase} {_orderByBase}"; using (var reader = cmd.ExecuteReader()) PopulateLoadedObjectList(reader); } } return(LoadedObjects.AsQueryable()); }
// This should hopefully return a sorted list of notes to prevent flipped stack notes when playing in game. // (I'm done with note sorting; if you don't like it, go fix it yourself.) public override IEnumerable <BeatmapObject> GrabSortedObjects() { List <BeatmapObject> sorted = new List <BeatmapObject>(); var grouping = LoadedObjects.GroupBy(x => x._time); foreach (var group in grouping) { sorted.AddRange(group.OrderBy(x => ((BeatmapNote)x)._lineIndex) //0 -> 3 .ThenBy(x => ((BeatmapNote)x)._lineLayer) //0 -> 2 .ThenBy(x => ((BeatmapNote)x)._type)); } return(sorted); }
private void RequestNavigate(Type type, UriQuery uriQuery) { var resolveIt = Container.ResolveType(type); LoadedObjects.Add(resolveIt); ActiveTabItem = resolveIt; //var uri = new Uri(type.FullName, UriKind.Relative); //var navigationParameters = new NavigationParameters(); //if (uriQuery != null && uriQuery.Arguments != null) //{ // foreach (var item in uriQuery.Arguments) // { // navigationParameters.Add(item.Key, item.Value); // } //} //RegionManager.RequestNavigate(regionName, uri, ProcessNavigationResult, navigationParameters); }
public override IQueryable <ILogEntry> GetAll(string whereCondition, Dictionary <string, object> parameterValues) { using (var connection = new SqlConnection(ConnectionString)) { connection.Open(); using (var cmd = connection.CreateCommand()) { try { BuildCommand(cmd, whereCondition, parameterValues); using (var reader = cmd.ExecuteReader()) PopulateLoadedObjectList(reader); } catch (Exception ex) { MessageBox.Show(ex.Message); return(new List <LogEntry>().AsQueryable()); } } } return(LoadedObjects.AsQueryable()); }
public void RefreshGridShaders() { float[] bpmChangeTimes = new float[ShaderArrayMaxSize]; float[] bpmChangeBPMS = new float[ShaderArrayMaxSize]; bpmChangeTimes[0] = 0; bpmChangeBPMS[0] = BeatSaberSongContainer.Instance.song.beatsPerMinute; for (int i = 0; i < LoadedObjects.Count; i++) { if (i >= ShaderArrayMaxSize - 1) { Debug.LogError($":hyperPepega: :mega: THE CAP FOR BPM CHANGES IS {ShaderArrayMaxSize - 1}, WHY TF DO YOU HAVE THIS MANY BPM CHANGES!?!?"); break; } BeatmapBPMChange bpmChange = LoadedObjects.ElementAt(i) as BeatmapBPMChange; bpmChangeTimes[i + 1] = bpmChange._time; bpmChangeBPMS[i + 1] = bpmChange._BPM; if (i == 0) { bpmChange._Beat = Mathf.CeilToInt(bpmChange._time); } else { float songBPM = BeatSaberSongContainer.Instance.song.beatsPerMinute; BeatmapBPMChange lastChange = LoadedObjects.ElementAt(i - 1) as BeatmapBPMChange; float passedBeats = (bpmChange._time - lastChange._time - 0.01f) / songBPM * lastChange._BPM; bpmChange._Beat = lastChange._Beat + Mathf.CeilToInt(passedBeats); } } foreach (Renderer renderer in allGridRenderers) { renderer.material.SetFloatArray(Times, bpmChangeTimes); renderer.material.SetFloatArray(BPMs, bpmChangeBPMS); renderer.material.SetInt(BPMCount, LoadedObjects.Count + 1); } measureLinesController.RefreshMeasureLines(); }
/// <summary> /// Returns an enumerator that iterates through the collection. /// </summary> /// <returns> /// A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection. /// </returns> /// <filterpriority>1</filterpriority> public new IEnumerator <T> GetEnumerator() { AssertLoaded(); return(LoadedObjects.Cast <T>().GetEnumerator()); }