BAĞLANTILARIM

Takip Edin:

0

ASP.NET MVC ITEXTSHARP KULLANARAK PDF SAYFALARI DİNAMİK OLARAK DÜZENLEME

Pazar, Haziran 17, 2018 / / , , ,

Pdf dosyasına yazılacak verilerin koordinatlarını bir tabloda tutarak aşağıdaki şekilde ItextSharp kullanarak gerçekleştirdik.

  public string PdfFormIslem(int id, int formId)
        {
            //form bilgilerini getir         
            //formda kullanılacak alan bilgilerini getir
            //personel bilgilerini getir
            string olusanDosyaYolVeAd = String.Empty;
            //form bilgilerini getir
            var veriForm = Islem.Form.Bilgi(formId);
            //form bilgisi varsa
            if (veriForm != null)
            {
                try
                {
                    string kullanilacakFormAd = veriForm.FormAd;
                    string kullanilacakDosyaAd = veriForm.DosyaAd;
                    string kullanilacakYol = Server.MapPath("/Upload/Form/");
                    string[] diziDosyaAd = veriForm.DosyaAd.Split('.');
                    string kullanilacakYeniKayitAd = diziDosyaAd[0];
                    //personel bilgilerini getir
                    var veriPersonel = Islem.Personel.Bilgi(id);
                    string personelAdSoyad = veriPersonel.Ad + " " + veriPersonel.Soyad; // "TAMER YİĞİT";
                    string personelAdSoyadKadin = veriPersonel.Ad + " " + veriPersonel.Soyad + " " + veriPersonel.IlkSoyad; // "TAMER YİĞİT";
                    string duzenlemisPersonelAdSoyad = Helpers.Araclar.TurkceKarakterDuzenle(personelAdSoyad);
                    kullanilacakYeniKayitAd += "_" + duzenlemisPersonelAdSoyad + ".pdf";
                    olusanDosyaYolVeAd = kullanilacakYol + kullanilacakYeniKayitAd;
                    // oku
                    PdfReader reader = new PdfReader(kullanilacakYol + kullanilacakDosyaAd);
                    int pdfSayfaSayisi = reader.NumberOfPages; //pdf toplam kaç sayfadan oluşuyor
                    Document document = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
                    // yaz
                    FileStream fs = new FileStream(kullanilacakYol + kullanilacakYeniKayitAd, FileMode.Create, FileAccess.Write);
                    PdfWriter writer = PdfWriter.GetInstance(document, fs);
                    document.Open();
                    //sayfa sayısı kadar dön
                    for (int s = 1; s <= pdfSayfaSayisi; s++)
                    {
                        document.NewPage(); //yeni sayfa oluşmasını sağladık
                        Rectangle size = reader.GetPageSizeWithRotation(s);
                        // pdf content
                        PdfContentByte cb = writer.DirectContent;
                        // font ayarları
                        string ARIALUNI_TFF = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "Arial.ttf");
                        BaseFont bf = BaseFont.CreateFont(ARIALUNI_TFF, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
                        cb.SetColorFill(BaseColor.BLACK);
                        cb.SetFontAndSize(bf, 9);
                        // verileri yaz
                        int baslangicKoordinatX = 0;
                        int baslangicKoordinatY = 792;
                        var veriFormData = Islem.FormData.Listele(formId, s);
                        //form dataları varsa
                        if (veriFormData != null)
                        {
                            //formda kullanılacak data sayısı kadar dön
                            for (int i = 0; i < veriFormData.Count; i++)
                            {
                                var formDataAd = veriFormData[i].DataAd;
                                float formDataKoordinatX = Convert.ToUInt32(veriFormData[i].KoordinatX);
                                float formDataKoordinatY = Convert.ToInt32(veriFormData[i].KoordinatY);
                                var cekilecekData = veriPersonel.GetType().GetProperties().Single(p => p.Name == formDataAd);
                                var yazilacakData = cekilecekData.GetValue(veriPersonel);
                                if (yazilacakData != null)
                                {
                                    cb.BeginText();
                                    cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, yazilacakData.ToString(), baslangicKoordinatX + formDataKoordinatX, baslangicKoordinatY - formDataKoordinatY, 0);
                                    cb.EndText();
                                }
                            }
                        }
                        // pdf oluştur
                        PdfImportedPage page = writer.GetImportedPage(reader, s);
                        cb.AddTemplate(page, 0, 0);
                    }
                    // kapat
                    document.Close();
                    //fs.Flush();
                    fs.Close();
                    writer.Close();
                    reader.Close();
                    return olusanDosyaYolVeAd;
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
            }
            return olusanDosyaYolVeAd;
        }

