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; }
/// <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()); }
/// <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); } }
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); }
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); }
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); }
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)); }
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); }
/// <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); } }
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); }
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); } }
/// <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); } }