public async Task <ActionResult <IEnumerable <MapMarker> > > GetMarkers(IsoDay?day) { IEnumerable <EstablishmentModel> establishments; try { if (User.Identity.IsAuthenticated) { day ??= DateTime.Now.DayOfWeek.ToIsoDay(); establishments = await _establishmentService.GetAllOpenOn((IsoDay)day); } else { if (day != null) { return(Unauthorized()); } establishments = await _establishmentService.GetAll(); } } catch (Exception) // TODO: Better exception handling { establishments = new List <EstablishmentModel>(); } var markers = await _geocodingService.GetMarkers(establishments); return(Ok(markers)); }
public async Task <ActionResult <IEnumerable <EstablishmentDto> > > GetAll([CustomizeValidator(Skip = true)][FromQuery] EstablishmentParameters establishmentParameters, [FromQuery(Name = "Includes")] List <string> includes, [FromServices] EstablishmentParametersValidator validator) { if (establishmentParameters is null) { throw new ArgumentNullException(nameof(establishmentParameters)); } if (validator is null) { throw new ArgumentNullException(nameof(validator)); } // Add requested Includes to EstablishmentParameters before validation establishmentParameters.Includes = includes; // Perform manual validation now that EstablishmentParameters is complete var validationResult = validator.Validate(establishmentParameters); validationResult.AddToModelState(ModelState, null); if (!ModelState.IsValid) { return(ValidationProblem(ModelState)); } var establishments = await _establishmentService.GetAll(establishmentParameters); return(Ok(establishments)); }
public async Task <ActionResult <List <Statement> > > Get() { List <Statement> statements; try { logger.LogInformation("Trying to get associated releases from database"); List <Release> releases = await releasesService.GetAll(); if (releases.Count == 0) { string errorMessage = responseMessages.NotFound.Replace("$", "Lançamento"); logger.LogInformation("Error: " + errorMessage); return(httpResponseHelper.ErrorResponse(errorMessage, 404)); } var establishments = await establishmentService.GetAll(); foreach (var release in releases) { release.EstablishmentName = establishments.Find(e => e.Name == release.EstablishmentName).Type; } ; statements = releases.GroupBy(r => new { r.Date, r.EstablishmentName, r.PaymentMethod }).Select(x => { var statement = new Statement(); var curr = x.First(); statement.Date = curr.Date; statement.PaymentMethod = curr.PaymentMethod; statement.Type = curr.EstablishmentName; statement.TotalAmount = x.Sum(xa => xa.Amount); return(statement); }).ToList(); } catch (Exception ex) { logger.LogInformation("Exception: " + ex.Message); logger.LogTrace(ex.StackTrace); throw; } logger.LogInformation("Action GET for /api/statements returns 200"); return(Ok(statements)); }
public async Task <ActionResult <List <Establishment> > > Get() { List <Establishment> establishments; try { logger.LogInformation("Trying to get establishments from database"); establishments = await establishmentService.GetAll(); if (establishments.Count == 0) { string errorMessage = responseMessages.NotFound.Replace("$", "Estabelecimento"); logger.LogInformation("Error: " + errorMessage); return(httpResponseHelper.ErrorResponse(errorMessage, 404)); } } catch (Exception ex) { logger.LogInformation($"Message: {ex.Message}"); logger.LogTrace($"Stack Trace: {ex.StackTrace}"); throw; } logger.LogInformation("Action GET for /api/establishments returns 200"); return(Ok(establishments)); }
public async Task <IActionResult> Index() { var establishments = await _establishmentService.GetAll(); return(View(establishments)); }