public ActionResult IlanYonetimi()
        {
            List <KonutViewModel> ilanlar = new KonutRepo().GetAll().OrderByDescending(x => x.EklenmeTarihi).Select(x =>
                                                                                                                    new KonutViewModel()
            {
                Aciklama        = x.Aciklama,
                YayindaMi       = x.YayindaMi,
                Adres           = x.Adres,
                Baslik          = x.Baslik,
                BinaYasi        = x.BinaYasi,
                Boylam          = x.Boylam,
                EklenmeTarihi   = x.EklenmeTarihi,
                Enlem           = x.Enlem,
                Fiyat           = x.Fiyat,
                FotografYollari = (x.Fotograflar.Count > 0 ? x.Fotograflar.Select(y => y.Yol).ToList() : new List <string>()),
                ID              = x.ID,
                IlanTuruID      = x.IlanTuruID,
                IsitmaTuruID    = x.IsitmaSistemiID,
                KatTuruID       = x.KatturID,
                KullaniciID     = x.KullaniciID,
                Metrekare       = x.Metrekare,
                OdaSayisi       = x.OdaSayisi,
                OnaylanmaTarihi = x.OnaylanmaTarihi
            }).ToList();

            return(View(ilanlar));
        }
示例#2
0
        public ActionResult Index(int?sayfa)
        {
            var model = new KonutRepo().GetAllActive().Select(x => new IlanListeleViewModel()
            {
                Adres        = x.Adres,
                Fiyat        = x.Fiyat,
                IlanBaslik   = x.Baslik,
                IlanFotoPath = x.Fotograflar.Count > 0 ? x.Fotograflar.FirstOrDefault().Yol : "img/nofoto.jpg",
                IlanDurum    = x.IlanTuru.Ad,
                KonutId      = x.ID,
                MetreKare    = x.Metrekare,
                OdaSayisi    = x.OdaSayisi
            }).ToList();
            int toplamKayit = model.Count;
            int sayfaSayisi = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(toplamKayit) / sayfadaGosterilecekIlanSayisi));

            ViewBag.MaxSayfaSayisi = sayfaSayisi;
            ViewBag.BulunduguSayfa = 1;
            if (sayfa == null)
            {
                return(View(model.Take(sayfadaGosterilecekIlanSayisi).ToList()));
            }
            else
            {
                if (sayfa.Value > sayfaSayisi)
                {
                    ViewBag.BulunduguSayfa = sayfaSayisi;
                    return(View(model.Skip((sayfaSayisi - 1) * sayfadaGosterilecekIlanSayisi).Take(sayfadaGosterilecekIlanSayisi).ToList()));
                }
                ViewBag.BulunduguSayfa = sayfa.Value;
                return(View(model.Skip((sayfa.Value - 1) * sayfadaGosterilecekIlanSayisi).Take(sayfadaGosterilecekIlanSayisi).ToList()));
            }
        }
示例#3
0
        public ActionResult IlanListele()
        {
            var userManager = MembershipTools.NewUserManager();

            var user = userManager.FindById(HttpContext.User.Identity.GetUserId());
            List <KonutViewModel> model = new KonutRepo().GetAll().Where(x => x.KullaniciID == user.Id).Select(x => new KonutViewModel()
            {
                Aciklama        = x.Aciklama,
                YayindaMi       = x.YayindaMi,
                Adres           = x.Adres,
                Baslik          = x.Baslik,
                BinaYasi        = x.BinaYasi,
                Boylam          = x.Boylam,
                EklenmeTarihi   = x.EklenmeTarihi,
                Enlem           = x.Enlem,
                Fiyat           = x.Fiyat,
                FotografYollari = (x.Fotograflar.Count > 0 ? x.Fotograflar.Select(y => y.Yol).ToList() : new List <string>()),
                ID              = x.ID,
                IlanTuruID      = x.IlanTuruID,
                IsitmaTuruID    = x.IsitmaSistemiID,
                KatTuruID       = x.KatturID,
                KullaniciID     = x.KullaniciID,
                Metrekare       = x.Metrekare,
                OdaSayisi       = x.OdaSayisi,
                OnaylanmaTarihi = x.OnaylanmaTarihi
            }).ToList();

            return(View(model));
        }
