public virtual void DeleteList(List <T> entities)
        {
            foreach (T entity in entities)
            {
                GenericList.Remove(entity);
            }

            memoryCache.Set(GenericType.ToString(), GenericList);
        }
        public BaseMemoryRepository(IMemoryCache memoryCache)
        {
            this.memoryCache = memoryCache;
            GenericType      = typeof(T);

            GenericList = memoryCache.GetOrCreate(GenericType.ToString(), entry =>
            {
                return(new List <T>());
            });
        }
        public SkillMemoryRepository(IMemoryCache memoryCache) : base(memoryCache)
        {
            this.memoryCache = memoryCache;

            SkillType = typeof(Skill);

            SkillList = memoryCache.GetOrCreate(GenericType.ToString(), entry =>
            {
                return(new List <Skill>());
            });
        }
        public virtual void Save(T entity)
        {
            int id = (int)entity.GetType().GetProperty("Id").GetValue(entity);

            if (id != 0)
            {
                T old = GenericList.Where(t => (int)t.GetType().GetProperty("Id").GetValue(t) == id).Single();
                GenericList.Remove(old);
            }
            else
            {
                foreach (var property in entity.GetType().GetProperties())
                {
                    if (property.Name.EndsWith("Id"))
                    {
                        entity.GetType().GetProperty(property.Name).SetValue(entity, GenericList.Count + 1);
                    }
                }
            }

            GenericList.Add(entity);
            memoryCache.Set(GenericType.ToString(), GenericList);
        }
예제 #5
0
        public sealed override string ToString()
        {
            string s = GenericType.ToString();

            s += "[";
            string sep = "";

            foreach (TypeName genericTypeArgument in GenericArguments)
            {
                s  += sep;
                sep = ",";
                AssemblyQualifiedTypeName assemblyQualifiedTypeArgument = genericTypeArgument as AssemblyQualifiedTypeName;
                if (assemblyQualifiedTypeArgument == null || assemblyQualifiedTypeArgument.AssemblyName == null)
                {
                    s += genericTypeArgument.ToString();
                }
                else
                {
                    s += "[" + genericTypeArgument.ToString() + "]";
                }
            }
            s += "]";
            return(s);
        }
 public virtual void AddRangeAndSave(List <T> entityList)
 {
     GenericList.AddRange(entityList);
     memoryCache.Set(GenericType.ToString(), GenericList);
 }
 public virtual void Delete(T entity)
 {
     GenericList.Remove(entity);
     memoryCache.Set(GenericType.ToString(), GenericList);
 }