Exemple #1
0
 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);
     }
 }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 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));
     }
 }
Exemple #6
0
 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));
     }
 }
Exemple #7
0
        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);
            }
        }
Exemple #8
0
        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));
            }
        }
Exemple #9
0
 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));
     }
 }
Exemple #10
0
        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();
            }
        }
Exemple #11
0
        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));
            }
        }
Exemple #12
0
        public ReplaceOneResult Replace(NotificationActivity notif)
        {
            var _filter = Builders <NotificationActivity> .Filter.Eq(x => x.Id, notif.Id);

            return(_objLst.ReplaceOne(_filter, notif));
        }
Exemple #13
0
 public NotificationActivity Create(NotificationActivity appinfo)
 {
     _objLst.InsertOne(appinfo);
     return(appinfo);
 }