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)); }
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)); }
public Task <Relationship> Handle(CreateRelationshipCommand request, CancellationToken cancellationToken) { var entity = _mapper.Map <Relationship>(request); _beawreContext.Relationship.Add(entity); _beawreContext.SaveChanges(); return(Task.FromResult(entity)); }
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)); }
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); }