private RatingTypeInfo GetOrCreateRatingTypeInfo(ResourceType ratingType) { if (_rateDictionary.TryGetValue(ratingType, out var info)) { return(info); } return(_rateDictionary[ratingType] = new RatingTypeInfo()); }
// APIs to get the state of an entity at a specific point in time /* * [HttpGet("/api/Exhibits/{id}/History/{timestamp}")] * public Task<IActionResult> GetExhibitVersion(int id, DateTimeOffset timestamp) => * GetVersionAsync<Exhibit>(ResourceType.Exhibit, id, timestamp); * * [HttpGet("/api/Exhibits/Pages/{id}/History/{timestamp}")] * public Task<IActionResult> GetExhibitPageVersion(int id, DateTimeOffset timestamp) => * GetVersionAsync<ExhibitPage>(ResourceType.ExhibitPage, id, timestamp); * * [HttpGet("/api/Media/{id}/History/{timestamp}")] * public Task<IActionResult> GetMediaVersion(int id, DateTimeOffset timestamp) => * GetVersionAsync<MediaElement>(ResourceType.Media, id, timestamp); * * [HttpGet("/api/Routes/{id}/History/{timestamp}")] * public Task<IActionResult> GetRouteVersion(int id, DateTimeOffset timestamp) => * GetVersionAsync<Route>(ResourceType.Route, id, timestamp); * * [HttpGet("/api/Tags/{id}/History/{timestamp}")] * public Task<IActionResult> GetTagVersion(int id, DateTimeOffset timestamp) => * GetVersionAsync<Route>(ResourceType.Tag, id, timestamp); */ // Private helper methods private async Task <IActionResult> GetSummaryAsync(ResourceType type, int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!UserPermissions.IsAllowedToGetHistory(User.Identity, _entityIndex.Owner(type, id))) { return(Forbid()); } var summary = await HistoryUtil.GetSummaryAsync(_eventStore.EventStream, (type, id)); return(Ok(summary)); }
public int NextId(ResourceType entityType) { var info = GetOrCreateRatingTypeInfo(entityType); return(++info.MaximumId); }
public double Average(ResourceType res, int id) { return(GetOrCreateRatingTypeInfo(res).Ratings.TryGetValue(id, out var t) ? t.AverageRate : 0); }
public Dictionary <int, int> Table(ResourceType res, int id) { return(GetOrCreateRatingTypeInfo(res).Ratings.TryGetValue(id, out var t) ? t.GetRatingTable() : null); }
/// <summary> /// Number of user rating`s /// </summary> public int Count(ResourceType res, int id) { return(GetOrCreateRatingTypeInfo(res).Ratings.TryGetValue(id, out var t) ? t.NumberRates : 0); }