protected virtual void Dispose(bool canCleanUpManagedandNativeRessources)
 {
     if (canCleanUpManagedandNativeRessources)
     {
         if (_mappingEngine != null)
         {
             _mappingEngine.Dispose();
             _mappingEngine = null;
         }
     }
 }
Example #2
0
        public virtual BaseResponse <T> Get <S, T>(Func <S, bool> where, ConfigurationStore mapperConfig = null)
            where S : class
            where T : class
        {
            BaseResponse <T> response = new BaseResponse <T>();
            var findItem = _unitOfWork.GetRepository <S>().dbSet.FirstOrDefault(where);

            if (findItem != null)
            {
                if (mapperConfig == null)
                {
                    Mapper.CreateMap <S, T>();
                    response.Data = Mapper.Map <T>(findItem);
                }
                else
                {
                    var engine = new MappingEngine(mapperConfig);
                    response.Data = engine.Map <T>(findItem);
                    engine.Dispose();
                }
            }
            return(response);
        }
Example #3
0
        public virtual BaseResponse <IList <T> > Query <S, T>(BaseRequest request, Func <IQueryable <S>, IQueryable <S> > whereAndOrderBy, ConfigurationStore mapperConfig = null) where S : class
        {
            BaseResponse <IList <T> > response = new BaseResponse <IList <T> >();
            var q = from m in _unitOfWork.GetRepository <S>().dbSet
                    select m;

            if (whereAndOrderBy != null)
            {
                q = whereAndOrderBy(q);
            }
            response.RecordsCount = q.Count();
            List <S> list = null;

            if (request != null && request.PageSize > 0)
            {
                list = q.Skip((request.CurrentPage - 1) * request.PageSize).Take(request.PageSize).ToList();
                response.PagesCount = GetPagesCount(request.PageSize, response.RecordsCount);
            }
            else
            {
                list = q.ToList();
            }
            if (mapperConfig == null)
            {
                Mapper.CreateMap <S, T>();
                response.Data = Mapper.Map <IList <T> >(list);
            }
            else
            {
                var engine = new MappingEngine(mapperConfig);
                response.Data = engine.Map <IList <T> >(list);
                engine.Dispose();
            }

            return(response);
        }