예제 #1
0
        public ESearch GetByID(string id)
        {
            using var context = new SMySQLContext();
            ESearch e = context.Searches.SingleOrDefault(x => x.Id == id);

            return(e);
        }
예제 #2
0
        public async Task <ActionResult <List <EProduct> > > Search([FromBody] ESearch eSearch)
        {
            eSearch.CreationDateUTC = DateTime.UtcNow;
            var result = await searchService.Search(eSearch);

            return(Ok(result));
        }
예제 #3
0
        public async Task <IEnumerable <ETransaction> > Search(ESearch search)
        {
            var transactions = (from t in _context.Transaction
                                select new ETransaction
            {
                Amount = t.Amount,
                IsFraud = t.IsFraud,
                NameDest = t.NameDest,
                NameOrig = t.NameOrig,
                IdTransaction = t.IdTransaction,
                Type = (ETransactionType)Enum.Parse(typeof(ETransactionType), t.Type),
                TransactionDate = t.TransactionDate
            });

            if (!string.IsNullOrEmpty(search.NameDest))
            {
                transactions = transactions.Where(x => x.NameDest == search.NameDest);
            }

            if (search.IsFraud)
            {
                transactions = transactions.Where(x => x.IsFraud == search.IsFraud);
            }

            if (search.TransactionDate != null)
            {
                transactions = transactions.Where(x => x.TransactionDate.Date == search.TransactionDate.Value.Date);
            }

            return(await transactions.ToListAsync());
        }
예제 #4
0
        //=====================================================GETS ABOVE=====================================================

        #region AddAsync
        public async Task <string> AddAsync(ESearch eSearch)
        {
            eSearch.CreationDateUTC = DateTime.UtcNow;
            eSearch.Id        = Guid.NewGuid().ToString();
            using var context = new SMySQLContext();
            var e = await context.Searches.AddAsync(eSearch);

            await context.SaveChangesAsync();

            return(e.Entity.Id);
        }
예제 #5
0
        public IActionResult Search(ESearch search)
        {
            var transactions = _transactionService.Search(search);

            ETransactionSearch transactionSearch = new ETransactionSearch
            {
                Transactions = transactions.Result,
                Search       = new ESearch()
                {
                    TransactionDate = DateTime.Now
                }
            };

            return(View("Index", transactionSearch));
        }
예제 #6
0
        public async Task <IActionResult> SearchTransactions([FromBody] ESearch search)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var transactions = await _transactionService.Search(search);

                return(Ok(transactions));
            }
            catch (Exception ex)
            {
                return(Ok(new EResponse()
                {
                    Code = "2", Desc = ex.GetDetail()
                }));
            }
        }
예제 #7
0
        public async Task <List <EProduct> > Search(ESearch eSearch)
        {
            ClientDefines.Loading = true;
            HttpRequestMessage req = new HttpRequestMessage(HttpMethod.Post, $"api/v1/SSearch/Search");

            req.Headers.Add("Authorization", $"bearer {ClientDefines.Token}");
            req.Content = new StringContent(JsonConvert.SerializeObject(eSearch), Encoding.UTF8, "application/json");
            var response = await httpClient.SendAsync(req);

            ClientDefines.Loading = false;
            if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
            {
                throw new UnauthorizedAccessException();
            }
            response.EnsureSuccessStatusCode();
            string responseBody = await response.Content.ReadAsStringAsync();

            List <EProduct> result = JsonConvert.DeserializeObject <List <EProduct> >(responseBody);

            return(result);
        }
예제 #8
0
        public async Task <List <EProduct> > Search(ESearch eSearch)
        {
            List <EProduct> list = new List <EProduct>();
            //using var context = new SMySQLContext();
            //await AddAsync(eSearch);
            string          pattern      = @"(\w+)(\s+)?(\w+)?";
            RegexOptions    regexOptions = RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.CultureInvariant;
            Regex           rx           = new Regex(pattern, regexOptions);
            MatchCollection matches      = rx.Matches(eSearch.Text);

            if (matches.Count == 0)
            {
                return(list);
            }
            GroupCollection groups = matches[0].Groups;//palavra+espaco+palavra

            if (groups.Count < 2)
            {
                return(list);
            }
            string firstWord = groups[1].Value;
            double amount    = GetAmount(firstWord);

            if (amount < 0)
            {
                return(list);
            }
            var resultList = GetProductInSearch(groups);

            foreach (EProduct eProduct in resultList)
            {
                eProduct.Amount     = amount;
                eProduct.TotalPrice = ((decimal)eProduct.Amount) * eProduct.UnitPrice;
            }
            return(resultList);
        }