示例#4
0
        public ActionResult Detay(int?id, string baslik, string durum)
        {
            if (id == null)
            {
                return(RedirectToAction("index"));
            }

            Konut konut = new KonutRepo().GetByID(id.Value);

            if (konut == null || konut.YayindaMi == false)
            {
                return(RedirectToAction("index"));
            }
            KonutViewModel Konutmodel = new KonutViewModel()
            {
                ID              = konut.ID,
                Aciklama        = konut.Aciklama,
                Adres           = konut.Adres,
                Baslik          = konut.Baslik,
                BinaYasi        = konut.BinaYasi,
                Boylam          = konut.Boylam,
                EklenmeTarihi   = konut.EklenmeTarihi,
                Enlem           = konut.Enlem,
                Fiyat           = konut.Fiyat,
                FotografYollari = konut.Fotograflar.Count > 0 ? konut.Fotograflar.Select(x => x.Yol).ToList() : new List <string>(),
                IlanTuruID      = konut.IlanTuruID,
                IsitmaTuruID    = konut.IsitmaSistemiID,
                KatTuruID       = konut.KatturID,
                KullaniciID     = konut.KullaniciID,
                Metrekare       = konut.Metrekare,
                OdaSayisi       = konut.OdaSayisi,
                OnaylanmaTarihi = konut.OnaylanmaTarihi,
                YayindaMi       = konut.YayindaMi,
                Durum           = konut.IlanTuru.Ad,
                Isitma          = konut.IsitmaSistemi.Ad,
                Kat             = konut.Katturu.Tur
            };
            ProfileViewModel profilModel = new ProfileViewModel()
            {
                Username   = konut.Sahibi.UserName,
                AvatarPath = konut.Sahibi.AvatarPath,
                Email      = konut.Sahibi.Email,
                Name       = konut.Sahibi.Name,
                Surname    = konut.Sahibi.Surname
            };
            DetayViewModel model = new DetayViewModel()
            {
                KonutModel = Konutmodel, ProfilModel = profilModel
            };

            return(View(model));
        }
