public async Task SetYouTubeIdAsync(int from, int to)
        {
            var all_songs = await _liveContext.RadioSongs.ToListAsync();

            //Console.WriteLine(all_songs.Count);
            var songs = all_songs.Where(x => all_songs.IndexOf(x) > from && all_songs.IndexOf(x) < to);

            foreach (var s in songs)
            {
                s.setSongID(s.Name);
                await _liveContext.SaveChangesAsync();

                System.Threading.Thread.Sleep(3000);
            }
        }
        public async Task <UserAdminDto> ChangeUserStatus(SocialLogin user)
        {
            var exUser = _liveContext.Users.FirstOrDefault(x => x.UserEmail == user.Email && x.AuthType == user.AuthType);

            //Console.WriteLine("-----" + user.Email);
            // Console.WriteLine("-----" + user.AuthType);


            if (exUser != null)
            {
                exUser.ChangeStatus();
                _liveContext.Update(exUser);
                await _liveContext.SaveChangesAsync();

                return(_autoMapper.Map <UserAdminDto>(exUser));
            }
            return(null);
        }
Example #3
0
        public async Task <UserDto> SocialLoginAsync(string userId, string name, string email, string authType)
        {
            User user = _liveContext.Users.FirstOrDefault(x => x.UserEmail == email && x.AuthType == authType && x.UserSocialId == userId);

            //bool sended = _emailService.ResetPassword(user, new Guid());

            if (user == null)
            {
                //Console.WriteLine("Save user to database");

                if (string.IsNullOrEmpty(email))
                {
                    var wrong = new UserDto();
                    wrong.Email = "noEmail";
                    return(wrong);
                }
                else
                {
                    User newUser = new User(userId, name, email, authType, "USER");

                    // var usersCount = _liveContext.Users.

                    await _liveContext.AddAsync(newUser);

                    await _liveContext.SaveChangesAsync();

                    var userDto = _autoMapper.Map <UserDto>(newUser);
                    userDto.JwtToken = _jwtService.CreateToken(newUser.ID, newUser.UserRole).Token;
                    return(userDto);
                }
            }
            else
            {
                if (!user.IsActive)
                {
                    Log.Warning($"Try get deactivate user: {user.UserName}");
                    return(null);
                }



                //Console.WriteLine($"login existing user:  {user.UserYoutubes.Count}");
                //user.UserYoutubes.Add(new UserYoutube("dVVsa","dVVVas","dVVfs","gdVVV"));
                user.NextLogin();
                _liveContext.Update(user);
                await _liveContext.SaveChangesAsync();
            }
            var userDtoExist = _autoMapper.Map <UserDto>(user);

            userDtoExist.JwtToken = _jwtService.CreateToken(user.ID, user.UserRole).Token;
            return(userDtoExist);
        }
        public async Task DeleteByYouTubeId(string id)
        {
            var archiveSongs = await GetByYouTubeFromArchive(id);

            var actuallSongs = await GetByYouTubeFromActuall(id);

            if (archiveSongs != null)
            {
                _liveContext.ArchiveSongs.RemoveRange(archiveSongs);
            }

            if (actuallSongs.Count > 0)
            {
                _liveContext.Songs.RemoveRange(actuallSongs);
            }
            await _liveContext.SaveChangesAsync();
        }
Example #5
0
        public async Task <string> ChangeRating(string newRating, string videoId)
        {
            var movies = await _liveContext.TVMovies.Include(x => x.YouTube)
                         .Where(x => x.YouTube.VideoID == videoId).ToListAsync();

            var archMovies = await _liveContext.ArchiveMovies.Include(x => x.YouTube)
                             .Where(x => x.YouTube.VideoID == videoId).ToListAsync();

            string rating = "0,0";

            var actuallMovie = movies.FirstOrDefault();

            if (actuallMovie != null)
            {
                if (string.IsNullOrEmpty(newRating))
                {
                    rating = actuallMovie.getFilmwebRating();
                }
                else
                {
                    rating = newRating;
                }

                _liveContext.Update(actuallMovie);
                foreach (var movie in movies)
                {
                    movie.changeRating(rating);
                    //movie.getFilmwebRating();
                    _liveContext.Update(movie);
                }

                foreach (var movie in archMovies)
                {
                    movie.changeRating(rating);
                    //movie.getFilmwebRating();
                    _liveContext.Update(movie);
                }
            }
            await _liveContext.SaveChangesAsync();

            return(rating);
        }
