kadirocsoy.com
MuavinCode Kütüphanesi ASP.NET, MVC ve CORE Projelerinde Nasıl Kullanılır?

MuavinCode Kütüphanesi ASP.NET, MVC ve CORE Projelerinde Nasıl Kullanılır?

Merhabalar Herkese;
Ben Abdulkadir Öçsoy. Web projelerimizde sıklıkla kullandığımız kodları tekrar tekrar yazmak yerine bir kütüphane oluşturdum. Böylece farklı sayfalarda veya farklı web projelerinde aynı kodları sürekli tekrar yazmak veya kopyala/yapıştır yapmak zorunda kalmıyorum. Kütüphanenin ismi MuavinCode. C# programlama dili ve .NetStandart 2.0 ile oluşturdum ve nuget.org sitesinde yayınladım. Kütüphaneyi Visual Studio programı içerisindeki Manage NuGet Packages... ile projenize dahil edebilirisiniz. MuavinCode kütüphanesini ASP.NET, MVC veya CORE projelerinde sorunsuz kullanabilirsiniz. İçerisinde yer alan methodları örnek bir MVC proje ile elimden geldiğince anlatmaya çalışacağım. Ama ASP.Net ve CORE Projelerin indirme linklerini yazının sonunda bulabilirsiniz. İnşallah hepinize faydası olur. Vakit ayırıp okuduğunuz ve kullandığınız için şimdiden teşekkür ederim.

UrlDonustur(): Yazı başlıklarınızı adres çubuğunda türkçe karakterlerden ve gereksiz noktalama işaretlerinden arındırılmış şekilde göstermenizi sağlar. Ve maximum 150 karakterlik bir string geriye döndürür.

//Geri size döndüreceği string değer "her-hangi-bir-haber-basligi" şeklinde olacaktır.
var deger = Muavin.UrlDonustur("Her Hangi Bir HaBer BAŞLIĞI");


DosyaEkle(): Stream sınıfı türündeki dosyanızı, uzantısını ve kayıt etmek istediğiniz klasörün dosya yolunu yazdığınızda kayıt işlemini gerçekleştirir ve işlem başarılı olduğunda Guid methodu ile size rastgele dosya adını döndürür. Başarılı olmazsa boş bir string değer döndürür. Asp.Net için FileUpload, Mvc için HttpPostedFileBase veya Core için IFormFile olsun herbiri size dosyanızın stream formatını veriyor.

[HttpPost]
public ActionResult DosyaEkle(HttpPostedFileBase dosya)
{
    var dosyaadi = "";

    // Dosya ekleme işlemini yapmadan önce dosyanın seçilip seçilmediğini kontrol ediyoruz.
    if (dosya != null)
    {
        dosyaadi = Muavin.DosyaEkle(dosya.InputStream, dosya.ContentType.Split('/')[1], Server.MapPath("/Content/dosya/"));
    }
    //  dosya.InputStream, HttpPostedFileBase bize yüklemek istediğimiz dosyanın stream formatını veriyor.
    //  dosya.ContentType.Split('/')[1], dosyanın uzantısını alabiliyoruz. İsterseniz 'Path.GetExtension(dosya.FileName)' methodu ile de dosyanızın uzantısını alabilirsiniz.
    //  Server.MapPath("/Content/dosya/") methodu ile de dosyamızın yüklemesini istediğimiz klasörün dosya yolunu belirtiyoruz.

    //  Eğer dosya ekleme işlemi başarılı olursa Guid methodu ile rastgele 40 karakterlik string adında dosyanızı kayıt eder ve size o string adını döndürür.

    return View();
}


DosyaGuncelle(): DosyaEkle methodu ile aynı işlemi yapar. İlave olarak eski dosyanızın adını yazdığınızda onu silecektir.

