public async Task <ActionResult> Notifications() { string customerId = GetUserId(); UserCounterData userCounterData = userRedisRepository.GetUserCounterData(customerId); userRedisRepository.MarkAllAsRead(customerId); await CheckUserCounterData(); return(View(userCounterData)); }
public void MarkAllAsRead(string customerId) { UserCounterData userCounterData = GetUserCounterData(customerId); foreach (var notification in userCounterData.Notifications.Where(n => !n.DateVisualized.HasValue)) { notification.DateVisualized = DateTime.Now; } UpdateUserCounterData(customerId, userCounterData); }
public async Task <ActionResult> Notificacoes() { string clienteId = GetUserId(); UserCounterData userCounterData = await userRedisRepository.GetUserCounterDataAsync(clienteId); await userRedisRepository.MarkAllAsReadAsync(clienteId); await CheckUserCounterData(); return(View(userCounterData)); }
public async Task MarkAllAsReadAsync(string clienteId) { UserCounterData userCounterData = await GetUserCounterDataAsync(clienteId); foreach (var notification in userCounterData.Notifications.Where(n => !n.DateVisualized.HasValue)) { notification.DateVisualized = DateTime.Now; } await UpdateUserCounterDataAsync(clienteId, userCounterData); }
private void UpdateUserCounterData(string customerId, UserCounterData userCounterData) { if (userCounterData == null) { throw new ArgumentNullException(); } if (userCounterData.BasketCount < 0) { throw new ArgumentOutOfRangeException(); } if (_database.ContainsKey(customerId)) { _database[customerId] = userCounterData; return; } _database.Add(customerId, userCounterData); }
public UserCounterData GetUserCounterData(string customerId) { if (string.IsNullOrWhiteSpace(customerId)) { throw new ArgumentException(); } _database.TryGetValue(customerId, out UserCounterData data); if (data == null) { List <UserNotification> userNotifications = new List <UserNotification>(); data = new UserCounterData(userNotifications, 0); UpdateUserCounterData(customerId, data); return(data); } data.Notifications = data.Notifications.OrderByDescending(n => n.DateCreated).ToList(); return(data); }
public async Task <UserCounterData> GetUserCounterDataAsync(string clienteId) { if (string.IsNullOrWhiteSpace(clienteId)) { throw new ArgumentException(); } UserCounterData userCounterData; var data = await _database.StringGetAsync(clienteId); if (data.IsNullOrEmpty) { List <UserNotification> userNotifications = new List <UserNotification>(); userCounterData = new UserCounterData(userNotifications, 0); await UpdateUserCounterDataAsync(clienteId, userCounterData); return(userCounterData); } userCounterData = JsonConvert.DeserializeObject <UserCounterData>(data); userCounterData.Notifications = userCounterData.Notifications.OrderByDescending(n => n.DateCreated).ToList(); return(userCounterData); }
private async Task UpdateUserCounterDataAsync(string clienteId, UserCounterData userCounterData) { var json = JsonConvert.SerializeObject(userCounterData); await _database.StringSetAsync(clienteId, json); }