public void SendMisspush(string userid, string appid) { try { Recipients _rep = bus_Recipients.Get_ByIdAppID(userid, appid); if (_rep != null) { LogGenerationHelper.WriteToFile("Pushing leftover notif"); HashSet <string> receiver; var context = GlobalHost.ConnectionManager.GetHubContext <NotificationHub>(); if (Users.TryGetValue(new Tuple <string, string>(userid, appid), out receiver)) { foreach (var cid in receiver) { foreach (string notif in _rep.NotifIDs) { NotificationActivity _not = bus_NotificationActivity.Get_ById(notif); context.Clients.Client(cid).receiveNotification(_not.Content); } } } bus_Recipients.Update_ReceiveTime(_rep); } else { LogGenerationHelper.WriteToFile("No leftover notif"); } } catch (Exception ex) { LogGenerationHelper.WriteToFile(ex.Message); } }
public NotificationActivity Update_Cancel(NotificationActivity notif) { var _filter = Builders <NotificationActivity> .Filter.Eq(x => x.Id, notif.Id); var _update = Builders <NotificationActivity> .Update.Set(x => x.IsCancel, true); _objLst.UpdateOne(_filter, _update); return(notif); }
public NotificationActivity Update_SendTime(NotificationActivity notif) { var _filter = Builders <NotificationActivity> .Filter.Eq(x => x.Id, notif.Id); var _update = Builders <NotificationActivity> .Update.Set(x => x.SendTime, DateTime.Now); _objLst.UpdateOne(_filter, _update); return(notif); }
public void SendNotification(NotificationActivity obj) { SubNotificationHub objNotifHub = new SubNotificationHub(); //Notification objNotif = new Notification(); //context.Configuration.ProxyCreationEnabled = false; //context.Notifications.Add(objNotif); //context.SaveChanges(); objNotifHub.SendNotification(obj.Content); }
public HttpResponseMessage SendToList([FromBody] NotificationModel value) { try { //NotificationActivity _request = JsonConvert.DeserializeObject<NotificationActivity>(value); if (value.RecipientIDs == null || string.IsNullOrEmpty(value.Content)) { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } IEnumerable <string> _sessionGuid; User _usr = new User(); if (Request.Headers.TryGetValues("SessionGuid", out _sessionGuid)) { string _sessID = _sessionGuid.First(); if (MemoryCacher.GetValue(_sessID) == null) { return(Request.CreateResponse(HttpStatusCode.Forbidden)); } string _userID = MemoryCacher.GetValue(_sessID).ToString(); _usr = bus_user.Get_ById(_userID); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } List <string> _webappid = value.AppIDs.Where(x => bus_AppInfo.Get_ById(x).Type == AppTypeConst.WEBAPP).ToList(); if (_webappid != null && _webappid.Count > 0) { NotificationActivity _notif = bus_NotificationActivity.Create(new NotificationActivity { Content = value.Content, UserID = _usr.Id, RecipientIDs = value.RecipientIDs, AppIDs = _webappid, SendTime = DateTime.Now }); foreach (string _id in _webappid) { notificationHub.SendSegment(_notif.Id, value.RecipientIDs, _id, value.Content); } return(Request.CreateResponse(HttpStatusCode.OK, new { NotifID = _notif.Id })); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } } catch (Exception ex) { LogGenerationHelper.WriteToFile(ex.Message); return(Request.CreateResponse(HttpStatusCode.InternalServerError)); } }
public HttpResponseMessage SendToList_Routine([FromBody] NotificationModel value) { try { if (value.RecipientIDs == null || string.IsNullOrEmpty(value.Content) || value.Routine == null || value.Routine.Time == null) { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } IEnumerable <string> _sessionGuid; User _usr = new User(); if (Request.Headers.TryGetValues("SessionGuid", out _sessionGuid)) { string _sessID = _sessionGuid.First(); if (MemoryCacher.GetValue(_sessID) == null) { return(Request.CreateResponse(HttpStatusCode.Forbidden)); } string _userID = MemoryCacher.GetValue(_sessID).ToString(); _usr = bus_user.Get_ById(_userID); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } string _webappid = value.AppIDs.Where(x => bus_AppInfo.Get_ById(x).Type == AppTypeConst.WEBAPP).FirstOrDefault(); if (_webappid != null) { NotificationActivity _notif = bus_NotificationActivity.Create(new NotificationActivity { Content = value.Content, UserID = _usr.Id, RecipientIDs = value.RecipientIDs, AppIDs = new List <string> { _webappid }, IsRoutine = true, Routine = value.Routine }); return(Request.CreateResponse(HttpStatusCode.OK, new { NotifID = _notif.Id })); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } } catch (Exception ex) { LogGenerationHelper.WriteToFile(ex.Message); return(Request.CreateResponse(HttpStatusCode.InternalServerError)); } }
public async void CreateNewNotification(string messageBody) { var actNot = new NotificationActivity() { Id = Guid.NewGuid().ToString(), MessageBody = messageBody, UtcTime = DateTime.UtcNow }; using (var reps = new Repositories.NotificationActivityRepository("Course")) { await reps.CreateAsync(actNot); } }
public HttpResponseMessage CancelScheduledNotif([FromBody] NotificationModel value) { List <NotificationActivity> notifications = bus_NotificationActivity.Get_Unpush(); NotificationActivity _notif = notifications.Where(x => x.Id == value.Id).FirstOrDefault(); if (_notif == null) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } else { bus_NotificationActivity.Update_Cancel(_notif); return(Request.CreateResponse(HttpStatusCode.OK)); } }
public HttpResponseMessage GetNotif_ById([FromBody] NotifHistoryModel model) { if (model.Id == null) { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } try { NotificationActivity notif = bus_NotificationActivity.Get_ById(model.Id); return(Request.CreateResponse(HttpStatusCode.OK, notif)); } catch (Exception ex) { LogGenerationHelper.WriteToFile(ex.Message); return(Request.CreateResponse(HttpStatusCode.InternalServerError)); } }
public static async Task Run([EventHubTrigger("activity.notification", Connection = "EventHubConnectionString")] EventData[] events, ILogger log) { var exceptions = new List <Exception>(); foreach (EventData eventData in events) { try { string messageBody = Encoding.UTF8.GetString(eventData.Body.Array, eventData.Body.Offset, eventData.Body.Count); // Replace these two lines with your processing logic. log.LogInformation($"C# Event Hub trigger function processed a message: {messageBody}"); var actNot = new NotificationActivity() { Id = Guid.NewGuid().ToString(), MessageBody = messageBody, UtcTime = DateTime.UtcNow }; using (var reps = new Repositories.NotificationActivityRepository()) { await reps.CreateAsync(actNot); } } catch (Exception e) { exceptions.Add(e); } } if (exceptions.Count > 1) { throw new AggregateException(exceptions); } if (exceptions.Count == 1) { throw exceptions.Single(); } }
public HttpResponseMessage UpdateUnpushNotif([FromBody] NotificationModel value) { List <NotificationActivity> notifications = bus_NotificationActivity.Get_Unpush(); notifications.AddRange(bus_NotificationActivity.Get_Routine()); NotificationActivity _notif = notifications.Where(x => x.Id == value.Id).FirstOrDefault(); if (_notif == null) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } else { _notif.Content = value.Content; _notif.RecipientIDs = value.RecipientIDs; _notif.AppIDs = value.AppIDs; _notif.ScheduleTime = value.ScheduleTime; _notif.IsRoutine = value.IsRoutine; _notif.Routine = value.Routine; bus_NotificationActivity.Replace(_notif); return(Request.CreateResponse(HttpStatusCode.OK)); } }
public ReplaceOneResult Replace(NotificationActivity notif) { var _filter = Builders <NotificationActivity> .Filter.Eq(x => x.Id, notif.Id); return(_objLst.ReplaceOne(_filter, notif)); }
public NotificationActivity Create(NotificationActivity appinfo) { _objLst.InsertOne(appinfo); return(appinfo); }