SetRatings now return average rating.

This commit is contained in:
Steven Hildreth 2018-12-01 08:57:27 -06:00
parent 1ca2d2e063
commit df6cfe6fe4
3 changed files with 27 additions and 21 deletions

View file

@ -10,8 +10,8 @@ namespace Roadie.Api.Services
public interface IUserService public interface IUserService
{ {
Task<PagedResult<UserList>> List(PagedRequest request); Task<PagedResult<UserList>> List(PagedRequest request);
Task<OperationResult<bool>> SetReleaseRating(Guid releaseId, User roadieUser, short rating); Task<OperationResult<short>> SetReleaseRating(Guid releaseId, User roadieUser, short rating);
Task<OperationResult<bool>> SetArtistRating(Guid artistId, User roadieUser, short rating); Task<OperationResult<short>> SetArtistRating(Guid artistId, User roadieUser, short rating);
Task<OperationResult<bool>> SetTrackRating(Guid trackId, User roadieUser, short rating); Task<OperationResult<short>> SetTrackRating(Guid trackId, User roadieUser, short rating);
} }
} }

View file

@ -220,12 +220,12 @@ namespace Roadie.Api.Services
} }
protected async Task<OperationResult<bool>> SetArtistRating(Guid artistId, ApplicationUser user, short rating) protected async Task<OperationResult<short>> SetArtistRating(Guid artistId, ApplicationUser user, short rating)
{ {
var artist = this.GetArtist(artistId); var artist = this.GetArtist(artistId);
if (artist == null) if (artist == null)
{ {
return new OperationResult<bool>(true, $"Invalid Artist Id [{ artistId }]"); return new OperationResult<short>(true, $"Invalid Artist Id [{ artistId }]");
} }
var userArtist = user.ArtistRatings.FirstOrDefault(x => x.ArtistId == artist.Id); var userArtist = user.ArtistRatings.FirstOrDefault(x => x.ArtistId == artist.Id);
if (userArtist == null) if (userArtist == null)
@ -254,19 +254,21 @@ namespace Roadie.Api.Services
this.CacheManager.ClearRegion(user.CacheRegion); this.CacheManager.ClearRegion(user.CacheRegion);
this.CacheManager.ClearRegion(artist.CacheRegion); this.CacheManager.ClearRegion(artist.CacheRegion);
return new OperationResult<bool> artist = this.GetArtist(artistId);
return new OperationResult<short>
{ {
IsSuccess = true, IsSuccess = true,
Data = true Data = artist.Rating ?? 0
}; };
} }
protected async Task<OperationResult<bool>> SetReleaseRating(Guid releaseId, ApplicationUser user, short rating) protected async Task<OperationResult<short>> SetReleaseRating(Guid releaseId, ApplicationUser user, short rating)
{ {
var release = this.GetRelease(releaseId); var release = this.GetRelease(releaseId);
if (release == null) if (release == null)
{ {
return new OperationResult<bool>(true, $"Invalid Release Id [{ releaseId }]"); return new OperationResult<short>(true, $"Invalid Release Id [{ releaseId }]");
} }
var userRelease = user.ReleaseRatings.FirstOrDefault(x => x.ReleaseId == release.Id); var userRelease = user.ReleaseRatings.FirstOrDefault(x => x.ReleaseId == release.Id);
var now = DateTime.UtcNow; var now = DateTime.UtcNow;
@ -297,19 +299,21 @@ namespace Roadie.Api.Services
this.CacheManager.ClearRegion(release.CacheRegion); this.CacheManager.ClearRegion(release.CacheRegion);
this.CacheManager.ClearRegion(release.Artist.CacheRegion); this.CacheManager.ClearRegion(release.Artist.CacheRegion);
return new OperationResult<bool> release = this.GetRelease(releaseId);
return new OperationResult<short>
{ {
IsSuccess = true, IsSuccess = true,
Data = true Data = release.Rating ?? 0
}; };
} }
protected async Task<OperationResult<bool>> SetTrackRating(Guid trackId, ApplicationUser user, short rating) protected async Task<OperationResult<short>> SetTrackRating(Guid trackId, ApplicationUser user, short rating)
{ {
var track = this.GetTrack(trackId); var track = this.GetTrack(trackId);
if (track == null) if (track == null)
{ {
return new OperationResult<bool>(true, $"Invalid Track Id [{ trackId }]"); return new OperationResult<short>(true, $"Invalid Track Id [{ trackId }]");
} }
var userTrack = user.TrackRatings.FirstOrDefault(x => x.TrackId == track.Id); var userTrack = user.TrackRatings.FirstOrDefault(x => x.TrackId == track.Id);
if (userTrack == null) if (userTrack == null)
@ -340,10 +344,12 @@ namespace Roadie.Api.Services
this.CacheManager.ClearRegion(track.ReleaseMedia.Release.CacheRegion); this.CacheManager.ClearRegion(track.ReleaseMedia.Release.CacheRegion);
this.CacheManager.ClearRegion(track.ReleaseMedia.Release.Artist.CacheRegion); this.CacheManager.ClearRegion(track.ReleaseMedia.Release.Artist.CacheRegion);
return new OperationResult<bool> track = this.GetTrack(trackId);
return new OperationResult<short>
{ {
IsSuccess = true, IsSuccess = true,
Data = true Data = track.Rating
}; };
} }

View file

@ -153,32 +153,32 @@ namespace Roadie.Api.Services
}; };
} }
public async Task<OperationResult<bool>> SetArtistRating(Guid artistId, User roadieUser, short rating) public async Task<OperationResult<short>> SetArtistRating(Guid artistId, User roadieUser, short rating)
{ {
var user = this.GetUser(roadieUser.UserId); var user = this.GetUser(roadieUser.UserId);
if (user == null) if (user == null)
{ {
return new OperationResult<bool>(true, $"Invalid User [{ roadieUser }]"); return new OperationResult<short>(true, $"Invalid User [{ roadieUser }]");
} }
return await base.SetArtistRating(artistId, user, rating); return await base.SetArtistRating(artistId, user, rating);
} }
public async Task<OperationResult<bool>> SetReleaseRating(Guid releaseId, User roadieUser, short rating) public async Task<OperationResult<short>> SetReleaseRating(Guid releaseId, User roadieUser, short rating)
{ {
var user = this.GetUser(roadieUser.UserId); var user = this.GetUser(roadieUser.UserId);
if (user == null) if (user == null)
{ {
return new OperationResult<bool>(true, $"Invalid User [{ roadieUser }]"); return new OperationResult<short>(true, $"Invalid User [{ roadieUser }]");
} }
return await base.SetReleaseRating(releaseId, user, rating); return await base.SetReleaseRating(releaseId, user, rating);
} }
public async Task<OperationResult<bool>> SetTrackRating(Guid trackId, User roadieUser, short rating) public async Task<OperationResult<short>> SetTrackRating(Guid trackId, User roadieUser, short rating)
{ {
var user = this.GetUser(roadieUser.UserId); var user = this.GetUser(roadieUser.UserId);
if (user == null) if (user == null)
{ {
return new OperationResult<bool>(true, $"Invalid User [{ roadieUser }]"); return new OperationResult<short>(true, $"Invalid User [{ roadieUser }]");
} }
return await base.SetTrackRating(trackId, user, rating); return await base.SetTrackRating(trackId, user, rating);
} }