Ejemplo n.º 1
0
        public async Task <BeatmapConfig> GetOrAddBeatmapConfigByBeatmap(Beatmap beatmap)
        {
            try
            {
                if (beatmap == null)
                {
                    Logger.Debug("需确认加入自定义目录后才可继续");
                    return(null);
                }

                if (beatmap.IsTemporary)
                {
                    return(new BeatmapConfig());
                }

                var map = await BeatmapConfigs
                          .AsNoTracking()
                          .FirstOrDefaultAsync(k => k.BeatmapId == beatmap.Id);

                if (map != null)
                {
                    return(map);
                }

                var guid = Guid.NewGuid();
                BeatmapConfigs.Add(new BeatmapConfig()
                {
                    Id        = guid,
                    BeatmapId = beatmap.Id,
                });
                await SaveChangesAsync();

                return(await BeatmapConfigs.FindAsync(guid));
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// ignore null columns
        /// </summary>
        /// <param name="beatmapConfig"></param>
        /// <returns></returns>
        public async Task AddOrUpdateBeatmapConfig(BeatmapConfig beatmapConfig)
        {
            if (beatmapConfig.BeatmapId == null || beatmapConfig.BeatmapId.Length == 0)
            {
                Console.WriteLine("No beatmap found.");
                return;
            }

            var beatmap = await Beatmaps.FindAsync(beatmapConfig.BeatmapId);

            if (beatmap == null)
            {
                Console.WriteLine("No beatmap found.");
            }

            var exist = await BeatmapConfigs.FindAsync(beatmapConfig.Id);

            if (exist == null)
            {
                BeatmapConfigs.Add(beatmapConfig);
            }
            else
            {
                if (beatmapConfig.MainVolume != null)
                {
                    exist.MainVolume = beatmapConfig.MainVolume.Value;
                }
                if (beatmapConfig.MusicVolume != null)
                {
                    exist.MusicVolume = beatmapConfig.MusicVolume.Value;
                }
                if (beatmapConfig.HitsoundVolume != null)
                {
                    exist.HitsoundVolume = beatmapConfig.HitsoundVolume.Value;
                }
                if (beatmapConfig.SampleVolume != null)
                {
                    exist.SampleVolume = beatmapConfig.SampleVolume.Value;
                }
                if (beatmapConfig.Offset != null)
                {
                    exist.Offset = beatmapConfig.Offset.Value;
                }
                if (beatmapConfig.PlaybackRate != null)
                {
                    exist.PlaybackRate = beatmapConfig.PlaybackRate.Value;
                }
                if (beatmapConfig.PlayUseTempo != null)
                {
                    exist.PlayUseTempo = beatmapConfig.PlayUseTempo.Value;
                }
                if (beatmapConfig.LyricOffset != null)
                {
                    exist.LyricOffset = beatmapConfig.LyricOffset.Value;
                }
                if (beatmapConfig.ForceLyricId != null)
                {
                    exist.ForceLyricId = beatmapConfig.ForceLyricId;
                }
            }

            await SaveChangesAsync();
        }