public async Task <IActionResult> EditAuto(int id, Dizi dizi, string returnUrl)
        {
            var diziFromDb = await _db.Diziler.Where(m => m.Id == dizi.Id).FirstOrDefaultAsync();

            if (User.IsInRole(Constants.ModeratorUser)) // Moderator ise izin verme
            {
                //return Redirect(returnUrl ?? "Index");
                return(RedirectToAction(nameof(Error)));
            }
            else if (ModelState.IsValid)
            {
                //Şuanki kullanıcıyı bulma
                ClaimsPrincipal currentUser    = this.User;
                var             claimsIdentity = (ClaimsIdentity)this.User.Identity;
                var             claim          = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); // This is ID
                var             claimName      = currentUser.Identity.Name;
                if (diziFromDb.ApprovedBy == claimName || diziFromDb.UploadedBy == claimName || User.IsInRole(Constants.MasterAdminUser) || (User.IsInRole(Constants.NormalAdminUser) && diziFromDb.Approved == false))
                {
                    diziFromDb.ApprovedBy = currentUser.Identity.Name; // this is name
                    diziFromDb.Approved   = !(diziFromDb.Approved);
                    await _db.SaveChangesAsync();

                    return(Redirect(returnUrl ?? "Index"));
                }
                else
                {
                    return(RedirectToAction(nameof(Error)));
                }
            }
            return(Redirect(returnUrl ?? "Index"));
        }
示例#2
0
        public static List <ArsivShortDizi> GetArsivDiziler(string HTML)
        {
            HtmlAgilityPack.HtmlDocument Document = new HtmlAgilityPack.HtmlDocument();
            Document.LoadHtml(HTML);

            var Diziler = Document.DocumentNode.SelectNodes("/html/body/main/div[4]/div[2]/article");

            var Liste = new List <ArsivShortDizi>();

            foreach (var Dizi in Diziler)
            {
                var Isim     = Dizi.SelectSingleNode("div/h3/a").InnerText;
                var ImdbObje = Dizi.SelectSingleNode("div/div[1]/span[3]");
                var Imdb     = "";
                if (ImdbObje != null)
                {
                    Imdb = ImdbObje.InnerText.Trim();
                }
                var Tur      = Dizi.SelectSingleNode("div/div[1]/span[1]").InnerText.Split('&')[0].Trim();
                var TarihYer = Dizi.SelectSingleNode("div/div[1]/span[2]").InnerText.Replace("&nbsp;", string.Empty).Replace("|", string.Empty).Trim();
                var Resim    = DbxCore.Http.GetImage(Dizi.SelectSingleNode("figure/a/img").Attributes["src"].Value);
                var Aciklama = Dizi.SelectSingleNode("div/div[2]").InnerText.Trim();
                Liste.Add(new ArsivShortDizi()
                {
                    Aciklama = Aciklama,
                    Yil      = TarihYer.Split('-')[0].Trim(),
                    Ulke     = TarihYer.Split('-')[1].Trim(),
                    Resim    = Resim,
                    Isim     = Isim.Replace("\n", string.Empty),
                    Imdb     = Imdb,
                    Tur      = Tur
                });
            }
            return(Liste);
        }
