Exemplo n.º 1
0
        public ApiResult(OperationResult result)
        {
            string typeResult = result.GetType().Name;

            if (typeResult.Contains("GetOneResult"))
            {
                GetOneResult <TResponse> oneResult = (GetOneResult <TResponse>)result;
                if (oneResult != null && oneResult.Entity != null)
                {
                    this.Response = new List <TResponse>()
                    {
                        oneResult.Entity
                    }
                }
                ;
            }
            else if (typeResult.Contains("GetManyResult"))
            {
                GetManyResult <TResponse> manyResult = (GetManyResult <TResponse>)result;
                if (manyResult != null && manyResult.Entities != null)
                {
                    this.Response = manyResult.Entities;
                }
            }

            this.Message    = result.Message;
            this.StatusCode = result.StatusCode;
        }
Exemplo n.º 2
0
        /// <summary>
        /// FindCursor
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="filter"></param>
        /// <returns>A cursor for the query</returns>
        public IFindFluent <TEntity, TEntity> FindCursor(FilterDefinition <TEntity> filter)
        {
            var res        = new GetManyResult <TEntity>();
            var collection = GetCollection();
            var cursor     = collection.Find(filter);

            return(cursor);
        }
        public void DelaysForPollingInterval()
        {
            Task <GetManyResult> task = GetFromClient1();

            Assert.IsFalse(task.IsCompleted);

            GetManyResult result = Slow(task);

            Assert.AreEqual(0, result.Tree.Facts.Count());
        }
        public void ContinuesWhenFactIsPublished()
        {
            Task <GetManyResult> task = GetFromClient1();

            PostFromClient2();

            GetManyResult result = Fast(task);

            Assert.AreEqual(2, result.Tree.Facts.Count());
        }
        public void CanInterruptServerFromSameClient()
        {
            Task <GetManyResult> task = GetFromClient1();

            _service.Interrupt(ClientGuid1, "domain");

            GetManyResult result = Fast(task);

            Assert.AreEqual(0, result.Tree.Facts.Count());
        }
Exemplo n.º 6
0
        /// <summary>
        /// A generic get many method
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="ids"></param>
        /// <returns></returns>
        public async Task <GetManyResult <TEntity> > GetMany <TEntity>(IEnumerable <string> ids) where TEntity : class, new()
        {
            try
            {
                var collection = GetCollection <TEntity>();
                var filter     = Builders <TEntity> .Filter.Eq("Id", ids);

                return(await GetMany <TEntity>(filter));
            }
            catch (Exception ex)
            {
                var res = new GetManyResult <TEntity>();
                res.Message = HelperService.NotifyException("GetMany", "Exception getting many " + typeof(TEntity).Name + "s", ex);
                return(res);
            }
        }
Exemplo n.º 7
0
        public GetManyResult <TEntity> InsertMany(ICollection <TEntity> entities)
        {
            var result = new GetManyResult <TEntity>();

            try
            {
                _collection.InsertMany(entities);
                result.Result = entities;
            }
            catch (Exception ex)
            {
                result.Message = $"InsertMany {ex.Message}";
                result.Success = false;
                result.Result  = null;
            }
            return(result);
        }
        public async Task <GetManyResult <TEntity> > InsertManyAsync(ICollection <TEntity> entities)
        {
            var result = new GetManyResult <TEntity>();

            try
            {
                await _collection.InsertManyAsync(entities);

                result.Result = entities;
            }
            catch (Exception ex)
            {
                result.Message = $"InsertManyAsync {ex.Message}";
                result.Success = false;
                result.Result  = null;
            }
            return(result);
        }
Exemplo n.º 9
0
        public GetManyResult <TEntity> FilterBy(Expression <Func <TEntity, bool> > filter)
        {
            var result = new GetManyResult <TEntity>();

            try
            {
                var data = _collection.Find(filter).ToList();
                if (data != null)
                {
                    result.Result = data;
                }
            }
            catch (Exception ex)
            {
                result.Message = $"FilterBy {ex.Message}";
                result.Success = false;
                result.Result  = null;
            }
            return(result);
        }
