Пример #1
0
        private RatingTypeInfo GetOrCreateRatingTypeInfo(ResourceType ratingType)
        {
            if (_rateDictionary.TryGetValue(ratingType, out var info))
            {
                return(info);
            }

            return(_rateDictionary[ratingType] = new RatingTypeInfo());
        }
Пример #2
0
        // 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));
        }
Пример #3
0
        public int NextId(ResourceType entityType)
        {
            var info = GetOrCreateRatingTypeInfo(entityType);

            return(++info.MaximumId);
        }
Пример #4
0
 public double Average(ResourceType res, int id)
 {
     return(GetOrCreateRatingTypeInfo(res).Ratings.TryGetValue(id, out var t) ? t.AverageRate : 0);
 }
Пример #5
0
 public Dictionary <int, int> Table(ResourceType res, int id)
 {
     return(GetOrCreateRatingTypeInfo(res).Ratings.TryGetValue(id, out var t) ? t.GetRatingTable() : null);
 }
Пример #6
0
 /// <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);
 }