public ActionResult DosyaGuncelle(HttpPostedFileBase dosya)
{
    var dosyaadi = "";
    var eskidosyaadi = "deneme.pdf";

    // Dosya güncelleme işlemini yapmadan önce dosyanın seçilip seçilmediğini kontrol ediyoruz.
    if (dosya != null)
    {
        dosyaadi = Muavin.DosyaGuncelle(dosya.InputStream, dosya.ContentType.Split('/')[1], Server.MapPath("/Content/dosya/"), eskidosyaadi);
    }
    //  dosya.InputStream, HttpPostedFileBase bize yüklemek istediğimiz dosyanın stream formatını veriyor.
    //  dosya.ContentType.Split('/')[1], dosyanın uzantısını alabiliyoruz. İsterseniz 'Path.GetExtension(dosya.FileName)' methodu ile de dosyanızın uzantısını alabilirsiniz.
    //  Server.MapPath("/Content/dosya/") methodu ile de dosyamızın yüklemesini istediğimiz klasörün dosya yolunu belirtiyoruz.
    //  eskidosyaadi, güncelleme işlemi sırasında eski dosyanız varsa onu silmeniz için yazabilirsiniz. yok ise boş geçebilirsiniz.

    //  Eğer dosya ekleme işlemi başarılı olursa Guid methodu ile rastgele 40 karakterlik string adında dosyanızı kayıt eder ve size o string adını döndürür. Eğer başarısız olursa eski dosya ismini geri döndürür.

    return View();
}


CokluDosyaEkle(): Stream sınıfı türünde dosyalarınızı liste hâlinde eklediğinizde DosyaEkle methodu ile kayıt işlemini yapar ve geriye dosya adlarını string listesi olarak döndürür. İşlem hatalı olduğu takdirde boş bir string listesi döndürür. 2 farklı method vardır. Birinde kayıt etmek istediğiniz dosyaları tek bir uzantı ile yapabilirsiniz. Diğerinde her dosyayı kendi uzantısıyla kayıt edebilirsiniz.

[HttpPost]
public ActionResult CokluDosyaEkle(List dosyalar)
{
    // Dosyaları eklemeden önce dosya seçilip seçilmediğini kontrol ediyoruz.
    if(dosyalar[0] != null)
    {
        // Birden fazla dosya işlemi için yeni bir stream listesi ve dosya uzantıları için yeni bir string listesi oluşturuyoruz.
        List stDosyaListesi = new List();
        List dosyauzantilari = new List(); // Eğer seçili dosyalar ortak uzantı ise bunu oluşturmanıza gerek yok.

        // Seçilen dosyaları döngüye sokup tek tek stream listesine ve uzantı listesine ekliyoruz.
        foreach (var item in dosyalar)
        {
            stDosyaListesi.Add(item.InputStream);
            dosyauzantilari.Add(item.ContentType.Split('/')[1]);
        }

        // Eğer seçili dosyalarınızın hepsi aynı uzantıda ise bu işlemi kullanabilirsiniz.
        var dosyaisimleri1 = Muavin.CokluDosyaEkle(stDosyaListesi, ".pdf", Server.MapPath("/Content/dosya/"));

        // Eğer seçili dosyalarınızın uzantıları birbirinden farklı ise işlemi uygulayabilirsiniz.
        var dosyaisimleri2 = Muavin.CokluDosyaEkle(stDosyaListesi, dosyauzantilari, Server.MapPath("/Content/dosya/"));

        // stDosyaListesi, seçili dosyalarınızın stream listesi
        // ".pdf", eğer ortak uzantı ise tek bir uzantı adı yazabilirsiniz.
        // dosyauzantilari, eğer uzantılar farklı ise string listesi halinde verebilirsiniz.
        // Server.MapPath("/Content/dosya/") methodu ile de dosyamızın yüklemesini istediğimiz klasörün dosya yolu.
    }

    return View();
}


