コード例 #1
0
        public async Task <IActionResult> Create(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = "AndroidTokens")]
            [RequestBodyType(typeof(AndroidToken), "Criar um novo token")] HttpRequest request,
            ILogger logger)
        {
            try
            {
                AndroidTokenRepository androidTokenRepository = new AndroidTokenRepository();
                string requestBody = await new StreamReader(request.Body).ReadToEndAsync();
                var    input       = JsonConvert.DeserializeObject <AndroidToken>(requestBody);
                input.ApplicationId = 2;

                var validator        = new AndroidTokenValidator();
                var validationResult = validator.Validate(input);

                if (!validationResult.IsValid)
                {
                    return(new BadRequestObjectResult(validationResult.Errors.Select(e => new
                    {
                        Field = e.PropertyName,
                        Error = e.ErrorMessage
                    })));
                }

                var notification = await androidTokenRepository.GetNotificationByKey(input.Id, input.CompanyId, input.UserId, input.ApplicationId);

                if (notification != null)
                {
                    if (notification.DeletedAt != null)
                    {
                        notification.DeletedAt = null;
                        await androidTokenRepository.UpdateNotification(notification);
                    }
                    return(new OkResult());
                }
                else
                if (await androidTokenRepository.CreateNotification(input) == 1)
                {
                    return(new OkResult());
                }

                return(new BadRequestObjectResult("Token não foi gravado, favor enviar os dados corretamente."));
            }
            catch (Exception ex)
            {
                logger.LogError(ex.Message);
                return(new BadRequestObjectResult(ex.Message));
            }
        }
コード例 #2
0
        public async Task <IActionResult> Create(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = "v1/AndroidTokens")]
            [RequestBodyType(typeof(AndroidToken), "Criar um novo token")] HttpRequest request,
            ILogger logger)
        {
            try
            {
                var form = await request.GetJsonBody <AndroidToken, AndroidTokenValidator>();

                if (!form.IsValid)
                {
                    logger.LogInformation($"Invalid form data.");
                    return(form.ToBadRequest());
                }

                var input = form.Value;
                AndroidTokenRepository androidTokenRepository = new AndroidTokenRepository();

                var notification = await androidTokenRepository.GetNotificationByKey(input.Id, input.CompanyId, input.UserId, input.ApplicationId);

                if (notification != null)
                {
                    if (notification.DeletedAt != null)
                    {
                        notification.DeletedAt = null;
                        await androidTokenRepository.UpdateNotification(notification);
                    }
                    return(new OkResult());
                }
                else
                if (await androidTokenRepository.CreateNotification(input) == 1)
                {
                    return(new OkResult());
                }

                return(new BadRequestObjectResult("Token não foi gravado, favor enviar os dados corretamente."));
            }
            catch (Exception ex)
            {
                logger.LogError(ex.Message);
                return(new BadRequestObjectResult(ex.Message));
            }
        }