Exemplo n.º 10
0
        public GetManyResult <TEntity> GetAll()
        {
            var result = new GetManyResult <TEntity>();

            try
            {
                var data = _collection.AsQueryable().ToList();
                if (data != null)
                {
                    result.Result = data;
                }
            }
            catch (Exception ex)
            {
                result.Message = $"AsQueryable {ex.Message}";
                result.Success = false;
                result.Result  = null;
            }
            return(result);
        }
Exemplo n.º 11
0
        public async Task <JsonResult> Search([FromBody] SearchModel filter)
        {
            var result = new GetManyResult <TModel>();

            try
            {
                var request = ConvertSearchModelToSearchFilter <TEntity> .Convert(filter);

                var response = await((IGenericService <TEntity>)_service).GetMany(request);

                if (response.Success)
                {
                    result.Success     = response.Success;
                    result.Entities    = Mapper.Map <IEnumerable <TEntity>, IEnumerable <TModel> >(response.Entities);
                    result.TotalAmount = response.TotalAmount;
                    result.Message     = response.Message ?? null;
                    result.StatusCode  = response.StatusCode;
                    result.Exception   = response.Exception ?? null;
                }
                else
                {
                    result.Success     = false;
                    result.Entities    = response.Entities == null ? null : Mapper.Map <IEnumerable <TEntity>, IEnumerable <TModel> >(response.Entities);
                    result.TotalAmount = response.TotalAmount <= 0 ? 0 : response.TotalAmount;
                    result.Message     = response.Message;
                    result.StatusCode  = response.StatusCode;
                    result.Exception   = response.Exception;
                }
            }
            catch (Exception ex)
            {
                result.Entities    = null;
                result.TotalAmount = 0;
                result.Success     = false;
                result.Message     = ex.Message;
                result.StatusCode  = 500;
                result.Exception   = ex;
            }

            return(Json(result));
        }
Exemplo n.º 12
0
        protected async Task <GetManyResult <TEntity> > Search(IQueryable <TEntity> query, SearchFilter <TEntity> filter)
        {
            var result = new GetManyResult <TEntity>();

            try
            {
                var totalAmount = await query.AsNoTracking().CountAsync();

                if (filter != null)
                {
                    if (filter.Sort != null && filter.Sort.Count > 0)
                    {
                        query = query.Sort(string.Concat(filter.Sort.Values.FirstOrDefault(), " ", filter.Sort.Keys.FirstOrDefault()));
                    }

                    if (filter.PageIndex != null && filter.PageIndex > 0 && filter.PageSize != null && filter.PageSize > 0)
                    {
                        query = query.Skip(filter.PageSize.GetValueOrDefault() * (filter.PageIndex.GetValueOrDefault() - 1)).Take(filter.PageSize.GetValueOrDefault());
                    }
                }

                var entities = await query.AsNoTracking().ToListAsync();

                result.Entities    = entities;
                result.TotalAmount = totalAmount;
                result.Success     = true;
                result.Message     = "OK";
                result.StatusCode  = 200;
                result.Exception   = null;
            }
            catch (Exception ex)
            {
                result.Entities    = null;
                result.TotalAmount = 0;
                result.Success     = false;
                result.Message     = ex.Message;
                result.StatusCode  = 500;
                result.Exception   = ex;
            }
            return(result);
        }
Exemplo n.º 13
0
        /// <summary>
        /// A generic get many method with filter
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="ids"></param>
        /// <returns></returns>
        public async Task <GetManyResult <TEntity> > GetMany <TEntity>(FilterDefinition <TEntity> filter) where TEntity : class, new()
        {
            var res = new GetManyResult <TEntity>();

            try
            {
                var collection = GetCollection <TEntity>();
                var entities   = await collection.Find(filter).ToListAsync();

                if (entities != null)
                {
                    res.Entities = entities;
                }
                res.Success = true;
                return(res);
            }
            catch (Exception ex)
            {
                res.Message = HelperService.NotifyException("GetMany", "Exception getting many " + typeof(TEntity).Name + "s", ex);
                return(res);
            }
        }
