コード例 #1
0
 public bool Create(CreateNotificationCommand command)
 {
     _beawreContext.Relationship.Add(new Relationship()
     {
         FromType = ObjectType.User,
         ToType   = ObjectType.Notification,
         FromId   = command.UserId.FirstOrDefault(),
         ToId     = Guid.Empty,
         Payload  = JsonConvert.SerializeObject(command.Payload)
     });
     _beawreContext.SaveChanges();
     return(true);
 }
        public Task <bool> Handle(CreateNotificationCommand request, CancellationToken cancellationToken)
        {
            var users = _beawreContext.User.Where(x => request.UserId.Contains(x.Id)).ToList();

            foreach (var user in users)
            {
                var payload = JObject.Parse(string.IsNullOrEmpty(user.Payload) ? "{}" : user.Payload);
                if (payload.ContainsKey("notificationsSettings"))
                {
                    var settings = payload.SelectToken("notificationsSettings")
                                   .SelectToken(request.Payload.StringValue1).ToObject <JObject[]>().FirstOrDefault(x => x.SelectToken("key")?.Value <string>() == request.Payload.Type)?.Values <JProperty>().ToList();
                    if (settings == null)
                    {
                        continue;
                    }
                    bool sendEmail  = settings.FirstOrDefault(x => x.Name == "email").Value.Value <bool>();
                    bool sendWebApp = settings.FirstOrDefault(x => x.Name == "webapp").Value.Value <bool>();

                    if (sendWebApp)
                    {
                        _beawreContext.Relationship.Add(new Relationship()
                        {
                            FromType = ObjectType.User, ToType = ObjectType.Notification, FromId = user.Id, ToId = Guid.Empty, Payload = JsonConvert.SerializeObject(request.Payload)
                        });
                    }

                    if (sendEmail && !string.IsNullOrEmpty(request.Payload.Title) && !string.IsNullOrEmpty(request.Payload.Content))
                    {
                        _emailHelper.Send(user.Email, user.Username, request.Payload.Title, request.Payload.Content);
                    }
                }
            }
            _beawreContext.SaveChanges();
            return(Task.FromResult(true));
        }
コード例 #3
0
        public Task <Database.Tables.Evidence> Handle(CreateEvidenceCommand request, CancellationToken cancellationToken)
        {
            var entity = _mapper.Map <Database.Tables.Evidence>(request);

            _beawreContext.Evidence.Add(entity);
            _beawreContext.SaveChanges();
            return(Task.FromResult(entity));
        }
コード例 #4
0
        public Task <Relationship> Handle(CreateRelationshipCommand request, CancellationToken cancellationToken)
        {
            var entity = _mapper.Map <Relationship>(request);

            _beawreContext.Relationship.Add(entity);
            _beawreContext.SaveChanges();

            return(Task.FromResult(entity));
        }
コード例 #5
0
        public Task <Guid> Handle(CreateUserCommand request, CancellationToken cancellationToken)
        {
            var entry = _mapper.Map <User>(request);

            _beawreContext.User.Add(entry);
            _beawreContext.SaveChanges();

            return(Task.FromResult(entry.Id));
        }
コード例 #6
0
        public Task <bool> Handle(MarkAsReadCommand request, CancellationToken cancellationToken)
        {
            var list = _beawreContext.Relationship.Where(x =>
                                                         x.FromType == ObjectType.User && x.ToType == ObjectType.Notification && x.FromId == request.UserId);

            foreach (var item in list)
            {
                var payload = JObject.Parse(item.Payload ?? "{}");
                if (payload.ContainsKey("IsRead"))
                {
                    payload.SelectToken("IsRead").Replace(true);
                }
                if (!payload.ContainsKey("IsRead"))
                {
                    payload.Add("IsRead", true);
                }
                item.Payload = JsonConvert.SerializeObject(payload);
            }
            _beawreContext.SaveChanges();
            return(Task.FromResult(true));
        }
        public Task <bool> Handle(UpdateNotificationsSettingsCommand request, CancellationToken cancellationToken)
        {
            var user = _beawreContext.User.FirstOrDefault(x => x.Id == request.UserId);

            if (user == null)
            {
                throw new Exception("User not found!");
            }

            var payload = JObject.Parse(user.Payload ?? "{}");

            if (payload.ContainsKey("notificationsSettings"))
            {
                payload.SelectToken("notificationsSettings").Replace(JObject.Parse(request.Settings.ToString()));
            }
            else
            {
                payload.Add(new JProperty("notificationsSettings", JObject.Parse(request.Settings.ToString())));
            }

            user.Payload = JsonConvert.SerializeObject(payload);
            _beawreContext.SaveChanges();
            return(Task.FromResult(true));
        }
 public bool CreateBulk(List <Relationship> list)
 {
     _beawreContext.Relationship.AddRange(list);
     _beawreContext.SaveChanges();
     return(true);
 }