9 Ekim 2019 Çarşamba

19 Ocak 2017 Perşembe

Session'ı Modele Bağlamak

public class Data
    {
        public static Kullanici User
        {
            get
            {
                if (HttpContext.Current.Session != null && HttpContext.Current.Session["SUser"] != null)
                {
                    return (Kullanici)HttpContext.Current.Session["SUser"];
                }
                else
                    return null;
            }
            set
            {
                HttpContext.Current.Session["SUser"] = value;
            }
        }
    }


Uygun tipteli veriyi Data.User'a bağladıktan sonra istediğin yerde LMSData.User.PropertyName şeklinde kullanabilirsin.

12 Ocak 2017 Perşembe

LINQ Except

Except (dışında) yöntemi, iki veri kümesindeki elemanları karşılaştırarak, 1. veri kümesinde bulunup da 2. veri kümesinde bulunmayanları seçip yeni bir liste oluşturur. 

Except İle Haricindekileri Seçme Örneği 

Aşağıdaki örnek bir tamsayı dizisindeki ikinci bir tamsayı dizisinde bulunmayan tam sayıları seçerek oluşturduğu listeyi çıktıya yazar.

  1. int[] Rakamlar1 = { 1, 2, 4, 5 };
  2. int[] Rakamlar2 = { 1, 3, 4, 6 };
  3.  
  4. var SadeceBirincidekiRakamlar = Rakamlar1.Except(Rakamlar2);


sonuç 2 ve 5

8 Aralık 2016 Perşembe

Elmah

Nuget üzerinden projeye dahil ettikten sonra tek yapılması gereken web.config dosyasına <system.webserver> tagının içine aşağıdaki gibi bir handler eklemektir.

 <handlers>
      <add name="elmah" verb="POST,HEAD,GET" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
    </handlers>

Artık elmah ekranı domain/elmah.axd üzeirnden görüntülenebilir. Elmah bu haliyle geçmiş logları tutmaz, proje kapandığında loglar gider.


Logları Sql Server Üzerinde Saklamak İçin veritabanında 1tablo ve 3prosedür oluşturmak gerekir. Bunlar netten bulunabilir.

Projede yapılması gerek ayar ise web.config üzerinde


<elmah>
    <security allowRemoteAccess="yes" />
    <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="elmahConStr"></errorLog>
  </elmah>

satırlarını eklemektir. security kısmı sunucuda düzgün çalıştırabilmek içindir.

6 Aralık 2016 Salı

SQL Stored Procedured' den Dönen Datayı MVC tarafında Direk Okuma

Aşağıdaki gibi kullanrak EDMX'e yeni bir model eklemeye gerek kalmadan çalışabiliriz. Bunu artısı; prosüre yeni bir alan eklendiğinde veya herahngi bir şey değiştiğinde edmx güncellemesi yapmaya gerke kalmaz.

var data = DB.Database.SqlQuery<Model>("EXEC [Schema].[ProsedüreAdı] @Parametre= {0}", id);
            return data.ToList();


28 Kasım 2016 Pazartesi

Linq Gelen Listeyi Diğer Model Tipinde Doldurma

var liste= Db.ModelA.Where(x => x.A == id).Select(ex =>
                     new ModelB
                     {
                         GroupId = ex.GroupId,
                         ExamId = ex.ExamId,
                         Publish = ex.Publish,
                         CourseName = ex.Group.Course.Name,
                         GroupName = ex.Group.Name,
                         ExamName = ex.Name,
                     }
             ).FirstOrDefault();

18 Kasım 2016 Cuma

RestSharp ile Web API

var liste = new List<model>();
            
var client = new RestClient("api adresi");
            var request = new RestRequest("apinin aldığı parametreler", Method.POST);
            request.RequestFormat = DataFormat.Json;
            request.AddParameter("application/json", JsonConvert.SerializeObject(liste),               ParameterType.RequestBody);
            var test = JsonConvert.SerializeObject(liste);
            IRestResponse response = client.Post(request);
            Guid guid = Guid.Empty;
            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var dönen_kayıtlar = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AktarimSonuc>>(response.Content);

* Nuget üzerinden RestSharp kurmak gerekli


17 Kasım 2016 Perşembe

SQL Server Having

SELECT
tablo.x,tablo.y,COUNT(*)
FROM
tablo
GROUP BY
tablo.x,tablo.y
HAVING
COUNT(*) > 1;

1 Ağustos 2016 Pazartesi

16 Haziran 2016 Perşembe

Sql Server Veritabanındaki Tablolara Ait Satır Sayıları

