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))); } }
public async Task <IActionResult> Display(string dizi, string alias, int?id) { if (alias == null) { return(NotFound()); } epVM.Episode = await _db.Episodes.Include(m => m.Dizi).Where(m => m.Dizi.Approved == true).Where(m => m.Approved == true).Where(m => m.Dizi.Alias == dizi).Where(m => m.Alias == alias).FirstOrDefaultAsync(); if (epVM.Episode == null) { return(NotFound()); } #region IleriGeriMekanizmasi var a = await _db.Episodes.Include(m => m.Dizi).Where(m => m.Approved == true).Where(m => m.Dizi.Alias == dizi).Select(m => m.Season).ToListAsync(); #region Son Sezon'u bulmak int buyukSayi = Convert.ToInt32(a[0]); for (int i = 0; i < a.Count(); i++) { buyukSayi = buyukSayi >= (Convert.ToInt32(a[i])) ? buyukSayi : (Convert.ToInt32(a[i])); } #endregion int b = buyukSayi; // Son sezon var c = await _db.Episodes.Include(m => m.Dizi).Where(m => m.Approved == true).Where(m => m.Dizi.Alias == dizi).Where(m => m.Season == epVM.Episode.Season).Select(m => m.Ep).ToListAsync(); var d = c.Count(); // O anki sezondaki son bölüm sayısı ViewBag.dene = c.Count(); //Eğer bölüm devam ediyor ve Son bölüm şuanki bölüme eşit değilse if (epVM.Episode.Durum == "0" && d.ToString() != epVM.Episode.Ep) { //Bölümü arttır int n = Convert.ToInt32(epVM.Episode.Ep) + 1; //şuanki bölüme 1 ekler ViewBag.next = Url.AliasUrl(epVM.Episode.Season + ". Sezon " + n.ToString() + ". Bölüm" + " izle"); //Eğer ilk bölüm değil ise geri gitme option'ını sağla if (epVM.Episode.Ep != "1") { ViewBag.back = Url.AliasUrl(epVM.Episode.Season + ". Sezon " + (n - 2).ToString() + ". Bölüm" + " izle"); } else if (epVM.Episode.Ep == "1" && epVM.Episode.Season != "1") { var f = await _db.Episodes.Include(m => m.Dizi).Where(m => m.Dizi.Alias == dizi).Where(m => m.Season == (Convert.ToInt32(epVM.Episode.Season) - 1).ToString()).Select(m => m.Ep).ToListAsync(); var g = f.Count(); // O anki sezonun bir önceki sezondaki toplam bölüm sayısı //Sezonu indir en sonki bölümü patlat. ViewBag.back = Url.AliasUrl((Convert.ToInt32(epVM.Episode.Season) - 1).ToString() + ". Sezon " + g.ToString() + ". Bölüm" + " izle"); } } else if (epVM.Episode.Durum == "0" && epVM.Episode.Ep != "1") { int n = Convert.ToInt32(epVM.Episode.Ep) + 1; //şuanki bölüme 1 ekler ViewBag.back = Url.AliasUrl(epVM.Episode.Season + ". Sezon " + (n - 2).ToString() + ". Bölüm" + " izle"); } //Eğer Sezon finali ve Son sezon şuanki sezona eşit değilse = > SEZON FİNALİ VE BİR SONRAKİ SEZON VAR else if (epVM.Episode.Durum == "1" && b > Convert.ToInt32(epVM.Episode.Season)) { //Bir Sonraki sezona geç int n = Convert.ToInt32(epVM.Episode.Season) + 1; //şuanki sezon'a 1 ekler ViewBag.next = Url.AliasUrl(n.ToString() + ". Sezon " + "1" + ". Bölüm" + " izle"); //Bir önceki bölüme geri dön int k = Convert.ToInt32(epVM.Episode.Ep) + 1; //şuanki bölüme 1 ekler ViewBag.back = Url.AliasUrl(epVM.Episode.Season + ". Sezon " + (k - 2).ToString() + ". Bölüm" + " izle"); } //Eğer Sezon finali ve son sezon şuanki sezona eşit geri git sadece else if (epVM.Episode.Durum == "1" && b.ToString() == epVM.Episode.Season) { int k = Convert.ToInt32(epVM.Episode.Ep) + 1; //şuanki bölüme 1 ekler ViewBag.back = Url.AliasUrl(epVM.Episode.Season + ". Sezon " + (k - 2).ToString() + ". Bölüm" + " izle"); } //Eğer Final ise else if (epVM.Episode.Durum == "2") // { //İlerlemene gerek yok. //Bir önceki bölüme geri dön int n = Convert.ToInt32(epVM.Episode.Ep) + 1; //şuanki bölüme 1 ekler if (epVM.Episode.Ep != "1") // EĞER FİNAL BÖLÜMÜ 1.BÖLÜM DEĞİLSE { ViewBag.back = Url.AliasUrl(epVM.Episode.Season + ". Sezon " + (n - 2).ToString() + ". Bölüm" + " izle"); } else if (epVM.Episode.Ep == "1" && epVM.Episode.Season != "1") // BÖLÜM 1.BÖLÜM VE S1.SEZON DEĞİL İse { var f = await _db.Episodes.Include(m => m.Dizi).Where(m => m.Dizi.Alias == dizi).Where(m => m.Season == (Convert.ToInt32(epVM.Episode.Season) - 1).ToString()).Select(m => m.Ep).ToListAsync(); var g = f.Count(); // O anki sezonun bir önceki sezondaki toplam bölüm sayısı //Sezonu indir en sonki bölümü patlat. ViewBag.back = Url.AliasUrl((Convert.ToInt32(epVM.Episode.Season) - 1).ToString() + ". Sezon " + g.ToString() + ". Bölüm" + " izle"); } } #endregion if (epVM.Episode == null) { return(NotFound()); } if (id == null) { epVM.Episode.CurrentLink = epVM.Episode.Link1; } else if (id == 1) { epVM.Episode.CurrentLink = epVM.Episode.Link1; } else if (id == 2) { epVM.Episode.CurrentLink = epVM.Episode.Link2; } else if (id == 3) { epVM.Episode.CurrentLink = epVM.Episode.Link3; } else if (id == 4) { epVM.Episode.CurrentLink = epVM.Episode.Link4; } else if (id == 5) { epVM.Episode.CurrentLink = epVM.Episode.Link5; } return(View(epVM)); }
public async Task <IActionResult> CreatePOST() { if (ModelState.IsValid) { epVM.Episode.AddedDate = DateTime.Now; epVM.Episode.Name = epVM.Episode.Season + ". Sezon " + epVM.Episode.Ep + ". Bölüm"; epVM.Episode.Alias = Url.AliasUrl(epVM.Episode.Name + " izle"); if (epVM.Episode.Link1 == null) { epVM.Episode.Link1 = "-"; } epVM.Episode.CurrentLink = epVM.Episode.Link1; epVM.Episode.Subtitle = @"images/FlagImages/" + epVM.Episode.Subtitle + ".png"; _db.Episodes.Add(epVM.Episode); await _db.SaveChangesAsync(); var episodeFromDb = _db.Episodes.Find(epVM.Episode.Id); #region LinklerinDurumu if (episodeFromDb.Link1 != null) { if (episodeFromDb.Link1.IndexOf('-') == -1) { episodeFromDb.Link1 = episodeFromDb.Link1.Insert(0, "-"); //Eğer '-' çizgiyi bulamadıysa başına - koy. } } if (episodeFromDb.Link2 != null) { if (episodeFromDb.Link2.IndexOf('-') == -1) { episodeFromDb.Link2 = episodeFromDb.Link2.Insert(0, "-"); //Eğer '-' çizgiyi bulamadıysa başına - koy. } } if (episodeFromDb.Link3 != null) { if (episodeFromDb.Link3.IndexOf('-') == -1) { episodeFromDb.Link3 = episodeFromDb.Link3.Insert(0, "-"); //Eğer '-' çizgiyi bulamadıysa başına - koy. } } if (episodeFromDb.Link4 != null) { if (episodeFromDb.Link4.IndexOf('-') == -1) { episodeFromDb.Link4 = episodeFromDb.Link4.Insert(0, "-"); //Eğer '-' çizgiyi bulamadıysa başına - koy. } } if (episodeFromDb.Link5 != null) { if (episodeFromDb.Link5.IndexOf('-') == -1) { episodeFromDb.Link5 = episodeFromDb.Link5.Insert(0, "-"); //Eğer '-' çizgiyi bulamadıysa başına - koy. } } #endregion #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 epVM.Episode.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)) { epVM.Episode.Approved = false; } //Eğer onaylanmış vaziyette ise kimin onayladığını alalım if (epVM.Episode.Approved == true) { epVM.Episode.ApprovedBy = currentUser.Identity.Name; } #endregion await _db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View()); }
public async Task <IActionResult> Edit(int id) { if (id != epVM.Episode.Id) //Fazlalık Check yapmıştım gelen id şuanki Id'nin eşleşmemesi durumunda { return(NotFound()); } var episodeFromDb = _db.Episodes.Find(id); if (episodeFromDb.Approved == true && User.IsInRole(Constants.ModeratorUser)) // Moderator'un onaylanmış bir postu değiştirmesine izin vermiyoruz. { ModelState.AddModelError("", "Moderatorler onaylanmış bölümleri düzeltemezler"); } else if (ModelState.IsValid) { //var episodeFromDb = _db.Episodes.SingleOrDefault(m => m.Id == epVM.Episode.Id); // same result or m => m.Id == id) //var episodeFromDb = _db.Episodes.Where(m => m.Id == epVM.Episode.Id).FirstOrDefault(); //var episodeFromDb = _db.Episodes.Find(id); //same result or Find(epVM.Episode.Id //Ş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 (episodeFromDb.ApprovedBy == claimName || episodeFromDb.UploadedBy == claimName || User.IsInRole(Constants.MasterAdminUser) || (User.IsInRole(Constants.NormalAdminUser) && episodeFromDb.Approved == false)) { episodeFromDb.DiziId = epVM.Episode.DiziId; episodeFromDb.Season = epVM.Episode.Season; episodeFromDb.Ep = epVM.Episode.Ep; episodeFromDb.Durum = epVM.Episode.Durum; episodeFromDb.Date = epVM.Episode.Date; episodeFromDb.EpName = epVM.Episode.EpName; if (epVM.Episode.Link1 == null) { epVM.Episode.Link1 = "-"; } episodeFromDb.Link1 = epVM.Episode.Link1; episodeFromDb.Link2 = epVM.Episode.Link2; episodeFromDb.Link3 = epVM.Episode.Link3; episodeFromDb.Link4 = epVM.Episode.Link4; episodeFromDb.Link5 = epVM.Episode.Link5; #region LinklerinDurumu if (episodeFromDb.Link1 != null) { if (episodeFromDb.Link1.IndexOf('-') == -1) { episodeFromDb.Link1 = episodeFromDb.Link1.Insert(0, "-"); //Eğer '-' çizgiyi bulamadıysa başına - koy. } } if (episodeFromDb.Link2 != null) { if (episodeFromDb.Link2.IndexOf('-') == -1) { episodeFromDb.Link2 = episodeFromDb.Link2.Insert(0, "-"); //Eğer '-' çizgiyi bulamadıysa başına - koy. } } if (episodeFromDb.Link3 != null) { if (episodeFromDb.Link3.IndexOf('-') == -1) { episodeFromDb.Link3 = episodeFromDb.Link3.Insert(0, "-"); //Eğer '-' çizgiyi bulamadıysa başına - koy. } } if (episodeFromDb.Link4 != null) { if (episodeFromDb.Link4.IndexOf('-') == -1) { episodeFromDb.Link4 = episodeFromDb.Link4.Insert(0, "-"); //Eğer '-' çizgiyi bulamadıysa başına - koy. } } if (episodeFromDb.Link5 != null) { if (episodeFromDb.Link5.IndexOf('-') == -1) { episodeFromDb.Link5 = episodeFromDb.Link5.Insert(0, "-"); //Eğer '-' çizgiyi bulamadıysa başına - koy. } } #endregion episodeFromDb.Spoiler = epVM.Episode.Spoiler; episodeFromDb.Subtitle = epVM.Episode.Subtitle; //KULLANICININ GIRMESINI ISTEMEDIGIMIZ DEGERLERİ KONTROLLERDA ATAMA YAPTIK episodeFromDb.Name = epVM.Episode.Season + ". Sezon " + epVM.Episode.Ep + ". Bölüm"; episodeFromDb.Alias = Url.AliasUrl(episodeFromDb.Name + " izle"); episodeFromDb.CurrentLink = epVM.Episode.Link1; episodeFromDb.Subtitle = @"images/FlagImages/" + epVM.Episode.Subtitle + ".png"; #region AdminIslemler //Şuanki kullanıcıyı bulma //Master Admin yada Normal admin değilse otomatik olarak approved false olarak ayarlasın. if (User.IsInRole(Constants.ModeratorUser)) { episodeFromDb.Approved = false; } else { //Eğer önceki onay durumuyla şuanki onay durumu eşleşmiyorsa yeniden biri onaylamıştır. if (episodeFromDb.Approved == false || (episodeFromDb.Approved != epVM.Episode.Approved)) { episodeFromDb.ApprovedBy = currentUser.Identity.Name; // this is name } episodeFromDb.Approved = epVM.Episode.Approved; } episodeFromDb.EditedBy = currentUser.Identity.Name; // this is name #endregion await _db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } else { ModelState.AddModelError("", "Bunu yapacak yetkiniz bulunmamakta"); } } return(View(epVM)); //Modelde sıkıntı var eski modeli geri yönlendir. }