Example #6
0
        public async Task <bool> AddYouTubeAsync(EntitySetter addYoutube, Guid userId, string tagsString)
        {
            var exist = _liveContext.UserYoutubes.FirstOrDefault(x => x.UserId == userId && x.VideoId == addYoutube.Id);


            if (exist == null)
            {
                var    titles = addYoutube.Title.Split("||").ToList();
                string title  = titles.Count > 0 ? titles[0] : addYoutube.Title;

                var newYoutube = new UserYoutube(userId, addYoutube.Id, title, addYoutube.Left, addYoutube.Top, addYoutube.FolderId, tagsString, addYoutube.Source);

                _liveContext.UserYoutubes.Add(newYoutube);
                await _liveContext.SaveChangesAsync();

                return(true);
            }
            else
            {
                return(false);
            }
        }
        public async Task SongsUpdateAsync()
        {
            if (InfoCaches.duringSongsUpdate)
            {
                return;
            }


            InfoCaches.duringSongsUpdate = true;
            try
            {
                //Log.Information("Start radio songs updating");
                //Console.WriteLine($"{DateTime.Now}  Start radio songs updating");

                var stations = new Dictionary <int, string>()
                {
                    { 1, "zet" }, { 2, "rmf" }, { 3, "eska" }, { 4, "rmfmaxx" }, { 9, "zloteprzeboje" }, { 30, "vox" }, { 40, "chillizet" }
                };
                var dateLast = await GetLastDate();

                // Console.WriteLine("Context works  datelst -> " + dateLast);
                //Console.WriteLine(dateLast);
                var dateNow = DateTime.Now;
                int hourNow = dateNow.Hour;
                //Console.WriteLine(dateNow );

                var hours = (dateNow - dateLast).TotalHours;

                int i = 0;
                int h = 50;
                if (hours >= 12)
                {
                    i = 12;
                }

                if (hourNow == dateLast.Hour && hours < 12)
                {
                    i = 0;
                }
                if (hourNow != dateLast.Hour && hours < 12)
                {
                    while (h != hourNow)
                    {
                        dateLast = dateLast.AddHours(1);
                        h        = dateLast.Hour;

                        i++;
                    }
                }


                var listOfInitialSongs = new List <Song>();
                var songsCount         = 0;

                for (int j = 0; j < i; j++)
                {
                    var hourTo   = dateNow.AddHours(-j).Hour;
                    var dateBase = dateNow.AddHours(-j);
                    var date     = dateNow.AddHours(-j - 1).ToString("dd-MM-yyyy");
                    var hourFrom = dateNow.AddHours(-j - 1).Hour;

                    foreach (var s in stations.Keys)
                    {
                        string addres = "https://www.odsluchane.eu/szukaj.php?r=" + s + "&date=" + date + "&time_from=" + hourFrom + "&time_to=" + hourTo;
                        //Console.WriteLine(addres);
                        var names = getSongsNamesFromUrl(addres);

                        if (names.Count > 0)
                        {
                            foreach (var name in names)
                            {
                                listOfInitialSongs.Add(new Song(name, stations[s], dateBase));
                            }
                        }
                    }
                }

                //Log.Information($"Radio Songs UPDATED with {listOfInitialSongs.Count} songs");
                //Console.WriteLine($"Radio Songs UPDATED with {listOfInitialSongs.Count} songs");
                if (listOfInitialSongs.Count > 0)
                {
                    var toManyReq = false;
                    songsCount = listOfInitialSongs.Count;

                    //using(var context = new LiveContext(_sql))
                    //using(var context = new LiveContext())
                    //{
                    try
                    {
                        foreach (var song in listOfInitialSongs)
                        {
                            var archiveSong = await _context.ArchiveSongs.Include(x => x.YouTube).FirstOrDefaultAsync(s => s.Name == song.Name);

                            if (archiveSong is null)
                            {
                                if (toManyReq == false)
                                {
                                    song.SetYoutube();
                                }
                                else
                                {
                                    song.SetWhileYoutube();
                                }

                                if (song.YouTube.VideoID.Contains("FirstError"))
                                {
                                    Log.Warning("First ERROR from Song Update");
                                    toManyReq = true;
                                }

                                var toArchiveSong = new ArchiveSong(song);
                                //Console.WriteLine("Adding new song to archive");
                                await _context.ArchiveSongs.AddAsync(toArchiveSong);

                                await _context.SaveChangesAsync();
                            }
                            else
                            {
                                song.SetYoutube(archiveSong);
                            }

                            song.Added = DateTime.Now;
                            //Console.WriteLine("Adding song to Songs");
                            await _context.Songs.AddAsync(song);

                            songsCount = songsCount - 1;
                        }
                        await _context.SaveChangesAsync();
                    }
                    catch (Exception ex)
                    {
                        Log.Error($"Error while updating songs: {ex.Message}");
                        Log.Error(ex.StackTrace);
                        //context.Dispose();
                    }

                    //}
                }

                if (listOfInitialSongs.Count > 0)
                {
                    //using(var context = new LiveContext(_sql))
                    // using(var context = new LiveContext())
                    //{
                    _context.Songs.RemoveRange(_context.Songs.Where(s => s.PlayAt < dateNow.AddHours(-13)));
                    await _context.SaveChangesAsync();

                    //}
                    var errors = listOfInitialSongs.Where(x => x.YouTube.VideoID.Contains("Error")).ToList();
                    Log.Information($"Finish radio songs update with {listOfInitialSongs.Count} songs and {errors.Count} youtube errors");

                    //Console.WriteLine($"Finish radio songs update with {listOfInitialSongs.Count} songs and {errors.Count} youtube errors");
                }

                InfoCaches.duringSongsUpdate = false;
            }
            catch (Exception ex)
            {
                Log.Error($"Error in updating songs {ex.Message}");
                Log.Error(ex.StackTrace);
                Console.WriteLine($"Error in updating songs {ex.Message}");
                Console.WriteLine(ex.StackTrace);
                InfoCaches.duringSongsUpdate = false;
            }
        }
