예제 #1
0
        public void Ask(AskParameters parameters)
        {
            var now      = SystemDateTime.Now;
            var areYouOk = new AreYouOkActivity();

            areYouOk.Sender = Users[parameters.SenderId];
            areYouOk.Target = Users[parameters.TargetId];
            areYouOk.IAmOk  = false;

            AreYouOkActivities.Put(areYouOk);

            CurrentUnitOfWork.Checkpoint();

            var list = areYouOk.Target.Devices.Select(x => new BodySend()
            {
                Token = x.Token,
                Body  = "¿estas bien?",
                Title = "Encuentrame",
                Data  = new
                {
                    Created      = now,
                    Id           = areYouOk.Id,
                    SenderUserId = areYouOk.Target.Id,
                    AskDatetime  = areYouOk.Created,
                    Type         = "Areyouok.Ask",
                }
            }).ToList();

            ExpoPushHelper.SendPushNotification(list);
        }
예제 #2
0
        public void Reply(ReplyParameters parameters)
        {
            var now       = SystemDateTime.Now;
            var replyUser = Users[parameters.UserId];

            var areYouOkActivities = AreYouOkActivities.Where(x => x.ReplyDatetime == null && x.Target == replyUser);

            foreach (var areYouOkActivity in areYouOkActivities)
            {
                areYouOkActivity.IAmOk         = parameters.IAmOk;
                areYouOkActivity.ReplyDatetime = SystemDateTime.Now;

                var list = areYouOkActivity.Sender.Devices.Select(x => new BodySend()
                {
                    Token = x.Token,
                    Body  = parameters.IAmOk ? $"{replyUser.FullName} ha indicado que está bien!" : $"{replyUser.FullName} esta con algun problema",
                    Title = "Encuentrame",
                    Data  = new
                    {
                        Created       = now,
                        Id            = areYouOkActivity.Id,
                        TargetUserId  = areYouOkActivity.Target.Id,
                        Ok            = parameters.IAmOk,
                        ReplyDatetime = areYouOkActivity.ReplyDatetime,
                        Type          = "Areyouok.Reply",
                    }
                }).ToList();

                ExpoPushHelper.SendPushNotification(list);
            }

            var areYouOkEvents = AreYouOkEvents.Where(x => x.ReplyDatetime == null && x.Target == replyUser);

            foreach (var areYouOkEvent in areYouOkEvents)
            {
                areYouOkEvent.IAmOk         = parameters.IAmOk;
                areYouOkEvent.ReplyDatetime = SystemDateTime.Now;
            }
        }
예제 #3
0
        public void Delete(int id)
        {
            var areYouOk = AreYouOkActivities[id];

            AreYouOkActivities.Remove(areYouOk);
        }
예제 #4
0
 public IList <AreYouOkActivity> List()
 {
     return(AreYouOkActivities.ToList());
 }