public static async Task AddOrUpdateAsync(this IMongoCollection <TagStatistics> collection, TagStatistics statistics) { await collection.ReplaceOneAsync(x => x.Name == statistics.Name, statistics, new UpdateOptions { IsUpsert = true }); }
public ActionResult Statistics() { var model = new TagStatistics(); var terms = _tagRepository.GetAll(); // Count model.Count = terms.Count(); // Latest model.Latest = terms.OrderByDescending(c => c.Id).Take(3).Select(i => new { name = i.Name, //image = _imageService.BuildUrl(i.ImageBlob?.Name, i.Name, 40, 40), creationDate = Globalization.GetLocalDateTime(i.UTCCreation).DateTime.ToLongDateString(), navigationPath = Url.Action(nameof(TagController.Edit), nameof(TagController).RemoveControllerSuffix(), new { @id = i.Id }) }).Cast <object>().ToList(); // Weekly data var maxDate = DateTime.UtcNow; var minDate = maxDate.AddDays(-7); terms = terms.Where(c => c.UTCCreation.Date >= minDate.Date); terms = terms.Where(c => c.UTCCreation.Date <= maxDate.Date); var items = new List <object>(); for (DateTime date = minDate.Date; date <= maxDate.Date; date = date.AddDays(1)) { var dayName = date.ToString("MMM/dd"); var dayValue = terms.Where(c => c.UTCCreation.Date.Equals(date)).Count(); items.Add(new List <object>() { dayName, dayValue }); } model.WeeklyRegistrations = items; return(Json(model)); }
private async Task HandleTagStatisticsAsync(T @event) { var remarkStats = await _remarkStatisticsRepository.GetAsync(@event.RemarkId); if (remarkStats.HasNoValue) { return; } foreach (var tag in remarkStats.Value.Tags) { var tagStats = await _tagStatisticsRepository.GetByNameAsync(tag); if (tagStats.HasNoValue) { tagStats = new TagStatistics(tag, new RemarksCountStatistics()); } _updateTags(tagStats.Value); await _tagStatisticsRepository.AddOrUpdateAsync(tagStats.Value); } }
public async Task AddOrUpdateAsync(TagStatistics statistics) => await _database.TagStatistics() .AddOrUpdateAsync(statistics);