ResimEkle(): Stream sınıfı türündeki resim dosyanızı uzantısı ve kayıt etmek istediğiniz klasörün dosya yolunu belirterek ekleyebilirsiniz. DosyaEkle methodundan farkı isterseniz resminizin dosya boyutunda azaltma işlemi yaptırabilir ve istediğiniz genişlikte kayıt edebilirsiniz. Dosya boyutu azaltma işlemi sırasında eğer resim arka planı transparan ise o arka planı siyah yapacaktır. Yazdığınız genişliğe göre orantı işlemi yapılıp yüksekliği de ayarlanacaktır. Böylece resimde herhangi bir esneme durumu söz konusu olmaz. Eğer orjinal boyutunda kalmasını isterseniz "0" yazabilirsiniz.

[HttpPost]
public ActionResult ResimEkle(HttpPostedFileBase resim)
{
    // Resmin seçili olup olmadığını kontrol ediyoruz.
    if(resim != null)
    {
        var resimadi = Muavin.ResimEkle(resim.InputStream, resim.ContentType.Split('/')[1], Server.MapPath("/Content/images/"), true, 1000);

        // resim.InputStream, HttpPostedFileBase bize yüklemek istediğimiz resmimizin stream formatını veriyor.
        // resim.ContentType.Split('/')[1], resmin uzantısını alabiliyoruz. İsterseniz 'Path.GetExtension(dosya.FileName)' methodu ile de resmin uzantısını alabilirsiniz.
        //  Server.MapPath("/Content/images/") methodu ile de resmin yüklemesini istediğimiz klasörün dosya yolunu belirtiyoruz.
        // true, yüklenecek resmin dosya boyutunda küçülme işlemi yaptırmanızı sağlar. Eğer orjinal boyutu olsun isterseniz false yazınız.
        //ÖNEMLİ NOT: Eğer yüklemek istediğiniz resim arka planı transparan ise arka planı siyah renk yapacaktır.
        // 1000, Resmin olmasını istediğiniz genişliği belirtiyoruz. Yüksekliği orantı işlemi hesaplanacaktır. Eğer orjinal genişlikte kalmasını isterseniz "0" sıfır yazınız.

        // Eğer resim ekleme işlemi başarılı olursa Guid methodu ile rastgele 40 karakterlik string adında resmi kayıt eder ve size o string adını döndürür. Başarısız olduğu durumda boş bir string değer döndürür.
    }

    return View();
}


ResimGuncelle(): ResimEkle methodu ile aynı işlemi yapar. İlave olarak eski resim dosyanızın adını yazdığınızda onu silecektir.

[HttpPost]
public ActionResult ResimGuncelle(HttpPostedFileBase resim)
{
    string eskiresimadi = "deneme.jpg";
    // Resmin seçili olup olmadığını kontrol ediyoruz.
    if (resim != null)
    {
        var resimadi = Muavin.ResimGuncelle(resim.InputStream, resim.ContentType.Split('/')[1], Server.MapPath("/Content/images/"), eskiresimadi, true, 1000);

        // resim.InputStream, HttpPostedFileBase bize yüklemek istediğimiz resmimizin stream formatını veriyor.
        // resim.ContentType.Split('/')[1], resmin uzantısını alabiliyoruz. İsterseniz 'Path.GetExtension(dosya.FileName)' methodu ile de resmin uzantısını alabilirsiniz.
        // Server.MapPath("/Content/images/") methodu ile de resmin yüklemesini istediğimiz klasörün dosya yolunu belirtiyoruz.
        // eskiresimadi, güncelleme işlemi sırasında eski resminiz varsa onu silmeniz için yazabilirsiniz. yok ise boş geçebilirsiniz.
        // true, yüklenecek resmin dosya boyutunda küçülme işlemi yaptırmanızı sağlar. Eğer orjinal boyutu olsun isterseniz false yazınız.
        //ÖNEMLİ NOT: Eğer yüklemek istediğiniz resim arka planı transparan ise arka planı siyah renk yapacaktır.
        // 1000, Resmin olmasını istediğiniz genişliği belirtiyoruz. Yüksekliği orantı işlemi hesaplanacaktır. Eğer orjinal genişlikte kalmasını isterseniz "0" sıfır yazınız.

        // Eğer resim ekleme işlemi başarılı olursa Guid methodu ile rastgele 40 karakterlik string adında resmi kayıt eder ve size o string adını döndürür. Başarısız olduğu durumda boş bir string değer döndürür.
    }

    return View();
}