Exemplo n.º 14
0
        public virtual async Task <GetManyResult <TEntity> > GetMany(SearchFilter <TEntity> filter)
        {
            var result = new GetManyResult <TEntity>();

            try
            {
                var response = await _repository.GetMany(filter);

                if (response.Success)
                {
                    result.Entities    = response.Entities;
                    result.TotalAmount = response.TotalAmount;
                    result.Message     = "OK";
                    result.Success     = true;
                    result.StatusCode  = 200;
                    result.Exception   = null;
                }
                else
                {
                    result.Entities    = null;
                    result.TotalAmount = 0;
                    result.Success     = false;
                    result.Message     = response.Message == "Bad Request" ? "Bad Request" : response.Message;
                    result.StatusCode  = response.StatusCode == 400 ? 400 : response.StatusCode;
                    result.Exception   = response.Exception ?? null;
                }
            }
            catch (Exception ex)
            {
                result.Entities    = null;
                result.TotalAmount = 0;
                result.Success     = false;
                result.Message     = ex.Message;
                result.StatusCode  = 500;
                result.Exception   = ex;
            }

            return(result);
        }
Exemplo n.º 15
0
        public virtual async Task <JsonResult> GetAll()
        {
            var result = new GetManyResult <TModel>();

            try
            {
                var response = await((IGenericService <TEntity>)_service).GetMany(null);

                if (response.Success)
                {
                    result.Success     = response.Success;
                    result.Entities    = Mapper.Map <IEnumerable <TEntity>, IEnumerable <TModel> >(response.Entities);
                    result.TotalAmount = response.TotalAmount;
                    result.Message     = response.Message;
                    result.StatusCode  = response.StatusCode;
                    result.Exception   = null;
                }
                else
                {
                    result.Success     = false;
                    result.Entities    = response.Entities == null ? null : Mapper.Map <IEnumerable <TEntity>, IEnumerable <TModel> >(response.Entities);
                    result.TotalAmount = response.TotalAmount <= 0 ? 0 : response.TotalAmount;
                    result.Message     = response.Message ?? null;
                    result.StatusCode  = response.StatusCode;
                    result.Exception   = response.Exception ?? null;
                }
            }
            catch (Exception ex)
            {
                result.Entities    = null;
                result.TotalAmount = 0;
                result.Success     = false;
                result.Message     = ex.Message;
                result.StatusCode  = 500;
                result.Exception   = ex;
            }

            return(Json(result));
        }
        /// <summary>
        /// Gets all asynchronously.
        /// </summary>
        /// <typeparam name="TEntity">The type of the entity.</typeparam>
        /// <returns></returns>
        public async Task <IGetManyResult <TEntity> > GetAllAsync <TEntity>() where TEntity : class, new()
        {
            var result = new GetManyResult <TEntity>();

            try
            {
                var collection = GetCollection <TEntity>();
                var entities   = await collection.Find(new BsonDocument()).ToListAsync();

                if (entities == null == false)
                {
                    result.Entities = entities;
                }

                result.Success = true;
                return(result);
            }
            catch (Exception ex)
            {
                result.Message = NotificationHelper.NotifyException("GetAllAsync", "Exception getting all " + typeof(TEntity).Name + "s", ex);
                return(result);
            }
        }
Exemplo n.º 17
0
        /// <summary>
        /// A generic get all method
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <returns></returns>
        public async Task <GetManyResult <TEntity> > GetAll()
        {
            var res = new GetManyResult <TEntity>();

            try
            {
                var collection = GetCollection();
                var entities   = await collection.Find(new BsonDocument()).ToListAsync();

                if (entities != null)
                {
                    res.Entities = entities;
                }
                res.Success = true;

                return(res);
            }
            catch (Exception ex)
            {
                res.Message = HelperService.NotifyException("GetAll", "Exception getting all " + typeof(TEntity).Name + "s", ex);
                return(res);
            }
        }