예제 #1
0
 protected override IEnumerable <KeyValuePair <Guid, T> > GetItemsTyped(IEnumerable <Guid> id)
 {
     using (var m = new ResourcesModelContainer())
     {
         return(m.Set <T>().OfType <BaseEntity>().Where(k => id.Contains(k.Id)).ToDictionary(k => k.Id, k => k as T));
     }
 }
예제 #2
0
 protected override IEnumerable <T> QueryItems <T>(Expression <Func <T, bool> > predicate)
 {
     using (var model = new ResourcesModelContainer())
     {
         return(model.Set <T>().Where(predicate));
     }
 }
예제 #3
0
 protected override T GetItemTyped(Guid id)
 {
     using (var m = new ResourcesModelContainer())
     {
         return(m.Set <T>().OfType <BaseEntity>().FirstOrDefault(k => k.Id == id) as T);
     }
 }
예제 #4
0
 protected override void DeleteResourceTyped(Guid key)
 {
     using (var model = new ResourcesModelContainer())
     {
         DeleteNoSave(key, model, typeof(T));
         model.SaveChanges();
     }
 }
예제 #5
0
 protected override void WriteResourceTyped(Guid key, T resource)
 {
     Debug.Assert(resource is BaseEntity);
     using (var model = new ResourcesModelContainer())
     {
         WriteNotSave(key, resource, model, typeof(T));
         model.SaveChanges();
     }
 }
예제 #6
0
        internal static void DeleteNoSave(Guid key, ResourcesModelContainer model, Type resType)
        {
            var existing = model.Set(resType)
                           .Find(key);

            if (existing != null)
            {
                model.Set(resType).Remove(existing);
            }
        }
예제 #7
0
        internal static void WriteNotSave(Guid key, object resource, ResourcesModelContainer model, Type resType)
        {
            var existing = model.Set(resType)
                           .Find(key);

            if (existing == null)
            {
                (resource as BaseEntity).Id = key;
                model.Set(resType).Add(resource);
            }
            else
            {
                EmitMapper.ObjectMapperManager.DefaultInstance
                .GetMapperImpl(resType, resType, new DefaultMapConfig())
                .Map(resource, existing, new object());
            }
        }
예제 #8
0
 private void WriteSeria(IEnumerable <Tuple <UnactualResourceContent, object> > objects)
 {
     using (var model = new ResourcesModelContainer())
     {
         foreach (var objs in objects.GroupBy(k => k.Item1.ResourceName))
         {
             var type = _pool.GetTypeByName(objs.Key);
             foreach (var writingObject in objs)
             {
                 var key = writingObject.Item1.ResourceKey;
                 if (writingObject.Item2 == null)
                 {
                     DeleteNoSave(key, model, type);
                 }
                 else
                 {
                     WriteNotSave(key, writingObject.Item2, model, type);
                 }
             }
         }
         model.SaveChanges();
     }
 }
예제 #9
0
 public static string GetValue(string category, string section, string key)
 {
     var db = new ResourcesModelContainer();
     db.Settings.MergeOption = System.Data.Objects.MergeOption.OverwriteChanges;
     var item = db.Settings.FirstOrDefault(x => x.CultureCode == "en" & x.Category == category & x.Section == section & x.KeyName == key);
     return item == null ? null : item.KeyValue;
 }
예제 #10
0
 public static List<Setting> GetTransforms(string culture, string category, string section)
 {
     culture = culture ?? "";
     category = category ?? "";
     section = section ?? "";
     var db = new ResourcesModelContainer();
     var query = from item in db.Settings where ((culture == string.Empty) || item.CultureCode == culture) && ((category == string.Empty) || item.Category == category) && ((section == string.Empty) || item.Section == section) orderby item.KeyName select item;
     return query.ToList();
 }
예제 #11
0
 public static void SetValue(string category, string section, string key, object value)
 {
     var db = new ResourcesModelContainer();
     db.Settings.MergeOption = System.Data.Objects.MergeOption.OverwriteChanges;
     var item = db.Settings.FirstOrDefault(x => x.CultureCode == "en" & x.Category == category & x.Section == section & x.KeyName == key);
     if (item == null)
     {
         item = new Setting();
         item.Category = category;
         item.Section = section;
         item.KeyName = key;
         db.Settings.AddObject(item);
     }
     item.KeyValue = value.ToString();
     if (value == null)
     {
         item.KeyType = "";
     }
     else
     {
         item.KeyType = value.GetType().Name;
     }
     db.SaveChanges();
 }