public async Task <IActionResult> Post([FromBody] PushNotificationModel model)
        {
            _logger.LogDebug("Post Called!!!");
            var email = this.User.Claims.FirstOrDefault(p => p.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress")?.Value;

            if (email == null)
            {
                email = this.User.Claims.FirstOrDefault(p => p.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier")?.Value;
            }

            var pushmessage = new PushNotificationPayloadModel
            {
                Title   = "Push Notification registered",
                Email   = email,
                Message = "Welcome"
            };

            List <Task> tasks = new List <Task>();
            var         task1 = _pushNotificationService.NewUserAsync(email, model);
            var         task2 = _pushNotificationService.PushNotification(model, pushmessage);

            tasks.Add(task1);
            tasks.Add(task2);
            Task.WaitAll(tasks.ToArray());
            return(Created("", null));
        }
예제 #2
0
        public async Task PushNotification(PushNotificationModel model, PushNotificationPayloadModel payloadmodel)
        {
            string payload = payloadToString(payloadmodel);

            _logger.LogDebug(payload);
            await NofityUser(model, payload);
        }
예제 #3
0
        private static string payloadToString(PushNotificationPayloadModel payloadmodel)
        {
            DefaultContractResolver contractResolver = new DefaultContractResolver
            {
                NamingStrategy = new CamelCaseNamingStrategy()
            };

            var payload = JsonConvert.SerializeObject(payloadmodel,
                                                      new JsonSerializerSettings {
                ContractResolver = contractResolver, Formatting = Formatting.Indented
            }
                                                      );

            return(payload);
        }