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)); } }
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)); } }