Beispiel #1
0
        public async Task <IActionResult> GetHolidaysByState([FromRoute] Guid token, string countryIsoCode, string stateIsoCode, int year)
        {
            CommandResponse commandResponse;
            Stopwatch       watch = Stopwatch.StartNew();

            if (!ModelState.IsValid)
            {
                commandResponse = FormatResponse(ModelState);
            }
            else
            {
                CommandResult commandResult;

                if (token != _bigaiId)
                {
                    commandResult = CommandResult.Unauthorized("Authorization token is not valid.");
                }
                else
                {
                    var request = new GetHolidaysByStateRequest()
                    {
                        StateIsoCode   = stateIsoCode,
                        CountryIsoCode = countryIsoCode,
                        Year           = year
                    };
                    commandResult = await _queryHolidaysByState.GetHolidaysByStateAsync(request);
                }
                commandResponse = FormatResponse(commandResult);
            }

            watch.Stop();
            commandResponse.ElapsedTime = watch.ElapsedMilliseconds;

            return(StatusCode(commandResponse.StatusCode, commandResponse));
        }
Beispiel #2
0
        public async Task <CommandResult> GetHolidaysByStateAsync(GetHolidaysByStateRequest request)
        {
            _commandName = request.GetType().Name;
            CommandResult commandResult;
            Stopwatch     watch = Stopwatch.StartNew();

            try
            {
                if (!await CanGetHolidaysByStateAsync(request))
                {
                    commandResult = CommandResult.BadRequest("Não foi possível realizar a consulta.");
                }
                else
                {
                    var holidays = await GetHolidaysByStateAsync(request.CountryIsoCode, request.StateIsoCode, request.Year);

                    if (holidays != null && holidays.Count() > 0)
                    {
                        commandResult      = CommandResult.Ok($"{holidays.Count()} feriados encontrados.");
                        commandResult.Data = holidays.ToResponse(request.StateIsoCode);
                    }
                    else
                    {
                        commandResult = CommandResult.BadRequest($"Não existe feriado cadastrado para {request.CountryIsoCode}/{request.StateIsoCode} em {request.Year}.");
                    }
                }
            }
            catch (Exception)
            {
                commandResult = CommandResult.InternalServerError($"Ocorreu um erro na busca.");
            }

            watch.Stop();
            commandResult.ElapsedTime = watch.ElapsedMilliseconds;

            return(commandResult);
        }
Beispiel #3
0
 private async Task <bool> CanGetHolidaysByStateAsync(GetHolidaysByStateRequest request)
 {
     return(InstanceNotNull(request) && (await IsValidRequestAsync(_getHolidaysByStateRequestValidator, request)));
 }