0

ASP.NET MVC AJAX İLE VERGİ NO DOĞRULAMA

Cumartesi, Mayıs 05, 2018 / / , , , ,

Girilen vergi numarasının doğru olup olmadığı aşağıdaki şekilde kullanılabilir.

Contoller tarafı

        [HttpPost]
        public JsonResult VergiNoKontrol(string no)
        {
            if (ModelState.IsValid)
            {
                if (no.Length == 10)
                {
                    var x = new int[9];
                    var y = new int[9];
                    for (int i = 0; i < 9; i++)
                    {
                        x[i] = (int.Parse(no[i].ToString()) + 9 - i) % 10;
                        y[i] = (x[i] * (int)Math.Pow(2, 9 - i)) % 9;
                        if (x[i] != 0 && y[i] == 0)
                        {
                            y[i] = 9;
                        }
                    }
                    int hesap = ((10 - (y.Sum() % 10)) % 10);
                    string sonKarakter = no.Substring(9, 1);
                    if (hesap == Convert.ToInt32(sonKarakter))
                    {
                        return Json(new { Durum = true }, JsonRequestBehavior.AllowGet);
                    }
                    //return ((10 - (y.Sum() % 10)) % 10) == int.Parse(vkn[9].ToString());
                }
                else
                {
                    return Json(new { Durum = false }, JsonRequestBehavior.AllowGet);
                }
            }
            return Json(new { Durum = false });
        }



View tarafı

<script type="text/javascript">
    $(function () {
        var isSuccess = false;
        $("#txtVergiNo").focusout(function () {
            //alert("kontrol et");
            var kontrolEdilecekBilgi = $("#txtVergiNo").val();
            if (kontrolEdilecekBilgi == "") {
                //$("#mesajMetin").text("Lütfen tüm alanları doldurunuz!");
                //$("#mesaj").show();
                return;
            }
            var data = { no: kontrolEdilecekBilgi };
            $.ajax({
                type: 'POST',
                url: "/Cari/VergiNoKontrol",
                data: JSON.stringify(data),
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                success: function (sonuc) {
                    //alert(sonuc.Durum);
                    if (sonuc.Durum == true) {
                        isSuccess = true;
                    }
                },
                complete: function () {
                    if (isSuccess == true) {
                        //alert("true")                     
                    } else {
                        //alert("Vergi No Hatalı! Lütfen kontrol ediniz.");
                        swal("Vergi No Hatalı!", "Lütfen kontrol ediniz..", "error")
                    }
                    isSuccess = false;
                }
            });
            })
    });
</script>

0

ASP.NET MVC RAZOR @ KAÇIŞ YÖNTEMLERİ

Çarşamba, Mart 07, 2018 / / , , , ,

Örneğin eposta adresinin girileceği bir textbox kontrolünün placeholder özelliğine @ işareti yazdığınızda bunu Razor kodu gibi algılayıp hata verecektir. Bu ve benzeri durumlarda aşağıdaki yöntem kullanılabilir. 


@Html.Raw("@")

0

ENTITY İLE LIST TİPİNDE GELEN VERİLERİ DATATABLE'A AKTARMA

Cumartesi, Şubat 10, 2018 / / , , ,

