Ejemplo n.º 1
0
 public bool MusicTrackExist(MusicTrack musicTrack)
 {
     using (var dataBase = new NameThatTuneDatabase())
     {
         return(dataBase.MusicTrack.Any(mt => mt.Id == musicTrack.Id));
     }
 }
Ejemplo n.º 2
0
        public async Task AddMusicTrackAsync(MusicTrack musicTrack)
        {
            if (musicTrack?.MusicVersions == null)
            {
                throw new ArgumentNullException(nameof(musicTrack));
            }

            using (var dataBase = new NameThatTuneDatabase())
            {
                if (await dataBase.MusicTrack.AnyAsync(o => o.Id == musicTrack.Id))
                {
                    throw new Exception($"Track {musicTrack.NameArtist} - {musicTrack.NameTrack} already exists");
                }

                ;
                var musicVersions = musicTrack.MusicVersions.ToArray();
                musicTrack.MusicVersions = null;
                await dataBase.MusicTrack.AddAsync(musicTrack);

                await dataBase.SaveChangesAsync();

                await dataBase.MusicVersions.AddRangeAsync(musicVersions);

                await dataBase.SaveChangesAsync();

                Console.Out.WriteLine("DB: Track {0} added", musicTrack.NameArtist + "-" + musicTrack.NameTrack);
            }
        }
Ejemplo n.º 3
0
 public MusicTrack GetMusicTrack(int trackId)
 {
     using (var dataBase = new NameThatTuneDatabase())
     {
         return(dataBase.MusicTrack.Include(t => t.MusicVersions).SingleOrDefault(m => m.Id == trackId));
     }
 }
Ejemplo n.º 4
0
        public static async Task UpdateUserStatistics(User user, bool answerType)
        {
            using (var dataBase = new NameThatTuneDatabase())
            {
                if (!await dataBase.Users.AnyAsync(o => o.ChatId == user.ChatId &&
                                                   o.MessengerClass == user.MessengerClass))
                {
                    throw new Exception($"User {user.ChatId} - {user.MessengerClass} does not exists");
                }

                var saveUser = await dataBase.Users.FirstOrDefaultAsync(u => u.ChatId == user.ChatId &&
                                                                        u.MessengerClass == user.MessengerClass);

                var userStat = await dataBase.UserStatistics.FirstOrDefaultAsync(us => us.Id == saveUser.Id);

                if (answerType)
                {
                    userStat.CorrectAnswers++;
                }
                else
                {
                    userStat.WrongAnswers++;
                }

                await dataBase.SaveChangesAsync();
            }
        }
Ejemplo n.º 5
0
 public static async Task <bool> UserTrackExist(User user)
 {
     using (var dataBase = new NameThatTuneDatabase())
     {
         return(await dataBase.Users.AnyAsync(o => o.ChatId == user.ChatId &&
                                              o.MessengerClass == user.MessengerClass));
     }
 }
Ejemplo n.º 6
0
        public static async Task <UserStatistics> GetUserStatistic(User user)
        {
            using (var dataBase = new NameThatTuneDatabase())
            {
                var saveUser = await dataBase.Users.FirstOrDefaultAsync(u => u.ChatId == user.ChatId &&
                                                                        u.MessengerClass == user.MessengerClass);

                return(await dataBase.UserStatistics.FirstOrDefaultAsync(us => us.Id == saveUser.Id));
            }
        }
Ejemplo n.º 7
0
        private MusicTrack[] GetRandomMusicTracks(int numberOfTrack)
        {
            using (var dataBase = new NameThatTuneDatabase())
            {
                var musicTracks = dataBase.MusicTrack.OrderBy(x => Guid.NewGuid()).Take(numberOfTrack).ToList();
                foreach (var musicTrack in musicTracks)
                {
                    dataBase.MusicVersions.Where(mv => mv.MusicTrackId == musicTrack.Id).Load();
                }

                //OrderBy(x => Guid.NewGuid()).Include(t => t.MusicVersions)
                return(musicTracks.ToArray());
            }
        }
Ejemplo n.º 8
0
        public static async Task AddUserStatistics(User user)
        {
            using (var dataBase = new NameThatTuneDatabase())
            {
                if (await dataBase.Users.AnyAsync(o => o.ChatId == user.ChatId &&
                                                  o.MessengerClass == user.MessengerClass))
                {
                    throw new Exception($"User {user.ChatId} - {user.MessengerClass} already exists");
                }

                ;
                var newUser = user;
                await dataBase.Users.AddAsync(newUser);

                await dataBase.SaveChangesAsync();

                var userStat = new UserStatistics {
                    UserId = newUser.Id, Id = newUser.Id
                };
                await dataBase.UserStatistics.AddAsync(userStat);

                await dataBase.SaveChangesAsync();
            }
        }