CokluResimEkle(): Stream sınıfı türünde resim dosyalarınızı liste hâlinde eklediğinizde ResimEkle methodu ile kayıt işlemini yapar ve geriye dosya adlarını string listesi olarak döndürür. İşlem hatalı olduğu takdirde boş bir string listesi döndürür. 2 farklı method vardır. Birinde kayıt etmek istediğiniz resim dosyalarını tek bir uzantı ile yapabilirsiniz. Diğerinde her resim dosyasını kendi uzantısıyla kayıt edebilirsiniz.

[HttpPost]
public ActionResult CokluResimEkle(List resimler)
{
    // Resimleri eklemeden önce dosya seçilip seçilmediğini kontrol ediyoruz.
    if (resimler[0] != null)
    {
        // Birden fazla resim yükleme işlemi için yeni bir stream listesi ve resim uzantıları için yeni bir string listesi oluşturuyoruz.
        List stResimListesi = new List();
        List resimuzantilari = new List(); // Eğer seçili resimler ortak uzantı ise bunu oluşturmanıza gerek yok.

        // Seçilen resimleri döngüye sokup tek tek stream listesine ve uzantı listesine ekliyoruz.
        foreach (var item in resimler)
        {
            stResimListesi.Add(item.InputStream);
            resimuzantilari.Add(item.ContentType.Split('/')[1]);
        }

        // Eğer seçili resimlerin hepsi aynı uzantıda ise bu işlemi kullanabilirsiniz.
        var dosyaisimleri1 = Muavin.CokluDosyaEkle(stResimListesi, ".jpg", Server.MapPath("/Content/images/"));

        // Eğer seçili resimlerin uzantıları birbirinden farklı ise işlemi uygulayabilirsiniz.
        var dosyaisimleri2 = Muavin.CokluDosyaEkle(stResimListesi, resimuzantilari, Server.MapPath("/Content/images/"));

        // stResimListesi, seçili resimlerin stream listesi
        // ".jpg", eğer ortak uzantı ise tek bir uzantı adı yazabilirsiniz.
        // resimuzantilari, eğer uzantılar farklı ise string listesi halinde verebilirsiniz.
        // Server.MapPath("/Content/images/") methodu ile de resmin yüklemesini istediğimiz klasörün dosya yolu.
    }

    return View();
}


MailGonder(): Bu method ile bir veya birden fazla kişiye mail gönderme işlemi yapabilirsiniz.

public ActionResult MailGonderIslemi()
{
    // Öncelikle MuavinCode'dan türüyen KaynakMail sınıfı oluşturuyoruz. Bu sınıfın amacı mail gönderimi yapılacak e-mail adresinin giriş bilgilerini yazmak. İsterseniz bunu bir sınıf içerisinde tanımlayıp farklı sayfalarda da kullanabilirsiniz.
    KaynakMail km = new KaynakMail
    {
        girisemail = "gonderici@u8585532_kodb.com",// Gönderim yapılacak e-mail adresi.
        girissifresi = "Deneme123",             // E-mail adresinin şifresi.
        hostadres = "mail.u8585532_kodb.com",      // E-mail adresinin giriş yapıldığı host adresi.
        port = 587,                             // Port adresi. Genellikle 587 oluyor.
       kimdenisim = "Abdulkadir Öçsoy",        // Gönderici adı soyadı.
       kimdenmailadres = "info@u8585532_kodb.com" // Gönderici e-mail adresi.
    };

    var sonuc1 = Muavin.MailGonder(km, "E-Mail Konusu", "E-Mail İçeriği", "alici1@u8585532_kodb.com");
    var sonuc2 = Muavin.MailGonder(km, "E-Mail Konusu", "E-Mail İçeriği", "alici1@u8585532_kodb.com", "alici2@u8585532_kodb.com");
    var sonuc3 = Muavin.MailGonder(km, "E-Mail Konusu", "E-Mail İçeriği", "alici1@u8585532_kodb.com", "alici2@u8585532_kodb.com", "alici3@u8585532_kodb.com");
    // E-Mail İçeriğinden sonra bir veya birden fazla e-mail adresi ekleyip daha fazla kişiye mail gönderebilirsiniz.
    // E-mail gönderim işlemi başarılı sonuçlandığında geriye true değerini başarısız olduğunda ise false değerini döndürür.

    return View();
}


