예제 #1
0
        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));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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));
        }
예제 #4
0
        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)));
        }