Example #8
0
        public async Task UpdateAsync()
        {
            Console.WriteLine("Start updatign books");
            var bestList = new List <Book>();


            await _liveContext.SaveChangesAsync();

            var bonitos = await new Bonito().GetBestsellersAsync();

            bestList.AddRange(bonitos);
            var aros = await new Aros().GetBestsellersAsync();

            bestList.AddRange(aros);
            var czytams = await new Czytam().GetBestsellersAsync();

            bestList.AddRange(czytams);
            var empiks = await new Empik().GetBestsellersAsync();

            bestList.AddRange(empiks);
            var gandalfs = await new Gandalf().GetBestsellersAsync();

            bestList.AddRange(gandalfs);
            var livros = await new Livro().GetBestsellersAsync();

            bestList.AddRange(livros);
            var profit24s = await new Profit24().GetBestsellersAsync();

            bestList.AddRange(profit24s);

            Log.Information($"Finish bestsellers update with {bestList.Count} books");
            Log.Information($"{bonitos.Count} from Bonito");
            Log.Information($"{aros.Count} from Aros");
            Log.Information($"{czytams.Count} from Czytam");
            Log.Information($"{empiks.Count} from Empik");
            Log.Information($"{gandalfs.Count} from Gandalf");
            Log.Information($"{livros.Count} from Livro");
            Log.Information($"{profit24s.Count} from Profit24");

            var actualBestsellers = _liveContext.Bestsellers.ToList();

            _liveContext.Bestsellers.RemoveRange(_liveContext.Bestsellers.Where(x => x.Store != ""));
            _liveContext.SaveChanges();

            int group = 1;

            foreach (var book in bestList)
            {
                var theSameList = bestList.Where(x => x.GroupNo == -1)
                                  .Where(x => x.TheSame(book.Title, book.Author)).ToList();

                if (theSameList.Count > 0)
                {
                    foreach (var theSameBook in theSameList)
                    {
                        theSameBook.GroupNo = group;
                    }
                    group++;
                }
            }

            int no = 1;

            foreach (var book in bestList)
            {
                var exists = actualBestsellers.FirstOrDefault(x => x.ImageSrc == book.ImageSrc);

                if (exists != null)
                {
                    Console.WriteLine("Added exists");
                    exists.Added = DateTime.Now;

                    var theSame = bestList
                                  .FirstOrDefault(x => x.TheSame(exists.Title, exists.Author));

                    if (theSame != null)
                    {
                        exists.SetGroupNo(theSame.GroupNo);
                    }
                    else
                    {
                        int max = bestList.Select(x => x.GroupNo).Max() + no;
                        no++;
                        exists.SetGroupNo(max);
                    }

                    await _liveContext.Bestsellers.AddAsync(exists);
                }
                else
                {
                    var bestseller = new Bestseller(book);
                    bestseller.Added = DateTime.Now;
                    Console.WriteLine("Added new");
                    await _liveContext.Bestsellers.AddAsync(bestseller);
                }
            }
            await _liveContext.SaveChangesAsync();

            InfoCaches._booksUpdatingRunning = true;
            // Console.WriteLine("========Finish book update==========");
        }