Entity ile List<> türünde gelen kayıtları DataTable içine aktaran fonksiyon..



        public static DataTable DataTableYap<T>(List<T> items)
        {
            DataTable dataTable = new DataTable(typeof(T).Name);
            PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
            foreach (PropertyInfo prop in Props)
            {
                var type = (prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>) ? Nullable.GetUnderlyingType(prop.PropertyType) : prop.PropertyType);
                dataTable.Columns.Add(prop.Name, type);
            }
            foreach (T item in items)
            {
                var values = new object[Props.Length];
                for (int i = 0; i < Props.Length; i++)
                {
                    values[i] = Props[i].GetValue(item, null);
                }
                dataTable.Rows.Add(values);
            }
            return dataTable;
        }


Çağır..

            var tekrarsizKayitlar = Islem.Finans.ListeleRapor(cariTip:0, sehirId: secilenSehirId, ilceId: secilenIlceId, durum: 1);
            //gelen kayıtları datatable içine at
            DataTable dtRapor = new DataTable();
            dtRapor = DataTableYap(tekrarsizKayitlar);

0

ASP.NET MVC DATATABLE KULLANARAK VIEW TARAFINDA LİSTELEME

Cumartesi, Aralık 23, 2017 / / , , , ,

Controller tarafında üzerinde çeşitli işlemler yaptığımız DataTable tablomuzu View tarafına gönderdik ve listeleme yaptık.

Controller tarafı

public ActionResult Rapor()
        {
            DataTable dtRapor = RaporTablo(Convert.ToDateTime(Session["ILKTARIH"]), Convert.ToDateTime(Session["SONTARIH"]));
            return View(dtRapor);
        }


View tarafı

@model System.Data.DataTable
<table class="table">
                                <thead>
                                    <tr>
                                        <th>ŞEHİR</th>
                                        <th>İLÇE</th>
                                        <th>CARİ</th>
                                        <th>AÇIKLAMA</th>
                                        <th>TARİH</th>
                                        <th>TUTAR</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    @for (int i = 0; i < Model.Rows.Count; i++)
                                        {
                                            <tr>
                                                <td>@Model.Rows[i]["SehirAdi"]</td>
                                                <td>@Model.Rows[i]["IlceAdi"]</td>
                                                <td>@Model.Rows[i]["CariUnvan"]</td>
                                                <td>@Model.Rows[i]["Ad"]</td>
                                                <td>@Convert.ToDateTime(Model.Rows[i]["HareketTarih"]).ToString("dd.MM.yyyy")</td>
                                                <td>@Convert.ToDouble(Model.Rows[i]["Miktar"]).ToString("N2") @if(@Model.Rows[i]["ParaTip"].ToString()=="1") { @Html.Raw("TRY") } @if(@Model.Rows[i]["ParaTip"].ToString()=="2") { @Html.Raw("USD") } @if(@Model.Rows[i]["ParaTip"].ToString()=="3") { @Html.Raw("EURO") } </td>
                                            </tr>
                                        }
                                </tbody>
                            </table>

0

ASP.NET MVC VIEW TARAFINDA URL ID BİLGİSİNİN RAZOR İLE ALINMASI

Çarşamba, Kasım 22, 2017 / / , , ,

Mvc yapısında Url'de bulunan id parametresinin dizin şeklinde gönderilmesi durumunda, bu bilgiye sayfa içinde kullanılmak üzere Request.QueryString[".."] tarzında erişilmek istendiğinde aşağıdaki şekilde kullanılabilir.


var id = ViewContext.RouteData.Values["id"];
int id = Convert.ToInt32(ViewContext.RouteData.Values["id"]);

 

1

ASP.NET MVC İLE SUMMERNOTE BENZERİ WYSIWYG EDİTÖRLERİN KULLANIMI

Pazar, Ekim 22, 2017 / / , , ,

Asp.Net Mvc'de Summernote aşağıdaki şekilde kullanılabilir.


Yerleşim şekli;

<textarea id="m_summernote_1" name="m_summernote_1" class="summernote"></textarea>


Controller tarafında verinin alınma şekli; [ValidateInput(false)] kullanımına dikkat.

 [HttpPost]
        [ValidateInput(false)]
        public ActionResult Ekle(FormCollection form)
        {           
                string sablon = form["m_summernote_1"];
}

SON YORUMLAR