示例#5
0
        public ActionResult Kullanici(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(RedirectToAction("Index"));
            }
            ViewBag.kullaniciAdi = MembershipTools.NewUserManager().FindById(id).UserName;
            var model = new KonutRepo().GetAllActive().Where(x => x.KullaniciID == id).Select(x => new IlanListeleViewModel()
            {
                Adres        = x.Adres,
                Fiyat        = x.Fiyat,
                IlanBaslik   = x.Baslik,
                IlanFotoPath = x.Fotograflar.Count > 0 ? x.Fotograflar.FirstOrDefault().Yol : "img/nofoto.jpg",
                IlanDurum    = x.IlanTuru.Ad,
                KonutId      = x.ID,
                MetreKare    = x.Metrekare,
                OdaSayisi    = x.OdaSayisi
            }).ToList();

            return(View(model));
        }
        public ActionResult IlanDetay(int?id)
        {
            var ilanturleri   = new List <SelectListItem>();
            var katturleri    = new List <SelectListItem>();
            var isinmaturleri = new List <SelectListItem>();

            new IlanTuruRepo().GetAll().OrderBy(x => x.Ad).ToList().ForEach(x =>
                                                                            ilanturleri.Add(new SelectListItem()
            {
                Text  = x.Ad,
                Value = x.ID.ToString()
            }));
            new KatTurRepo().GetAll().ForEach(x => katturleri.Add(new SelectListItem
            {
                Text  = x.Tur,
                Value = x.ID.ToString()
            }));
            new IsitmaSistemiRepo().GetAll().ForEach(x => isinmaturleri.Add(new SelectListItem
            {
                Text  = x.Ad,
                Value = x.ID.ToString()
            }));
            ViewBag.ilanturleri   = ilanturleri;
            ViewBag.katturleri    = katturleri;
            ViewBag.isinmaturleri = isinmaturleri;

            if (id == null)
            {
                return(RedirectToAction("IlanYonetimi"));
            }
            var ilan = new KonutRepo().GetByID(id.Value);

            if (ilan == null)
            {
                return(RedirectToAction("IlanYonetimi"));
            }

            var model = new KonutViewModel()
            {
                Aciklama        = ilan.Aciklama,
                Baslik          = ilan.Baslik,
                EklenmeTarihi   = ilan.EklenmeTarihi,
                Adres           = ilan.Adres,
                BinaYasi        = ilan.BinaYasi,
                Boylam          = ilan.Boylam,
                FotografYollari = ilan.Fotograflar.Select(f => f.Yol).ToList(),
                Enlem           = ilan.Enlem,
                Fiyat           = ilan.Fiyat,
                IlanTuruID      = ilan.IlanTuruID,
                IsitmaTuruID    = ilan.IsitmaSistemiID,
                ID               = ilan.ID,
                KatTuruID        = ilan.KatturID,
                KullaniciID      = ilan.KullaniciID,
                Metrekare        = ilan.Metrekare,
                OdaSayisi        = ilan.OdaSayisi,
                OnaylanmaTarihi  = ilan.OnaylanmaTarihi,
                YayindaMi        = ilan.YayindaMi,
                Bilgilendirmeler = new BilgilendirmeRepo().GetAll().Where(x => x.KonutID == ilan.ID).Select(b => new BilgilendirmeViewModel()
                {
                    ID             = b.ID,
                    Aciklama       = b.Aciklama,
                    AciklamaZamani = b.AciklamaZamani,
                    KonutID        = b.KonutID,
                    OlumluMu       = b.OlumluMu,
                    YoneticiID     = b.YoneticiID
                }).ToList()
            };

            return(View(model));
        }
        public async Task <ActionResult> IlanDuzenle(KonutViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("IlanYonetimi"));
            }

            var konut = new KonutRepo().GetByID(model.ID);
            IlanBilgilendirme bilgilendirme = new IlanBilgilendirme()
            {
                Aciklama   = model.BilgilendirmeAciklamasi,
                KonutID    = model.ID,
                OlumluMu   = model.OlumluMu,
                YoneticiID = HttpContext.User.Identity.GetUserId()
            };
            bool aciklamaVarMi = false;

            if (!string.IsNullOrEmpty(model.BilgilendirmeAciklamasi))
            {
                konut.Bilgilendirmeler.Add(bilgilendirme);
                aciklamaVarMi = true;
            }

            #region Kullanıcı Bilgilendirme

            string SiteUrl = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host +
                             (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port);

            if (konut.YayindaMi == true && model.YayindaMi == false)
            {
                await SiteSettings.SendMail(new MailModel()
                {
                    Message = $"Merhaba {konut.Sahibi.Name}<br/><strong>'{konut.ID}'</strong> nolu ilanınız yayından kaldırılmıştır<br/><p>Sebep: <em>{model.BilgilendirmeAciklamasi}</em></p><a href='{SiteUrl}/Ilan/IlanDetay/{konut.ID}'>İlanınız görmek ve düzenlemek için tıklayınız</a>",
                    Subject = "İlanınız yayından kaldırıldı",
                    To      = konut.Sahibi.Email
                });
            }
            else if (konut.YayindaMi == false && model.YayindaMi == true)
            {
                konut.OnaylanmaTarihi = DateTime.Now;
                await SiteSettings.SendMail(new MailModel()
                {
                    Message = $"Merhaba {konut.Sahibi.Name}<br/><strong>'{konut.ID}'</strong> nolu ilanınız yayına başlamıştır<br/><p><em>{model.BilgilendirmeAciklamasi}</em></p><a href='{SiteUrl}/Ilan/Detay/{konut.ID}'>İlanınız görmek için tıklayınız</a>",
                    Subject = "İlanınız Yayında!",
                    To      = konut.Sahibi.Email
                });
            }
            else if (aciklamaVarMi)
            {
                await SiteSettings.SendMail(new MailModel()
                {
                    Message = $"Merhaba {konut.Sahibi.Name}<br/><strong>'{konut.ID}'</strong> nolu ilanınız için bir bildirim var<br/><p>Bildirim: <em>{model.BilgilendirmeAciklamasi}</em></p><a href='{SiteUrl}/Ilan/IlanDetay/{konut.ID}'>İlanınız görmek ve düzenlemek için tıklayınız</a>",
                    Subject = "İlanınız için yeni bir bildirim var",
                    To      = konut.Sahibi.Email
                });
            }
            #endregion

            konut.Aciklama        = model.Aciklama;
            konut.Adres           = model.Adres;
            konut.Baslik          = model.Baslik;
            konut.BinaYasi        = model.BinaYasi;
            konut.Boylam          = model.Boylam;
            konut.Enlem           = model.Enlem;
            konut.Fiyat           = model.Fiyat;
            konut.IlanTuruID      = model.IlanTuruID;
            konut.IsitmaSistemiID = model.IsitmaTuruID;
            konut.KatturID        = model.KatTuruID;
            konut.Metrekare       = model.Metrekare;
            konut.OdaSayisi       = model.OdaSayisi;
            konut.YayindaMi       = model.YayindaMi;
            new KonutRepo().Update();

            return(RedirectToAction("IlanDetay", new { id = konut.ID }));
        }