SELECT sc.name +'.'+ ta.name TableName
 ,SUM(pa.rows) RowCnt
 FROM sys.tables ta
 INNER JOIN sys.partitions pa
 ON pa.OBJECT_ID = ta.OBJECT_ID
 INNER JOIN sys.schemas sc
 ON ta.schema_id = sc.schema_id
 WHERE ta.is_ms_shipped = 0 AND pa.index_id IN (1,0)
 GROUP BY sc.name,ta.name
 ORDER BY SUM(pa.rows) DESC

Sql Server Veritabanındaki Tüm Tablolardaki Tüm kayıtları Temizleme (Silme)

DECLARE @Nombre NVARCHAR(MAX);
DECLARE curso CURSOR FAST_FORWARD
FOR
Select TableName AS Nombre from App.DeleteTables ORDER BY TableOrder
OPEN curso
FETCH NEXT FROM curso INTO @Nombre

WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
BEGIN
DECLARE @statement NVARCHAR(200);
SET @statement = 'DELETE FROM ' + @Nombre;
print @statement
execute sp_executesql @statement;
END
FETCH NEXT FROM curso INTO @Nombre
END
CLOSE curso
DEALLOCATE curso

24 Mart 2016 Perşembe

Web API'den Json Tipinde Veri Çekmek ve Kullanmak

Nihayet bu konu da aydınlandı... Elimde bir APIm var. İhtiyacım oldukça bu apiye metod yazarak dışarıdan erişiyorum. Önce API kısmına bakayım sonra da Client tarafı gelecek. Hazırladığım metod bana bir liste dönüyor. Bunun İçin metodun başına [HttpGet] koymak şart! Veya metod isminin başına Get koyularak da ayapılabiliyor. (Örneğin metodun adı Events ise bunu GetEvents olarak değiştirdiğimde metodun başına [HttpGet] Attribute'ünü koymaya gerek kalmıyor.)



API tarafınfa şimdilik iki metot var, bunlar aşağıdaki gibidir.



Şimdi gelelim client tarafında bu metotu kullanmaya.


Ekran görüntüleri herşeyi açıklıyor :)

11 Mart 2016 Cuma

2016 ve 10 Teknolojik Atılım

themt.co sitesinden alıntıdır :)

Bağışıklık Sistemi Mühendisliği

Genetik yönden değiştirilmiş bağışıklık sistemi hücreleri kanser hastalarının hayat kurtarıyor. Bu sadece bir başlangıç olabilir!
Bağışıklık Sistemi Mühendisliği

Tam olarak genleri ile oynanmış bitkiler

CRISPR sunduğu yöntemle kolaylıkla genler değiştirilerek, hastalığa direnç gösterme ve susuzluk toleransı gibi özellikler oluşturulabiliyor
Tam olarak genleri ile oynanmış bitkiler

Konuşabilen Arabirimler

Çin’in lider internet şirketinden güçlü konuşma teknolojisi ve bu teknoloji akıllı telefonların kullanımını daha da kolaylaştırıyor
Konuşabilen Arabirimler

Tekrar Kullanılabilir Roketler

Tipik olarak roketler yolculuğu sıralarında yok edilirler. Ama artık bu roketler karaya tekrar iniş yapabilecekler ve yakıt ikmali, ayarlamalar gibi şeyler yapıldıktan sonra bir sonraki yolculukları için hazır hale gelecekler.
Tekrar Kullanılabilir Roketler

Diğer Hemcinslerinden Bir Şeyler Öğrenebilen Robotlar

Peki ya robotlar diğerlerinin bildiği ve paylaştığı bilgilerinden bir şeyler öğrenebilseydi?
Diğer Hemcinslerinden Bir Şeyler Öğrenebilen Robotlar

DNA Uygulama Mağazası

Bir çevrim içi mağaza, hem de genetik bilgilerinizin bulunduğu bir mağaza. Bu mağaza hastalık risklerinizi ve meyillerinizi ucuz ve kolayca öğrenebilir.
DNA Uygulama Mağazası

SolarCity’nin Devasa Fabrikası

Buffalo’daki 750 milyon dolarlık bir güneş enerjisi sistemi, sahip olduğu yüksek verimli güneş panelleri sayesinde her yol gigawatt değerinde enerji sunabilir.
SolarCity’nin Devasa Fabrikası

Tesla Otomatik Pilot

Elektrikli araç üreticiniz, aracınıza sessizce göndereceği bir yazılım güncellemesiyle arabanızı kendi kendine sürebilen otonom bir sisteme çevirebilir.
Tesla Otomatik Pilot

Havadan Güç!

Wi-Fi gibi ve diğer iletişim teknolojilerinin yaydığı sinyallerle beslenen internet aygıtları küçük bilgisayarları ve algılayıcıları daha yaygın hale getirebilir.

