public static MixRanking FromString(string value, string fromTrack) { if (value == "") { return(null); } var mixRank = new MixRanking { FromTrack = fromTrack }; if (value.Contains(",")) { var commaIndex = value.LastIndexOf(",", StringComparison.Ordinal); mixRank.ToTrack = value.Substring(0, commaIndex).Trim(); var ranking = value.Substring(commaIndex + 1).Trim(); int mixLevel; int.TryParse(ranking, out mixLevel); mixRank.MixLevel = mixLevel; } else { mixRank.ToTrack = value; mixRank.MixLevel = (int)MixRank.Unranked; } return(mixRank); }
/// <summary> /// Loads the mix tracks. /// </summary> /// <param name="trackDescription">The track description.</param> private void LoadMixRankings(string trackDescription) { lock (_toMixes) { if (_loadedTracks.Contains(trackDescription)) { return; } } DebugHelper.WriteLine("LoadMixRankings - " + trackDescription); lock (_toMixes) { _loadedTracks.Add(trackDescription); } var filename = GetMixRankingFileName(trackDescription); if (!File.Exists(filename)) { return; } var content = File.ReadAllLines(filename).ToList(); var mixRankings = content .Select(line => MixRanking.FromString(line, trackDescription)) .Where(mixRank => mixRank != null); foreach (var mixRank in mixRankings) { SetMixLevel(mixRank.FromTrack, mixRank.ToTrack, mixRank.MixLevel); } }
public void LoadFromDatabase() { var mixLibraryDatabaseFile = MixLibraryDatabaseFile; var trackMixeses = SerializationHelper <List <TrackMix> > .FromXmlFile(mixLibraryDatabaseFile); Clear(); Parallel.ForEach(trackMixeses, trackMixes => { DebugHelper.WriteLine("LoadMixRankings - " + trackMixes.Track); //lock (_loadedTracks) //{ _loadedTracks.Add(trackMixes.Track); //} var mixRankings = trackMixes.MixRankings.Select(mixRanking => MixRanking.FromString(mixRanking, trackMixes.Track)) .Where(mixRank => mixRank != null); foreach (var mixRank in mixRankings) { SetMixLevel(mixRank.FromTrack, mixRank.ToTrack, mixRank.MixLevel); } }); }
/// <summary> /// Sets the mix level. /// </summary> /// <param name="fromTrackDescription">From track description.</param> /// <param name="toTrackDescription">To track description.</param> /// <param name="mixLevel">The mix level.</param> private void SetMixLevel(string fromTrackDescription, string toTrackDescription, int mixLevel) { lock (_toMixes) { var mixRank = GetMixRank(fromTrackDescription, toTrackDescription); if (mixLevel == 1) { if (mixRank == null) { return; } var toMixes = GetToMixes(fromTrackDescription); toMixes.Remove(mixRank); var fromMixes = GetFromMixes(toTrackDescription); fromMixes.Remove(mixRank); } else { if (mixRank == null) { mixRank = new MixRanking { FromTrack = fromTrackDescription, ToTrack = toTrackDescription }; var toMixes = GetToMixes(fromTrackDescription); toMixes.Add(mixRank); var fromMixes = GetFromMixes(toTrackDescription); fromMixes.Add(mixRank); } mixRank.MixLevel = mixLevel; } } }
public static MixRanking FromString(string value, string fromTrack) { if (value == "") return null; var mixRank = new MixRanking {FromTrack = fromTrack}; if (value.Contains(",")) { var commaIndex = value.LastIndexOf(",", StringComparison.Ordinal); mixRank.ToTrack = value.Substring(0, commaIndex).Trim(); var ranking = value.Substring(commaIndex + 1).Trim(); int mixLevel; int.TryParse(ranking, out mixLevel); mixRank.MixLevel = mixLevel; } else { mixRank.ToTrack = value; mixRank.MixLevel = (int) MixRank.Unranked; } return mixRank; }
/// <summary> /// Sets the mix level. /// </summary> /// <param name="fromTrackDescription">From track description.</param> /// <param name="toTrackDescription">To track description.</param> /// <param name="mixLevel">The mix level.</param> private void SetMixLevel(string fromTrackDescription, string toTrackDescription, int mixLevel) { lock (_toMixes) { var mixRank = GetMixRank(fromTrackDescription, toTrackDescription); if (mixLevel == 1) { if (mixRank == null) return; var toMixes = GetToMixes(fromTrackDescription); toMixes.Remove(mixRank); var fromMixes = GetFromMixes(toTrackDescription); fromMixes.Remove(mixRank); } else { if (mixRank == null) { mixRank = new MixRanking { FromTrack = fromTrackDescription, ToTrack = toTrackDescription }; var toMixes = GetToMixes(fromTrackDescription); toMixes.Add(mixRank); var fromMixes = GetFromMixes(toTrackDescription); fromMixes.Add(mixRank); } mixRank.MixLevel = mixLevel; } } }