BAĞLANTILARIM

Takip Edin:

0

Jquery Datatables Search Geciktirmeli Arama

Cuma, Aralık 23, 2022 / / ,

 Datatables.net tabloları üzerinde arama yaparken tuşa her basıldığında sunucuya istekte bulunmasının önüne geçmek için aşağıdaki yöntem kullanılabilir. Aşağıdaki kullanım, kullanıcının arama alanına karakter girişi bittikten sonra isteği sunucuya 1 kez göndermektedir.


        var handleSearchDatatable = function () {

            const filterSearch = document.querySelector('[data-kt-docs-table-filter="search"]');

            var dtSearchTimer = 0;

            filterSearch.addEventListener('keydown', function (e) {

                //console.log("keydown");

                clearTimeout(dtSearchTimer);

            });


            filterSearch.addEventListener('keyup', function (e) {

                //console.log("keyup");

                dtSearchTimer = setTimeout(function () {

                    //console.log("gecikmeli arama yap");

                    dt.search(e.target.value).draw();

                }, 500);


            });

        }

 

0

ASP.NET MVC CONTROLLERDAN BAŞKA BİR CONTROLLER İÇİNDEKİ METHODU ÇAĞIRMA

Çarşamba, Temmuz 10, 2019 / / , ,

Asp.Net Mvc ile Başka Bir Controller İçindeki Fonksiyonu Çağırma


var controller = DependencyResolver.Current.GetService<HomeController>();
            controller.ControllerContext = new ControllerContext(this.Request.RequestContext, controller);
            //methodu çağır
            ActionInvoker.InvokeAction(controller.ControllerContext, "Index");

0

ASP.NET C# İLE MAİL GÖNDERİRKEN BASE64 TİPİNDEKİ İMAJLARIN GÖRÜNMEMESİ

Salı, Nisan 16, 2019 / / , , , ,

C# ile mail gönderilirken eğer göndereceğiniz mail içinde base64 tipinde gömülmüş görselleriniz varsa, bu imajların alıcılar tarafından görüntülenebilmesi için AlternatifeView oluşturulabilir. Uygulamanın kullanımı aşağıdadır.

private static AlternateView ContentToAlternateView(string content)
    {
        var imgCount = 0;
        List<LinkedResource> resourceCollection = new List<LinkedResource>();
        foreach (Match m in Regex.Matches(content, "<img(?<value>.*?)>"))
        {
            imgCount++;
            var imgContent = m.Groups["value"].Value;
            string type = Regex.Match(imgContent, ":(?<type>.*?);base64,").Groups["type"].Value;
            string base64 = Regex.Match(imgContent, "base64,(?<base64>.*?)\"").Groups["base64"].Value;
            if (String.IsNullOrEmpty(type) || String.IsNullOrEmpty(base64))
            {
                //ignore replacement when match normal <img> tag
                continue;
            }
            var replacement = " src=\"cid:" + imgCount + "\"";
            content = content.Replace(imgContent, replacement);
            var tempResource = new LinkedResource(Base64ToImageStream(base64), new ContentType(type))
            {
                ContentId = imgCount.ToString()
            };
            resourceCollection.Add(tempResource);
        }
        AlternateView alternateView = AlternateView.CreateAlternateViewFromString(content, null, MediaTypeNames.Text.Html);
        foreach (var item in resourceCollection)
        {
            alternateView.LinkedResources.Add(item);
        }
        return alternateView;
    }


public static Stream Base64ToImageStream(string base64String)
    {
        byte[] imageBytes = Convert.FromBase64String(base64String);
        MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
        return ms;
    }


Üretilen Alternatif Görünümün mail gönderim fonksiyonu içinde örnek kullanımı:
.....
mail.Priority = MailPriority.High;
mail.Subject = mailBaslik;
mail.AlternateViews.Add(alternatifGorunum);
...


Detaylı kaynak için :

https://stackoverflow.com/questions/39407474/add-attachment-base64-image-in-mailmessage-and-read-it-in-html-body

0

SHAREPOINT 2013 FLOW (AKIŞ) HTTP POST İLE DIŞARIDAN TETİKLEME

Perşembe, Ocak 17, 2019 / /

Bu işlem için öncelikle HttpRequest ile başlatılan ve methodu POST olan bir flow oluşturmak gerekmekte.

Flow'u oluşturduktan sonra Flow'un adresi yani url bilgisi alınır. Kodlarımızdan istekte bulunurken isteği bu Flow'a yapacağımızdan flow url adresi önemli.

Testler için Postman programı kullanılabilir.

Genel mantığı Flow'a url nin devamında Flow'da kullanılacak parametreler eklenerek kullanılabileceği gibi, Sharepoint'te yer alan bir listenin sadece satır ID bilgisi gönderilerek Flow'un devamında yani koşullarında o listenin tüm bilgileri kullanılabilir. Burada önemli olan Flow koşullarını oluştururken ihtiyaç olan bilgilerin tamamının Url'deki parametlerden mi yoksa tıklanmış listenin satırının ID si başlangıç olarak alınıp tüm bilgileri listelerden çekmek mi olduğudur.

Detaylı anlatım için :

https://www.about365.nl/2018/11/13/securing-your-http-request-trigger-in-flow/
https://blog.portiva.nl/2018/10/22/custom-actionable-messages-with-microsoft-flow-part-2-getting-the-response/
http://www.techwithnakkeeran.com/2018/05/creating-office-365-sharepoint-custom.html
https://sergeluca.wordpress.com/2017/03/16/invoke-a-flow-from-another-sharepoint-flow-step-12-tutorial/
https://elbruno.com/2017/02/01/flow-how-to-invoke-a-flow-from-an-external-app-using-http-request/
https://flow.microsoft.com/en-us/blog/call-flow-restapi/