10 Mart 2016 Perşembe

XML Data Source Add To Sql Server (Xml Veri Kaynağını Sql Server'a Tablo Yapısında Eklemek)

Sevdiğimiz bir hocamızın ihtiyacına binaen elindeki xml veriyi sql'e eklememiz gerekti. Yapılan işlemler aşağıdaki gibidir. :)



1. Örnek xml dosyası aşağıdaki gibidr. Elimdeki xml'de bu şekilde 12 adet book nesnesi var.



2. Sql Server'da XMLwidthOpenXML adında yeni bir tablo oluşturuyorum. Tablonun yapısı aşağıdaki gibidir.


3. Sırada xml dosyasındaki verileri bu tabloya atmak var. Bu işlemi aşağıdaki kod yardımıyla yapıyoruz.




4. Yukarıdaki kodu çalıştırdığımızda ekranda aşağıdaki gibi bir görünüm olmalıdır.



5. Xml dosyasında 12 adet book nesnesi var fakat burada tek satır var diye düşünmeyin. Sıra geldi bunu halletmeye :) XMLData sütunundaki hyperlinke tıkladığımızda bize xml dosyasımız olduğu gibi gösterir. Şimdi xml dosyasının içindeki verileri sql satırı olarak çekelim.



6. Yukarıdaki kodun çıktısı aşağıdaki gibi olmalıdır.



7. Artık buradan sonra iş kullanıcıya kalmış :) Bu satırları excel'e çekebilirsiniz veya Cursor kullanarak istediğiniz işlemleri yapabilirsiniz. Kolay Gelsin.

Anı Yaşamak

“Dünyada ölüm diye bir gerçek varken, sevdiğiniz kişinin hala nefes aldığına dua edin, akşam eşinizin, annenizin kapıyı açmasına şükredin. Ne bileyim, bi silkelenin. Kıymet bilin, sevin. Severken incitmeyin. Kibir yapıp gitmesine izin vermeyin. Gün gelir öyle kayıp gider ki o eller avuçlarınızdan, feleğiniz şaşar, dünyanız durur. Derler ki hayat devam ediyor. Ama öyle kolay olmaz. Önce gülüşünüz kaybolur, sonra neşeniz. Siz siz olun şu boş hayatta hiçbir şey için karalar bağlamayın. Özlemekten ciğeriniz solmadan soluğu yanında alın, sarılın… Teni hala sıcakken sarılın..."

Sql Server Cursor Kullanımı

Sql Server'da Cursor kullanımı genel olarak aşağıdaki gibidir.
DECLARE @NAME NVARCHAR(100)
DECLARE @EMAIL NVARCHAR(200)

DECLARE CRS_KISIEKLE CURSOR FOR
   SELECT DISTINCT 
   ks.Ad
   FROM 
   WL_SN_VW_COURSE as cs INNER JOIN
   WL_SN_ST_COURSEMAP as cm ON cs.COURSEID=cm.COURSEID INNER JOIN
   [IP].uysv2.dbo.OGROgrenciYazilma as st on st.FKDersPlanID=cm.COURSEKEY INNER JOIN
   [IP].uysv2.dbo.OGRKimlik AS og ON st.FKOgrenciID=og.ID INNER JOIN
   [IP].uysv2.[dbo].[Kisi] AS ks ON ks.ID=og.[FKKisiID] LEFT OUTER JOIN
   [IP].uysv2.[dbo].[Nufus] AS nf ON nf.ID=ks.[FKNufusID] INNER JOIN
   [IP].[uysv2].[dbo].[Birimler] AS dp ON og.[FKBolumPrBirimID]=dp.ID  LEFT OUTER JOIN
   WL_SN_ST_USER as us ON CAST(og.ID as nvarchar(50))=us.STUDENTKEY 
      WHERE cs.COURSEID='0901adc9-1660-437c-8790-e0a3bc2eaa49' AND og.EnumOgrDurum = 2
   GROUP BY og.Numara,ks.TC,ks.Ad,ks.Soyad,nf.[ENUMCinsiyet],nf.[DogumTarihi],og.Numara,dp.ID,ks.TC,og.ID,KullaniciAdi

OPEN CRS_KISIEKLE
FETCH NEXT FROM CRS_KISIEKLE INTO @NAME
WHILE @@FETCH_STATUS =0
 BEGIN
  --------
  INSERT INTO TESTTEST (NAME) VALUES(@NAME)

  FETCH NEXT FROM CRS_KISIEKLE INTO @NAME
 
 END

CLOSE CRS_KISIEKLE

DEALLOCATE CRS_KISIEKLE





9 Ekim 2013 Çarşamba

27 Eylül 2013 Cuma

7 Haziran 2013 Cuma