public void CreateAndSendMessage(PatientMessaging_Model messageInfo, Message messageOrder) { string messageBody = ""; string timeFromAlert = messageOrder == Message.First ? $"{60 - DateTime.Now.Minute} minutes" : $"{DateTime.Now.Minute} minutes ago"; messageBody = messageOrder == Message.First ? messageInfo.NumberOfUpcomingAlerts > 1 ? $"You have {messageInfo.NumberOfUpcomingAlerts} medicines to take in about {timeFromAlert}" : $"You have a medicine to take in about {timeFromAlert}" : messageInfo.NumberOfUpcomingAlerts > 1 ? $"You have {messageInfo.NumberOfUpcomingAlerts} medicines to take about {timeFromAlert}" : $"You have a medicine to take about {timeFromAlert}"; WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send"); tRequest.Method = "post"; //serverKey - Key from Firebase cloud messaging server tRequest.Headers.Add(string.Format("Authorization: key={0}", "AAAAZJgbXy0:APA91bFqr2ryc6uBrtfSid645h1lFadS0iStbpMFg7oAUCat1AWQQ8ZcTRu8wrzRQzOzgLjsg6sYF-T2HZ7xPXxaJ9xnORXax26HDkxEazunlOE68FAAWA2qgwlIFsTwNoig-LStS2gc")); //Sender Id - From firebase project setting tRequest.Headers.Add(string.Format("Sender: id={0}", "432048660269")); tRequest.ContentType = "application/json"; var payload = new { to = messageInfo.FcmToken, priority = "high", content_available = true, notification = new { body = messageBody, title = "MedScanRx Upcoming Alerts", badge = 1, }, }; string postbody = JsonConvert.SerializeObject(payload).ToString(); Byte[] byteArray = Encoding.UTF8.GetBytes(postbody); tRequest.ContentLength = byteArray.Length; using (Stream dataStream = tRequest.GetRequestStream()) { dataStream.Write(byteArray, 0, byteArray.Length); using (WebResponse tResponse = tRequest.GetResponse()) { using (Stream dataStreamResponse = tResponse.GetResponseStream()) { if (dataStreamResponse != null) { using (StreamReader tReader = new StreamReader(dataStreamResponse)) { String sResponseFromServer = tReader.ReadToEnd(); } } } } } }
public static PatientMessaging_Model Map(SqlDataReader reader) { try { var messagingInfo = new PatientMessaging_Model { AlertDateTime = DateTime.Parse(reader["AlertDateTime"].ToString()), FcmToken = reader["FcmToken"].ToString(), NumberOfUpcomingAlerts = (int)reader["NumberOfUpcomingAlerts"] }; return(messagingInfo); } catch (Exception ex) { throw new MappingException("Mapping a data row to a patient message info failed", ex); } }