Extensions Methods etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Extensions Methods etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14 Ekim 2011 Cuma

HTML Document Extensions Methods

        public static void AddScript(this HtmlDocument htmlDocument, string javaScript)
        {
            HtmlElement head = htmlDocument.GetElementsByTagName("head")[0];
            HtmlElement scriptElement = htmlDocument.CreateElement("script");
            IHTMLScriptElement element = (IHTMLScriptElement)scriptElement.DomElement;
            element.text = javaScript;
            head.AppendChild(scriptElement);
        }

        public static void AddCSS(this HtmlDocument htmlDocument, string cssFileName)
        {
            IHTMLDocument2 currentDocument = (IHTMLDocument2)htmlDocument.DomDocument;
            int length = currentDocument.styleSheets.length;
            IHTMLStyleSheet styleSheet = currentDocument.createStyleSheet(@"", length + 1);
            using (TextReader reader = new StreamReader(cssFileName))
            {
                styleSheet.cssText = reader.ReadToEnd();
            }
        }

        public static void DoPostBack(this HtmlDocument document)
        {
            document.InvokeScript("__doPostBack");
        }

        public static void DoPostBack(this HtmlDocument document, string eventTarget, string eventArgument)
        {
            document.InvokeScript("__doPostBack", new object[] { eventTarget, eventArgument });
        }

        public static HtmlElement GetElementByTitle(this HtmlDocument document, string title)
        {
            return (from x in document.All.Cast<HtmlElement>()
                    where x.GetAttribute("title") == title
                    select x).SingleOrDefault();
        }

22 Eylül 2010 Çarşamba

Extensions Methods

//Şifreleme yapmak için kullanılacak method

        public static string Encrypted(this string stringToEncrypt, string key)
        {
            try
            {
                if (string.IsNullOrEmpty(stringToEncrypt))
                    throw new ArgumentException("Bos Metin Sifrelenemez");

                if (string.IsNullOrEmpty(key))
                    throw new ArgumentException("Sifreleme Icin Anahtar Vermelisiniz");

                CspParameters cspp = new CspParameters();
                cspp.KeyContainerName = key;

                RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cspp);
                rsa.PersistKeyInCsp = true;

                byte[] bytes = rsa.Encrypt(UTF8Encoding.UTF8.GetBytes(stringToEncrypt), true);

                return BitConverter.ToString(bytes);
            }
            catch (Exception)
            {

                throw new ArgumentException("Hata Olustu");
            }

        }
Örnek:
        /// string metin = "My Secret";
        /// string sifrelenmis = metin.Encrypt("sifreleyici");
        /// string sifresicozulmus = sifrelenmis.Decrypt("sifreleyici");

// Deşifreleme yapmak için kullanılacak method

public static string Decrypt(this string stringToDecrypt, string key)
        {
            if (string.IsNullOrEmpty(stringToDecrypt))
                throw new ArgumentException("Bos Olan Metnin Sifresi Cozulemez");

            if (string.IsNullOrEmpty(key))
                throw new ArgumentException("Sifre Cozme Icin Anahtar Vermelisiniz");

            string result = null;
            try
            {
                CspParameters cspp = new CspParameters();
                cspp.KeyContainerName = key;

                RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cspp);
                rsa.PersistKeyInCsp = true;

                string[] decryptArray = stringToDecrypt.Split('-');
                byte[] decryptByteArray = Array.ConvertAll<string, byte>(decryptArray, (s => Convert.ToByte(byte.Parse(s, NumberStyles.HexNumber))));
                byte[] bytes = rsa.Decrypt(decryptByteArray, true);

                result = UTF8Encoding.UTF8.GetString(bytes);
            }
            catch (Exception)
            {

                throw new ArgumentException("Hata Olustu");
            }
            return result;
        }
Örnek:
        /// string metin = "My Secret";
        /// string sifrelenmis = metin.Encrypt("sifreleyici");
        /// string sifresicozulmus = sifrelenmis.Decrypt("sifreleyici");