示例#3
0
        public static List <ShortDizi> GetEfsaneler(string HTML)
        {
            HtmlAgilityPack.HtmlDocument Document = new HtmlAgilityPack.HtmlDocument();
            Document.LoadHtml(HTML);

            var Diziler = Document.DocumentNode.SelectNodes("/html/body/main/div[4]/section/div[2]/article");

            var Liste = new List <ShortDizi>();

            foreach (var Dizi in Diziler)
            {
                var Isim  = Dizi.SelectSingleNode("figure/figcaption/a").InnerText;
                var Imdb  = Dizi.SelectSingleNode("figure/figcaption/div/div[1]").InnerText.Trim();
                var Tarih = Dizi.SelectSingleNode("figure/figcaption/div/div[2]").InnerText.Trim();
                var Resim = DbxCore.Http.GetImage(Dizi.SelectSingleNode("figure/a[2]/img").Attributes["src"].Value);
                Liste.Add(new ShortDizi()
                {
                    Resim = Resim,
                    Isim  = Isim.Replace("\n", string.Empty),
                    Imdb  = Imdb,
                    Yil   = Tarih
                });
            }
            return(Liste);
        }
        public async Task <IActionResult> Edit(int id, Dizi dizi)
        {
            var diziFromDb = await _db.Diziler.Where(m => m.Id == dizi.Id).FirstOrDefaultAsync();

            dizi.Image = diziFromDb.Image;
            if (diziFromDb.Approved == true && User.IsInRole(Constants.ModeratorUser)) // Moderator'un onaylanmış bir postu değiştirmesine izin vermiyoruz.
            {
                return(RedirectToAction(nameof(Index)));
            }
            else if (ModelState.IsValid)
            {
                //Şuanki kullanıcıyı bulma
                ClaimsPrincipal currentUser    = this.User;
                var             claimsIdentity = (ClaimsIdentity)this.User.Identity;
                var             claim          = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); // This is ID
                var             claimName      = currentUser.Identity.Name;
                //Eğer Onaylanan kişi tarafından yada yüklenen kişi tarafından yada Master admin ise yada (Onaylanmamış olup şuanki kullanıcı Normal admin ise) değiştirme işlemini gerçekleştir.
                if (diziFromDb.ApprovedBy == claimName || diziFromDb.UploadedBy == claimName || User.IsInRole(Constants.MasterAdminUser) || (User.IsInRole(Constants.NormalAdminUser) && diziFromDb.Approved == false))
                {
                    //C:\Users\StrongTURK\source\repos\DiziSearch\DiziSearch\wwwroot
                    string webRootPath = _hostingEnvironment.WebRootPath; //wwwroot
                    var    files       = HttpContext.Request.Form.Files;  //Yüklenen type file'ın url'sini al

                    // var diziFromDb = await _db.Diziler.Where(m => m.Id == dizi.Id).FirstOrDefaultAsync();

                    if (files.Count > 0 && files[0] != null) //Dosya 0'dan büyük ve ilgili image yüklenmiş ise
                    {
                        //C:\Users\StrongTURK\source\repos\DiziSearch\DiziSearch\wwwroot'\'images\DiziImages
                        var uploads       = Path.Combine(webRootPath, Constants.ImageFolder);
                        var extension_new = Path.GetExtension(files[0].FileName);//Yüklediğimiz dosyanın extension'ı al
                        var extension_old = Path.GetExtension(diziFromDb.Image);

                        //Eğer ilgili Image var ise o image'i sil
                        if (System.IO.File.Exists(Path.Combine(uploads, dizi.Id + extension_old)))
                        {
                            System.IO.File.Delete(Path.Combine(uploads, dizi.Id + extension_old));
                        }

                        //ilgili uploads'taki yere Id.extension isimli bir dosya yarat
                        using (var filestream = new FileStream(Path.Combine(uploads, dizi.Id + extension_new), FileMode.Create))
                        {
                            files[0].CopyTo(filestream); //yaratılan dosyaya ilgili yüklenen dosyayı kopyala.
                        }
                        //Image' ilgili url'yi ata
                        dizi.Image = @"\" + Constants.ImageFolder + @"\" + dizi.Id + extension_new;
                    }
                    if (dizi.Image != null) //eğer image yüklenmiş ise databasedeki image bölmesine ata
                    {
                        diziFromDb.Image = dizi.Image;
                    }
                    //This changes applying if its been changing like _db.Update(); await _db.SaveChangesAsync();
                    diziFromDb.Name        = dizi.Name;
                    diziFromDb.Year        = dizi.Year;
                    diziFromDb.Country     = dizi.Country;
                    diziFromDb.IMDBScore   = dizi.IMDBScore;
                    diziFromDb.Description = dizi.Description;
                    diziFromDb.Alias       = Url.AliasUrl(dizi.Name);
                    diziFromDb.Genre       = dizi.Genre;
                    diziFromDb.InFront     = dizi.InFront;
                    #region AdminIslemler

                    //UploadedBy kısmında kim eklemişse onu atama işlemini gerçekleştir

                    //Master Admin yada Normal admin değilse otomatik olarak approved false olarak ayarlasın.
                    if (User.IsInRole(Constants.ModeratorUser))
                    {
                        diziFromDb.Approved = false;
                    }
                    else
                    {
                        //Eğer önceki onay durumuyla şuanki onay durumu eşleşmiyorsa yeniden biri onaylamıştır.
                        if (diziFromDb.Approved == false || (diziFromDb.Approved != dizi.Approved))
                        {
                            diziFromDb.ApprovedBy = currentUser.Identity.Name; // this is name
                        }
                        diziFromDb.Approved = dizi.Approved;
                    }
                    #endregion

                    var a = diziFromDb.IMDBScore.ToString();
                    diziFromDb.IMDBScoreStr = a[0] + "." + a[1];
                    await _db.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    ModelState.AddModelError("", "Bunu yapacak izniniz bulunmamaktadır.");
                }
            }
            return(View(dizi));
        }
        public async Task <IActionResult> Create(Dizi dizi)
        {
            if (!ModelState.IsValid)
            {
                return(NotFound());
            }

            var IsDiziExists = _db.Diziler.Where(m => m.Name == dizi.Name).Count();

            if (IsDiziExists > 0)
            {
                ModelState.AddModelError("", "İlgili dizi zaten daha önce yaratıldı.");
                return(View());
            }
            else
            {
                _db.Diziler.Add(dizi);
                await _db.SaveChangesAsync();

                //C:\Users\StrongTURK\source\repos\DiziSearch\DiziSearch\wwwroot
                string webRootPath = _hostingEnvironment.WebRootPath; //wwwroot
                var    files       = HttpContext.Request.Form.Files;  //Yüklenen type file'ın url'sini al

                var diziFromDb = _db.Diziler.Find(dizi.Id);

                if (files.Count > 0) //Eğer dizi yüklenmişse
                {
                    //C:\Users\StrongTURK\source\repos\DiziSearch\DiziSearch\wwwroot'\'images\DiziImages
                    var uploads   = Path.Combine(webRootPath, Constants.ImageFolder);
                    var extension = Path.GetExtension(files[0].FileName);//Yüklediğimiz dosyanın extension'ı al

                    //ilgili uploads'taki yere Id.extension isimli bir dosya yarat
                    using (var filestream = new FileStream(Path.Combine(uploads, dizi.Id + extension), FileMode.Create))
                    {
                        files[0].CopyTo(filestream); //yaratılan dosyaya ilgili yüklenen dosyayı kopyala.
                    }
                    //Image' ilgili url'yi ata
                    diziFromDb.Image = @"\" + Constants.ImageFolder + @"\" + dizi.Id + extension;
                }
                else //Eğer Dizi yüklenmemişse
                {
                    var uploads = Path.Combine(webRootPath, Constants.ImageFolder + @"\" + Constants.DefaultImage);
                    //default-image.png'i = kopyala ve ilgili isim ile kayıt et
                    System.IO.File.Copy(uploads, webRootPath + @"\" + Constants.ImageFolder + @"\" + dizi.Id + ".png");
                    //Image'i ilgili url'yi ata
                    diziFromDb.Image = @"\" + Constants.ImageFolder + @"\" + dizi.Id + ".png";
                }
                //AddedTime
                diziFromDb.AddedDate = DateTime.Now;
                diziFromDb.Alias     = Url.AliasUrl(diziFromDb.Name); //Alias atama normal ismi uygun biçimde düzenleyerek.
                var a = diziFromDb.IMDBScore.ToString();
                diziFromDb.IMDBScoreStr = a[0] + "." + a[1];
                #region AdminIslemler
                //Şuanki kullanıcıyı bulma
                ClaimsPrincipal currentUser    = this.User;
                var             claimsIdentity = (ClaimsIdentity)this.User.Identity;
                var             claim          = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); // This is ID
                //UploadedBy kısmında kim eklemişse onu atama işlemini gerçekleştir
                diziFromDb.UploadedBy = currentUser.Identity.Name;                                    // this is name

                //Master Admin yada Normal admin değilse otomatik olarak approved false olarak ayarlasın.
                if (User.IsInRole(Constants.ModeratorUser))
                {
                    diziFromDb.Approved = false;
                }
                //Eğer onaylanmış vaziyette ise kimin onayladığını alalım
                if (diziFromDb.Approved == true)
                {
                    diziFromDb.ApprovedBy = currentUser.Identity.Name;
                }
                #endregion
                await _db.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
        }