示例#8
0
        public async Task <ActionResult> IlanDuzenle(KonutViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("IlanDetay", new { id = model.ID }));
            }

            var konut = new KonutRepo().GetByID(model.ID);

            konut.YayindaMi       = false;
            konut.Aciklama        = model.Aciklama;
            konut.Adres           = model.Adres;
            konut.Baslik          = model.Baslik;
            konut.BinaYasi        = model.BinaYasi;
            konut.Boylam          = model.Boylam;
            konut.Enlem           = model.Enlem;
            konut.Fiyat           = model.Fiyat;
            konut.IlanTuruID      = model.IlanTuruID;
            konut.IsitmaSistemiID = model.IsitmaTuruID;
            konut.KatturID        = model.KatTuruID;
            konut.Metrekare       = model.Metrekare;
            konut.OdaSayisi       = model.OdaSayisi;
            new KonutRepo().Update();

            #region Admin Bilgilendirme

            string SiteUrl = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host +
                             (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port);

            var roleManager = MembershipTools.NewRoleManager();
            var users       = roleManager.FindByName("Admin").Users;

            var           userManager = MembershipTools.NewUserManager();
            List <string> mailler     = new List <string>();

            foreach (var item in users)
            {
                mailler.Add(userManager.FindById(item.UserId).Email);
            }

            foreach (var mail in mailler)
            {
                await SiteSettings.SendMail(new MailModel
                {
                    Subject = "İlan Güncellendi",
                    Message = $"Sayın Admin,<br/>Sitenizdeki bir ilan güncellendi, siz de bi zahmet onaylayın.<br/><a href='{SiteUrl}/Admin/IlanDetay/{model.ID}'>Haydi Onayla</a><p>İyi Çalışmalar<br/>Sitenin Nöbetçisi</p>",
                    To      = mail
                });
            }

            #endregion
            if (model.Dosyalar.Count > 0)
            {
                model.Dosyalar.ForEach(file =>
                {
                    if (file != null && file.ContentLength > 0)
                    {
                        string fileName = Path.GetFileNameWithoutExtension(file.FileName);
                        string extName  = Path.GetExtension(file.FileName);
                        fileName        = fileName.Replace(" ", "");
                        fileName       += Guid.NewGuid().ToString().Replace("-", "");
                        fileName        = SiteSettings.UrlFormatConverter(fileName);
                        var klasoryolu  = Server.MapPath("~/Upload/" + model.ID);
                        var dosyayolu   = Server.MapPath("~/Upload/" + model.ID + "/") + fileName + extName;
                        if (!Directory.Exists(klasoryolu))
                        {
                            Directory.CreateDirectory(klasoryolu);
                        }
                        file.SaveAs(dosyayolu);
                        WebImage img = new WebImage(dosyayolu);
                        img.Resize(870, 480, false);
                        img.AddTextWatermark("Wissen", "RoyalBlue", opacity: 75, fontSize: 25, fontFamily: "Verdana");
                        img.Save(dosyayolu);
                        new FotografRepo().Insert(new Fotograf()
                        {
                            KonutID = model.ID,
                            Yol     = @"Upload/" + model.ID + "/" + fileName + extName
                        });
                    }
                });
            }

            return(RedirectToAction("IlanDetay", new { id = konut.ID }));
        }