ResimOrjinYonu(): Bazı resimleri yükledikten sonra resimlerin 90°, 180° veya 270° şeklinde yön değiştirdiğini görürüz. Bu Method ile resmi kayıt etmeden önce orjinal yönüne çevirebilirsiniz. Tabi eğer MuavinCode ile resim ekleme işlemi yapıyorsunuz bu methodu kullamanıza gerek yok. Çünkü kayıt işlemi sırasında bu method ile kontrolünü yapıyor.

[HttpPost]
public ActionResult ResimOrjinYonu(HttpPostedFileBase resim)
{

    var img = Muavin.ResimOrjinYonu(resim.InputStream);
    // resim.InputStream, resim dosyasının stream formatı

    // Geriye Image tipinde resminizi döndürür.

    return View();
}


BoyutaDonustur(): Dosyanızın long tipindeki değerini KB, MB v.b. türüne değiştirme işlemi yapar.

[HttpPost]
public ActionResult BoyutaDonustur(HttpPostedFileBase resim)
{

    var dosyaboyutu = Muavin.BoyutaDonustur(resim.ContentLength);
    //Geriye örneğin 786.5KB, 10.2MB gibi değerler döndürür.

    return View();
}


ListeDonustur(): Mssql select sorgusunda DataTable ile gelen verilerinizi oluşturmuş olduğunuz bir sınıfa liste olarak yazdırabilirsiniz. Dikkat etmeniz gereken kısım DataTable'daki verilerin alan adları ve oluşturmuş olduğunuz sınıfın içindeki isimler aynı olmak zorunda.

// Örneğin Ogrenci adında bir sınıf oluşturdunuz ve içerisine aşağıdaki bilgileri eklediniz.
public class Ogrenci
{
    public string adsoyad { get; set; }
    public DateTime dogumtarihi { get; set; }
    public string telefon { get; set; }
}
DataTable dt = new DataTable(); // Tabi bu kısma yeni bir DataTable değil, select sorgusu sonucu verileriniz gelecek.

var ogrenciler = Muavin.ListeDonustur<Ogrenci>(dt);
// '<' ve '>' işaretleri arasındaki Ogrenci kısım DataTable'dan gelen verilerinizin dönüştürülmesini istediğiniz sınıf.
// dt, DataTable'daki verileriniz.

//İşlem başarılı olduğunda List tipinde öğrenci listesini size döndürecektir.

 


MuavinCode kütüphanesi içerisinde bulunan methodlar bu kadardı. İnşallah açıklayıcı bir şekilde anlatabilmişimdir ve İnşallah sizlere faydalı bir kütüphane olur. Kütüphane hakkında sormak istediğiniz veya takıldığınız bir kısım olursa ya da kütüphanede şu method da olsaydı iyi olurdu derseniz yorum yazabilirsiniz. Okuduğunuz için teşekkür ederim.

MuavinCode Kütühanesi İndirmek İçin TIKLAYINIZ
ASP.NET Örnek Projesi İçin TIKLAYINIZ
.NET MVC Örnek Projesi İçin TIKLAYINIZ
.NET CORE Örnek Projesi İçin TIKLAYINIZ

Yorumlar

Yorum Yap