0

SHAREPOINT 2013 LİSTEYE (TABLOYA) JSON BUTON EKLEME

Perşembe, Ocak 17, 2019 / /

Sharepoint 2013'te listeye Add Column seçeneği ile yeni bir sütun eklenerek aşağıdaki kod ile özel bir buton oluşturulabilir.

Aşağıdaki örnek tıklandığında bir flow tetiklemektedir. ID bölümüne tetiklenecek flowun ID bilgisi yazılmalıdır.

{
    "$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
    "elmType": "span",
    "style": {
        "color": "#0078d7"
    },
    "children": [
    {
        "elmType": "span",
        "attributes": {
            "iconName": "Flow"
        }
    },
    {
        "elmType": "button",
        "style": {
            "border": "none",
            "background-color": "transparent",       
            "color": "#0078d7",   
            "cursor": "pointer"
        },
        "txtContent": "Send to Manager",
        "customRowAction": {
            "action": "executeFlow",
            "actionParams": "{\"id\": \"183bedd4-6f2b-4264-855c-9dc7617b4dbe\"}"
        }         
    }       
  ]
}


Detaylı bilgi için : https://docs.microsoft.com/en-us/sharepoint/dev/declarative-customization/column-formatting

0

MICROSOFT SHAREPOINT

Cuma, Aralık 28, 2018 / /



Daha önce ismini duyduğum, ne olduğu hakkında yüzeysel bilgiye sahip olduğum SharePoint ile bir süre önce tanışma ve çalışma fırsatı buldum. SharePoint ile ilgilenenlere faydalı olabileceğini düşünerek, bu konuda Türkçe kaynağın az olduğunu da görerek bir miktar SharePoint paylaşımı yapmaya karar verdim.

SHAREPOINT NEDİR?

SharePoint için benim tanımım şudur; Microsoft firması kurumsal veya kurumsal olma yolunda ilerleyen firmalar için hiç kod yazmadan veya gerektiğinde çok az kod yazarak ve bu kodlamanın bir bölümünü de Excel'deki EĞER, İÇERİR gibi anlaşılır komutlarla yaptırarak kurumsal bir içerik yönetim sistemi yapmak istemiş.

Örneğin tekne üreten bir firmamız var. 

Müşterilerimizin olduğu bir sayfamız olsun. Bir sayfa oluşturup logolarını ekledikten sonra, bu sayfayı yalnızca bizim göreceğimiz şekilde ayarladık.

Müşterilerimizden birini tıklayınca ona ait yani onun için ürettiğimiz ya da üretmekte olduğumuz tekne projelerinin adı veya fotoğrafı gelsin.Bu sayfayı hem biz hem de bu firmanın kullanıcıları görsün şeklinde ayarladık.

Projelerden birini tıklayınca ilgili tekneye ait görseller, bilgiler, yapılan işler, hangi personel kaç saat çalışmış, hangi parçaların montajı yapılmış, sipariş verilmiş parçaların durumu gibi birçok bilginin olduğu sayfa olsun. Bu sayfayı biz görelim, müşterimiz görsün. Bazı bölümlerini mesela hangi personel teknenin neresini yapıyor, o gün ne iş yapıyor öğrenmek ve takip etmek için o teknede görevli personelimize de yetki verip bilgilerini girebilecekleri şekilde ayarladık. Böylelikle proje takibi, personelin iş takibi, sipariş takibi gibi süreçleri yönetebileceğimiz bir yapımız oldu. İşte Sharepoint kurumunuza bunu sunuyor.

Elbette daha fazlasını isteyenler için kendi kodlarını yazabilecekleri geliştirme imkanı da vermiş. Biz aslında daha çok bu tarafıyla yani özel geliştirme yapma tarafıyla ilgileneceğiz.

NELER YAPILIYOR?
  • Web siteleri oluşturabilir
  • Alt siteler oluşturabilir
  • Sitelere içerikler oluşturabilir
  • Listeler (Tablolar) oluşturabilir
  • Kodlama ve düzenleme yapmanızı sağlayacak özel sayfalar oluşturabilir
  • Özel butonlar oluşturup sayfalarınız ya da listeleriniz arası parametre taşıyabilir
  • Akış (flow) oluşturabilir
  • Oluşturduğunuz sayfaları, tabloları, akışları template (şablon) olarak belirleyip, aynı şablondan hızlıca başka şeyler türetebilirsiniz
  • Oluşturduğunuz içeriğe kimlerin erişip erişemeyeceğini yönetebilirsiniz.

UYGULAMA GELİŞTİRME

Visual Studio ve daha sonra kullanımı hakkında bahsedeceğim SharePoint Designer gibi programlarla yeni uygulamalar(sayfalar) geliştirebilmektesiniz.

NEREDE ÇALIŞIYOR?

Çalışmalarımı bulut üzerinde çalışan SharePoint Online isimli versiyonu üzerinde yapıyorum. Kendi sunucunuza kurabildiğiniz SharePoint Server isimli bir versiyonunun olduğunu da biliyorum.

0

ASP.NET PUBLISH ZAMANINI SİTEDE GÖSTERMEK

Perşembe, Kasım 29, 2018 / / , , ,

Aşağıdaki Razor kodu kullanılarak projenin publish edildiği zaman yakalanabiliyor.

Not: Dosyaları yüklerken sunucudaki bin klasörünü silip yenisini yüklemek gerekti. Üzerine yazılsın şeklinde aktarıldığında etkili olmadı.

@File.GetCreationTime(ViewContext.Controller.GetType().Assembly.Location)

SON YORUMLAR