public async Task <IActionResult> GetBets([FromQuery] DateRangeSieveModel model) { bool search = !string.IsNullOrWhiteSpace(model.SearchQuery); DateRange range = new DateRange(model.Start, model.End); var filter = range.Includes <Bet>(); if (search) { string query = model.SearchQuery.ToLower(); // Also search using platform string platformPath = Path.Combine(Core.DATA_DIR, "betPlatforms.json"); string json = await System.IO.File.ReadAllTextAsync(platformPath); var platforms = JsonConvert.DeserializeObject <List <BetPlatform> >(json) .Where(p => p.Name.ToLower().Contains(query)); filter = filter.And(c => c.SlipNumber.ToLower().Contains(query)); foreach (var platform in platforms) { filter = filter.Or(c => c.PlatformId == platform.Id); } } IEnumerable <Bet> claims = await DataContext.Store.GetAllAsync(filter); var data = Sieve.Apply(model, Mapper.Map <IEnumerable <BackOfficeClaimViewModel> >(claims).AsQueryable()); return(Ok(data)); }
public async Task <IActionResult> GetTransactions([FromQuery] DateRangeSieveModel model) { bool search = !string.IsNullOrWhiteSpace(model.SearchQuery); DateRange range = new DateRange(model.Start, model.End); var filter = range.Includes <Transaction>(); if (search) { string json = await System.IO.File.ReadAllTextAsync(Path.Combine(Core.DATA_DIR, "paymentChannels.json")); var channels = JsonConvert.DeserializeObject <List <PaymentChannel> >(json); foreach (var channel in channels) { filter = filter.Or(t => t.PaymentChannelId == channel.Id); } } var transactions = await DataContext.Store.GetAllAsync(filter);//await (await DataContext.Store.GetOneAsync<User>(u => u.IsPlatform)).Wallet.GetTransactions(filter); var data = Sieve.Apply(model, Mapper.Map <IEnumerable <BackOfficeTransactionViewModel> >(transactions).AsQueryable()); return(Ok(data)); }
public async Task <IActionResult> GetRequests([FromQuery] DateRangeSieveModel model) { bool search = !string.IsNullOrWhiteSpace(model.SearchQuery); DateRange range = new DateRange(model.Start, model.End); var filter = range.IncludesRequest(); var request = await DataContext.Store.GetAllAsync(filter); var data = Sieve.Apply(model, Mapper.Map <IEnumerable <UserDepositPaymentRequestViewModel> >(request).AsQueryable()); if (search) { string query = model.SearchQuery.ToLower(); data.Where(d => d.PlatformBankAccount.AccountName.ToLower().Contains(query) || d.PlatformBankAccount.AccountNumber.Contains(query) || d.Description.Contains(query)); // TODO: Improve search. } return(Ok(data)); }
public async Task <IActionResult> GetAgents([FromQuery] DateRangeSieveModel model) { var agents = await DataContext.Store.GetAllAsync <User>(u => u.MajorRole == UserRoles.Agent); return(Ok(Mapper.Map <IEnumerable <AgentViewModel> >(agents))); }