public static Haber HaberViewModelToHaber(HaberViewModel model, Haber haber)
        {
            int kullaniciId = model.KullaniciId;

            haber.Id = model.Id;
            haber.Aciklama = model.Aciklama;
            haber.Baslik = model.Baslik;
            haber.HaberTipId = model.HaberTipId;
            haber.Icerik = model.Icerik;
            haber.KategoriId = model.KategoriId;
            haber.Kaynak = model.Kaynak;
            haber.Yayinda = model.Yayinda;
            haber.DegistirmeKullanici = kullaniciId;
            haber.YayinlamaKullanici = kullaniciId;
            haber.KullaniciId = kullaniciId;
            haber.HaberPozisyonId = model.HaberPozisyonId;

            return haber;
        }
        public static HaberViewModel HaberToHaberViewModel(Haber haber)
        {
            HaberViewModel model = new HaberViewModel();

            model.Aciklama = haber.Aciklama;
            model.Baslik = haber.Baslik;
            model.HaberTipId = haber.HaberTipId;
            model.Icerik = haber.Icerik;
            model.Id = haber.Id;
            model.KategoriId = haber.KategoriId;
            model.Kaynak = haber.Kaynak;
            model.KullaniciId = haber.KullaniciId;
            model.SecilenEtiketler = haber.Etiketler.Select(x => x.Id).ToArray();
            model.Yayinda = haber.Yayinda;
            model.KucukResim = haber.KucukProfilResim;
            model.HaberPozisyonId = haber.HaberPozisyonId;

            return model;
        }
        public ActionResult HaberDuzenle(HaberViewModel model)
        {
            try
            {
                var haber = haberServis.HaberBul(model.Id);
                haber = ViewModelToModel.HaberViewModelToHaber(model, haber);
                var dosya = model.Resim;
                var etiketler = etiketServis.Etiketler(model.SecilenEtiketler);

                if (dosya != null && dosya.ContentLength > 0)
                {
                    // resmin ismini değiştir.
                    var fileName = Guid.NewGuid().ToString() + System.IO.Path.GetExtension(dosya.FileName);

                    // dosya dizinlerinin yollarını oluştur.
                    var orijinalResimDizin = Server.MapPath("~/Images/uploads/Haber");
                    var buyukResimDizin = Server.MapPath("~/Images/uploads/Haber/Buyuk");
                    var kucukResimDizin = Server.MapPath("~/Images/uploads/Haber/Kucuk");

                    // dizin yoksa oluştur.
                    if (!Directory.Exists(orijinalResimDizin))
                    {
                        Directory.CreateDirectory(orijinalResimDizin);
                        Directory.CreateDirectory(buyukResimDizin);
                        Directory.CreateDirectory(kucukResimDizin);
                    }

                    // dosyayı kaydet
                    dosya.SaveAs(Path.Combine(orijinalResimDizin, fileName));

                    // resimleri farklı boyutlarda kaydet.
                    ImageManager.SaveResizedImage(Image.FromFile(Path.Combine(orijinalResimDizin, fileName)), new Size(600, 600), buyukResimDizin, fileName);
                    ImageManager.SaveResizedImage(Image.FromFile(Path.Combine(orijinalResimDizin, fileName)), new Size(200, 200), kucukResimDizin, fileName);

                    haber.OrjinalProfilResim = Path.Combine("Images/uploads/Haber/", fileName);
                    haber.BuyukProfilResim = Path.Combine("Images/uploads/Haber/Buyuk/", fileName);
                    haber.KucukProfilResim = Path.Combine("Images/uploads/Haber/Kucuk/", fileName);
                }

                haber.DegistirmeTarihi = DateTime.Now;
                haber.OkunmaSayisi = 0;
                haber.YayinlanmaTarihi = DateTime.Now;
                haber.YorumSayisi = 0;
                haber.TumEtiketler = string.Join(", ", etiketler.Select(x => x.Ad));
                haber.Etiketler.Clear();
                etiketler.ForEach(x => haber.Etiketler.Add(x));

                haberServis.HaberDuzenle(haber);

                return RedirectToAction("Haberler");
            }
            catch (Exception ex)
            {
                // haber kaydı başarısızsa
                // dropdownlist elemanlarını
                // tekrar ilkleme
                model = new HaberViewModel
                {
                    Kategoriler = kategoriServis.Kategoriler(),
                    Kullanicilar = kullaniciServis.Kullanicilar(),
                    HaberTipleri = haberServis.HaberTipleri(),
                    Etiketler = etiketServis.Etiketler(),
                    HaberPozisyon = haberServis.HaberPozisyonlari()
                };
            }

            return View(model);
        }
        public ActionResult HaberEkle()
        {
            // dropdownlist elemanlarını ilkleme
            var model = new HaberViewModel
            {
                Kategoriler = kategoriServis.Kategoriler(),
                Kullanicilar = kullaniciServis.Kullanicilar(),
                HaberTipleri = haberServis.HaberTipleri(),
                Etiketler = etiketServis.Etiketler(),
                HaberPozisyon = haberServis.HaberPozisyonlari()
            };

            return View(model);
        }