Pratik sesion kullanımı ve Join kullanara Method Linq ifadesi yazma bazında, diğer İpucları

Arkadaşar ben daha yeni faaliyete geçen bir site önereceğim. Güzel kod örnekleri var, paylaşmak istiyorumm. Kodlog.com yayın hayatında başarılar diliyorum.

Aşağıdaki kod session bilgisini basitce bir sınıfta kullanma yöntemi;

public static Member LocalMember
      {
          get { return HttpContext.Current.Session["LocalMember"] as Member; }
          set { HttpContext.Current.Session["LocalMember"] = value; }
      }

diğer örneğimiz ise join kullanarak linq ifadesinde birleşim yapmak.

joinData = uow._context.PRODUCT.Where(x => x.STATUS == IsActive).Join(uow._context.PRODUCT_TYPE,
                    Product => PRODUCT.PRODUCT_TYPE_ID,
                    ProductType => PRODUCTType.PRODUCT_TYPE_ID,
                    (PRODUCT, PRODUCTType) => new PRODUCTViewModel
                    {
                        PRODUCT_ID = Product.PRODUCT_ID,
                        PRODUCT_NAME = Product.PRODUCT_NAME,
            PRODUCT_TYPE_NAME = ProductType.Name
                       
 
                    }).ToList();
 
                return joinData;

 

Kullanıcı textbox üzerinde değişiklik yaptığında çalıştırmanız gereken kodlar bu değişikliği bu jquery koduyla yakalayabilirsiniz.

 $("input").bind("change", function () { alert($(this).attr("id")); });

Linq ToDictionary() fonksiyonunun kullanımına bir örnek

 Dictionary<string,string> xDict=new Dictionary<string,string>();

xDict=result.ToDictionary( t => t.Key.ToString(), t => t.Value.ToString() );

inq Group By sorgusuyla bir listedeki tekrar eden değerleri ve bu değerlerin sayılarını bulmak için gerekli kod 

            List<string> cities = new List<string>();
            cities.Add("New York");
            cities.Add("Istanbul");
            cities.Add("Mumbai");
            cities.Add("Istanbul");
            cities.Add("Mumbai");
            cities.Add("Berlin");
            cities.Add("Istanbul");
 
            var tekrarlar = cities.GroupBy(p => p)
                                       .Select(p => new { IlAdi = p.Key, TekrarSayisi = p.Count() })
                                       .OrderByDescending(p => p.TekrarSayisi).Skip(0).Take(10).ToList();

net framework'a 4.0 versiyonu ile katılan Tuple sınıfı ile, farklı veri tiplerine sahip çok boyutlu diziler oluşturabilirsiniz. Örnek tuple kullanımı;

var ttt =new List<Tuple<int, string, string>>();
          ttt.Add(new Tuple<int, string, string>(12, "ss", "ddf"));
          ttt.Add(new Tuple<int, string, string>(13, "ss1", "ddf1"));
          ttt.Add(new Tuple<int, string, string>(14, "ss2", "ddf2"));
 

Asp.net Mvc ile forms authentication ticket oluşturma

[HttpPost]
     public ActionResult Login(string user, string pass)
     {
         var user = service.getUser(user, pass);
         if (user != null) {
             FormsAuthentication.SetAuthCookie(user.Email, false);
             return RedirectToAction("Index""Dashboard");
         }
          
     }

global asax da yapılması gerekenler

protected void FormsAuthentication_OnAuthenticate(Object sender, FormsAuthenticationEventArgs e)
      {
          if (FormsAuthentication.CookiesSupported == true)
          {
              if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)
              {
                  try
                  {
                      string username = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value).Name;
                      string roles = string.Empty;
                      
                    
                      roles = "admin";
                      e.User = new System.Security.Principal.GenericPrincipal(
                        new System.Security.Principal.GenericIdentity(username, "admin"), roles.Split(';'));
                  }
                  catch (Exception)
                  {
                      
                  }
              }
          }
      }

Sunucu tarafına JSON verisi post etmek istediğinizde jquery ajax methodunu kullanabilirsiniz, örnek kullanım;

var arro = [];
       arro.push(12);
       arro.push(44);
 
       $.ajax({
           type: "POST",
           url: "/home/test",
           contentType: "application/json; charset=utf-8",
           data:JSON.stringify({"myArray":arro}), //stringify ile json objemizi stringe çeviriyoruz
           dataType: "json" //datatype olarak json verilmeli
       
       });

Controler tarafında

public JsonResult Test(List<int> test)
     {
         return Json(new {Success=true },JsonRequestBehavior.AllowGet);
     }

Linq içinde ayrı bir method (Convert.ToInt32) kullanma istedeğimizde bu method IQuerable bir type de değil, IEnumerable tipinde olmalıdır.  Dolayıyla böyle bir hata varir. "LINQ to Entities does not recognize the method".

public IEnumerable<CourseNames> GetCourseName()
{
    var courses = from o in entities.UniversityCourses
                  select new { o.CourseID, o.CourseName };
  
   return courses.ToList()
                  .Select(c => new CourseNames()
                  {
                     CourseID = Convert.ToInt32(c.CourseID),
                     CourseName = c.CourseName
                  });
}

referans: http://kodlog.com/

 

Comments (2) -

Mazhar KAYAOĞLU
22.11.2013 22:42:19 #

Hocam birbirine bağımlı bir yapım var bunlar için ayrı ayrı tablo mu tanımlamak yada tek tablo içinde parentId deyip bunları tek tabloda bağlamak daha faydalı bunun kararını veremedim yardımcı olursanız minnettar kalırım.
Örnek olarak;
AkademikBirimler->Fakülteler->Bölümler->Programlar gibi yada
Menu
   SubMenu
            SubSubMenu
                        SubSubSubMenu
                                      SubSubSubSubMenu.......
Yukarıda ki yapılarda hep kararsız kalıyorum herbiri için tablo mu oluşturmalıyım yoksa tek tablo da işin içinden çıkmak mı mantıklı;
Uygulama Ef Code First ile oluşturulmakta.

erkanyurek
8.4.2014 06:29:47 #

Tabiki 1 tablo tartismasiz, sksini dusunemiyorum ki. Menu ve kategori tek tablo yoksa tablodan gecilmez ortalik. Aslinda ben yeni bir projede explorer klasor mantigi gelistirerek yaptim.. Buyukce yaparsan div leri mobil aygitlar da da kullanabilirsin.. Buradan ek bilgi alabilirsin.. technet.microsoft.com/tr-tr/library/bb677173.aspx   .Yalniz menu olustururken biraz javascript kodu yazman gerekebilir. Internette bulabilirsin bu tur kodlar.

Add comment

The file '/Custom/Widgets/Calendar/widget.cshtml' does not exist.The file '/Custom/Widgets/Category list/widget.cshtml' does not exist.The file '/Custom/Widgets/Tag cloud/widget.cshtml' does not exist.The file '/Custom/Widgets/Page List/widget.cshtml' does not exist.The file '/Custom/Widgets/Month List/widget.cshtml' does not exist.