// Listeler üzerinde Foreach Yapan Extension Method

public static void ForEach<T>(this IEnumerable<T> kaynak, Action<T> islem)
        {
            foreach (var item in kaynak)
                islem(item);
        }


Örnek:
        // List<string> isimler = new List<string> { "ali", "veli", "kirk", "dokuz", "elli" };
        // isimler.ForEach(isim => MessageBox.Show(isim));


// İnternet Adresi Doğrulayan Extension Method

 public static bool IsValidUrl(this string text)
        {
            Regex r = new Regex(@"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?");
            return r.IsMatch(text);
        }

 Örnek:
        // string Adres = "http://www.ega.com.tr";
        //    bool AdresDogru = Adres.IsValidUrl();

//Email Adresi Doğrulayan Extension Method

public static bool IsValidEmail(this string text)
        {
            Regex r = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$");
            return r.IsMatch(text);
        }

Örnek:
        // string adres="test@test.com";
        // bool AdresDogru=adres.IsValidEmail();

// Klasör Oluşturan Extension Method

public static void CreateDirectory(this DirectoryInfo dirInfo)
        {
            if (dirInfo.Parent != null)
                CreateDirectory(dirInfo.Parent);
            if (!dirInfo.Exists)
                dirInfo.Create();
        }

Örnek:
        // var dir=new DirectoryInfo(@"C:\temp\bir\iki\uc);
        // dir.CreateDirectory();

// Tarihin Haftasonuna Geldiğini Doğrulayan Extension Method

        public static bool IsWeekend(this DateTime value)
        {
            return (value.DayOfWeek == DayOfWeek.Sunday || value.DayOfWeek == DayOfWeek.Saturday);
        }

Örnek:
        // for(DateTime date=BaslangicTarih; date<= BitisTarih; date.AddDays(1))
        // {
        // if(date.IsWeekend())
        // continue;

// Tarihten Yaş Hesaplayan Extension Method

        public static int Age(this DateTime tarih)
        {
            DateTime now = DateTime.Now;
            int yas = now.Year - tarih.Year;
            if (now < tarih.AddYears(yas))
                yas--;
            return yas;
        }

Örnek:
        //    DateTime FatihDogumGunu = new DateTime(1979, 05, 07);
        //    int Yas = FatihDogumGunu.Age();

// Ayın İlk Gününü Bulan Extension Method

        public static DateTime FirstDayOfMonth(this DateTime date)
        {
            return new DateTime(date.Year, date.Month, 1);
        }

Örnek:
        // DateTime Simdi = DateTime.Now;
        // MessageBox.Show("Ayın ilk günü: " + Simdi.FirstDayOfMonth().ToShortDateString());

// Ayın Son Gününü Bulan Extension Method

        public static DateTime LastDayOfMonth(this DateTime date)
        {
            return new DateTime(DateTime.Now.Year, DateTime.Now.Month,1).AddMonths(1).AddDays(-1);
        }

Örnek:
        // DateTime Simdi= DateTime.Now;
        // MessageBox.Show("Ayın son günü: " + Simdi.LastDayOfMonth().ToShortDateString());

// Dosyanın MD5 Değerini Hesaplayan Extension Method

        public static string GetMD5(this string filename)
        {
            string result = string.Empty;

            try
            {
                MD5CryptoServiceProvider md5Provider = new MD5CryptoServiceProvider();
                FileStream fileStream = new FileStream(filename, FileMode.Open,                            FileAccess.Read,FileShare.ReadWrite);
                byte[] arrByteHashValue = md5Provider.ComputeHash(fileStream);
                fileStream.Close();

                string hashData = BitConverter.ToString(arrByteHashValue).Replace("-", "");
                result = hashData;
            }
            catch
            {
            }
            return result.ToLower();
        }

Örnek:
        // string Dosya = @"C:\Temp\DosyaAdi.txt";
        // MessageBox.Show(Dosya + " dosyasının MD5 değeri: " + Dosya.GetMD5());

Kaynak: http://www.enginpolat.com/