public List <TEntity> GetAll() { if (WorkOnTheMap == true) { BringInstruction(); } if (CategoryMapOption == true) { ca.UpdateList(ExternalLocation); DEntity d = new DEntity(); Envoy envoy = new Envoy(); d.Name = SetName; d.Root = SetRoot; d.TargetLocation = ExternalLocation; TEntity t = new TEntity(); List <TEntity> allList = new List <TEntity>(); if (ca.s.Count > 0) { foreach (var item in ca.s) { d.CategorizeName = item.Name; d = envoy.Before(t, d); foreach (var item2 in envoy.DataToList <TEntity>(d)) { allList.Add(item2); } } } else // Tekil dosyalar için önemli { d = envoy.Before(t, d); foreach (var item2 in envoy.DataToList <TEntity>(d)) { allList.Add(item2); } } return(allList); } else { return(null); } }
public List <TEntity> GetCategorized(string categorizedName) { if (WorkOnTheMap == true) { BringInstruction(); } DEntity d = new DEntity(); Envoy envoy = new Envoy(); d.Name = SetName; d.Root = SetRoot; d.CategorizeName = categorizedName; d.TargetLocation = ExternalLocation; TEntity t = new TEntity(); d = envoy.Before(t, d); return(envoy.DataToList <TEntity>(d)); }
public void Delete(TEntity e) { if (WorkOnTheMap == true) { BringInstruction(); } DEntity d = new DEntity(); Envoy envoy = new Envoy(); if (!(_categoryProperty is null)) { d.CategorizeName = CategoryProperty; } d.Name = SetName; d.Root = SetRoot; d.TargetLocation = ExternalLocation; d = envoy.Before(e, d); envoy.DataDelete(e, d); }
public void Add(TEntity e) { if (WorkOnTheMap == true) { BringInstruction(); } Envoy envoy = new Envoy(); DEntity d = new DEntity(); if (!(_categoryProperty is null)) { d.CategorizeName = CategoryProperty; } d.Name = SetName; d.Root = SetRoot; d.TargetLocation = ExternalLocation; sa.Create(ExternalLocation, e.GetType()); sa.UpdateList(ExternalLocation); EStatus st = sa.IsThereAny(e.GetType().Name); if (AutomaticIdOnAdd) { e.GetType().GetProperty(envoy.FindKey(e)).SetValue(e, st.Recent + 1); } bool IsAdded = false; bool IsDefine = false; if (CheckBeforeAdding) // Eklemeden önce kategori kontrol etme durumu { ca.UpdateList(ExternalLocation); if (ca.IsThereAny(d.CategorizeName) == true) { d = envoy.Before(e, d); envoy.CreateIfNotThere(d); envoy.DataInsert(e, d); IsAdded = true; IsDefine = true; } else { // Şarta bağlı kılınarak ekleme durumu tanımlanmış. // Ancak hangi property üzerinden çalışılacağı söylenmediğinde, // Ekleme yapılmaz. Çünkü seçenek açıktır ve durum verilmemiştir. } } else { d = envoy.Before(e, d); envoy.CreateIfNotThere(d); envoy.DataInsert(e, d); IsAdded = true; IsDefine = true; } if (CategoryMapOption && IsDefine) // Haritaya kategorileri ekleyen kısım { if (!string.IsNullOrWhiteSpace(d.CategorizeName)) { ca.Add(ExternalLocation, d.CategorizeName); } } // Define hakkında; // CheckBeforeAdding açık olmasına rağmen, listede bulunamadığında, CategoryMapOption açık olduğunda // Yine de Map'e ekleme oluşuyor. Kısaca; CBE bloğunda ki else kısmı burayı etkilemiyor. // Bunu düzeltmek için, // Kontrol kapalıysa ve kontrol sonrasında kategori listede bulunmuşsa, map'e ekleme işlemi gerçekleşiyor. if (IsAdded && AutomaticIdOnAdd) { sa.Add(ExternalLocation, e.GetType()); } }