示例#9
0
        public ActionResult IlanDetay(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("IlanListele"));
            }

            var  userManager = MembershipTools.NewUserManager();
            var  user        = userManager.FindById(HttpContext.User.Identity.GetUserId());
            bool userMi      = userManager.IsInRole(user.Id, "User");
            bool adminMi     = userManager.IsInRole(user.Id, "Admin");

            if (!(userMi || adminMi))
            {
                ModelState.AddModelError(string.Empty, "Sadece Aktif Kullanıcılar ilanlarını yönetebilirler");
                return(RedirectToAction("Profile", "Account"));
            }

            var ilan = new KonutRepo().GetByID(id.Value);

            if (ilan.KullaniciID != user.Id)
            {
                ModelState.AddModelError(string.Empty, "Herkes kendi ilanını düzenleyebilir.");
                return(RedirectToAction("Profile", "Account"));
            }

            var ilanturleri   = new List <SelectListItem>();
            var katturleri    = new List <SelectListItem>();
            var isinmaturleri = new List <SelectListItem>();

            new IlanTuruRepo().GetAll().OrderBy(x => x.Ad).ToList().ForEach(x =>
                                                                            ilanturleri.Add(new SelectListItem()
            {
                Text  = x.Ad,
                Value = x.ID.ToString()
            }));
            new KatTurRepo().GetAll().ForEach(x => katturleri.Add(new SelectListItem
            {
                Text  = x.Tur,
                Value = x.ID.ToString()
            }));
            new IsitmaSistemiRepo().GetAll().ForEach(x => isinmaturleri.Add(new SelectListItem
            {
                Text  = x.Ad,
                Value = x.ID.ToString()
            }));
            ViewBag.ilanturleri   = ilanturleri;
            ViewBag.katturleri    = katturleri;
            ViewBag.isinmaturleri = isinmaturleri;

            var model = new KonutViewModel()
            {
                Aciklama        = ilan.Aciklama,
                Baslik          = ilan.Baslik,
                EklenmeTarihi   = ilan.EklenmeTarihi,
                Adres           = ilan.Adres,
                BinaYasi        = ilan.BinaYasi,
                Boylam          = ilan.Boylam,
                FotografYollari = ilan.Fotograflar.Select(f => f.Yol).ToList(),
                Enlem           = ilan.Enlem,
                Fiyat           = ilan.Fiyat,
                IlanTuruID      = ilan.IlanTuruID,
                IsitmaTuruID    = ilan.IsitmaSistemiID,
                ID               = ilan.ID,
                KatTuruID        = ilan.KatturID,
                KullaniciID      = ilan.KullaniciID,
                Metrekare        = ilan.Metrekare,
                OdaSayisi        = ilan.OdaSayisi,
                OnaylanmaTarihi  = ilan.OnaylanmaTarihi,
                YayindaMi        = ilan.YayindaMi,
                Bilgilendirmeler = new BilgilendirmeRepo().GetAll().Where(x => x.KonutID == ilan.ID).Select(b => new BilgilendirmeViewModel()
                {
                    ID             = b.ID,
                    Aciklama       = b.Aciklama,
                    AciklamaZamani = b.AciklamaZamani,
                    KonutID        = b.KonutID,
                    OlumluMu       = b.OlumluMu,
                    YoneticiID     = b.YoneticiID
                }).ToList()
            };

            return(View(model));
        }