mirror of
https://github.com/SoDOff-Project/sodoff.git
synced 2025-10-11 16:28:50 -07:00
More fixing of PR things.
This commit is contained in:
parent
01ef3b4afc
commit
6e4d29b7b3
@ -114,40 +114,35 @@ public class RatingController : Controller
|
|||||||
private RatingInfo SetRating(Viking viking, int category, int? eID, string? uID, int value) {
|
private RatingInfo SetRating(Viking viking, int category, int? eID, string? uID, int value) {
|
||||||
RatingRank? rank;
|
RatingRank? rank;
|
||||||
Rating? rating = viking.Ratings.FirstOrDefault(
|
Rating? rating = viking.Ratings.FirstOrDefault(
|
||||||
r => category == r.CategoryID && r.RatedEntityID == eID && r.RatedUserID == uID
|
r => category == r.Rank.CategoryID && r.Rank.RatedEntityID == eID && r.Rank.RatedUserID == uID
|
||||||
);
|
);
|
||||||
bool newRating = rating == null;
|
if (rating == null) {
|
||||||
if (newRating) {
|
rank = ctx.RatingRanks.FirstOrDefault(rr => rr.CategoryID == category && rr.RatedEntityID == eID && rr.RatedUserID == uID);
|
||||||
|
if (rank == null) {
|
||||||
|
rank = new RatingRank {
|
||||||
|
CategoryID = category,
|
||||||
|
RatedEntityID = eID,
|
||||||
|
RatedUserID = uID,
|
||||||
|
Rank = 0,
|
||||||
|
Ratings = new List<Rating>()
|
||||||
|
};
|
||||||
|
ctx.RatingRanks.Add(rank);
|
||||||
|
}
|
||||||
rating = new Rating {
|
rating = new Rating {
|
||||||
VikingId = viking.Id,
|
VikingId = viking.Id,
|
||||||
CategoryID = category,
|
Rank = rank
|
||||||
RatedEntityID = eID,
|
|
||||||
RatedUserID = uID
|
|
||||||
};
|
};
|
||||||
ctx.Ratings.Add(rating);
|
ctx.Ratings.Add(rating);
|
||||||
rank = ctx.RatingRanks.FirstOrDefault(rr => rr.CategoryID == category && rr.RatedEntityID == eID && rr.RatedUserID == uID);
|
|
||||||
} else {
|
} else {
|
||||||
rank = rating.Rank;
|
rank = rating.Rank;
|
||||||
}
|
}
|
||||||
if (rank == null) {
|
|
||||||
rank = new RatingRank {
|
|
||||||
CategoryID = category,
|
|
||||||
RatedEntityID = eID,
|
|
||||||
RatedUserID = uID,
|
|
||||||
Rank = 0
|
|
||||||
};
|
|
||||||
ctx.RatingRanks.Add(rank);
|
|
||||||
}
|
|
||||||
if (newRating) rating.Rank = rank;
|
|
||||||
rating.Value = value;
|
rating.Value = value;
|
||||||
if (rank.Ratings != null) {
|
rank.RatingAverage = 0;
|
||||||
rank.RatingAverage = 0;
|
foreach (Rating r in rank.Ratings) {
|
||||||
foreach (Rating r in rank.Ratings) {
|
rank.RatingAverage += (float)((decimal)r.Value / (decimal)rank.Ratings.Count);
|
||||||
rank.RatingAverage += (float)((decimal)r.Value / (decimal)rank.Ratings.Count);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
rank.RatingAverage = value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eID != -1 || uID != null) {
|
if (eID != -1 || uID != null) {
|
||||||
RatingRank[] ranks = ctx.RatingRanks
|
RatingRank[] ranks = ctx.RatingRanks
|
||||||
.Where(rr => rr != rank && rr.CategoryID == category) // Only rank by category.
|
.Where(rr => rr != rank && rr.CategoryID == category) // Only rank by category.
|
||||||
@ -197,14 +192,15 @@ public class RatingController : Controller
|
|||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Produces("application/xml")]
|
[Produces("application/xml")]
|
||||||
[Route("RatingWebService.asmx/GetRatingByRatedEntity")]
|
[Route("RatingWebService.asmx/GetRatingByRatedEntity")]
|
||||||
public RatingInfo[] GetRatingByRatedEntity([FromForm] int categoryID, [FromForm] int ratedEntityID) {
|
[VikingSession]
|
||||||
|
public RatingInfo[] GetRatingByRatedEntity(Viking viking, [FromForm] int categoryID, [FromForm] int ratedEntityID) {
|
||||||
return ctx.Ratings
|
return ctx.Ratings
|
||||||
.Where(r => r.CategoryID == categoryID && r.RatedEntityID == ratedEntityID && r.RatedUserID == null)
|
.Where(r => r.Viking == viking && r.Rank.CategoryID == categoryID && r.Rank.RatedEntityID == ratedEntityID && r.Rank.RatedUserID == null)
|
||||||
.Select(r => new RatingInfo {
|
.Select(r => new RatingInfo {
|
||||||
Id = r.Id,
|
Id = r.Id,
|
||||||
OwnerUid = r.Viking.Uid,
|
OwnerUid = r.Viking.Uid,
|
||||||
CategoryID = r.CategoryID,
|
CategoryID = r.Rank.CategoryID,
|
||||||
RatedEntityID = r.RatedEntityID,
|
RatedEntityID = r.Rank.RatedEntityID,
|
||||||
Value = r.Value,
|
Value = r.Value,
|
||||||
Date = r.Date
|
Date = r.Date
|
||||||
}
|
}
|
||||||
@ -251,9 +247,10 @@ public class RatingController : Controller
|
|||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Produces("application/xml")]
|
[Produces("application/xml")]
|
||||||
[Route("RatingWebService.asmx/GetRatingForRatedUser")]
|
[Route("RatingWebService.asmx/GetRatingForRatedUser")]
|
||||||
public IActionResult GetRatingForRatedUser([FromForm] int categoryID, [FromForm] string ratedUserID) {
|
[VikingSession]
|
||||||
|
public IActionResult GetRatingForRatedUser(Viking viking, [FromForm] int categoryID, [FromForm] string ratedUserID) {
|
||||||
Rating? rating = ctx.Ratings.FirstOrDefault(
|
Rating? rating = ctx.Ratings.FirstOrDefault(
|
||||||
r => categoryID == r.CategoryID && r.RatedEntityID == null && r.RatedUserID == ratedUserID
|
r => r.Viking == viking && categoryID == r.Rank.CategoryID && r.Rank.RatedEntityID == null && r.Rank.RatedUserID == ratedUserID
|
||||||
);
|
);
|
||||||
return Ok(rating?.Value ?? 0);
|
return Ok(rating?.Value ?? 0);
|
||||||
}
|
}
|
||||||
@ -261,9 +258,10 @@ public class RatingController : Controller
|
|||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Produces("application/xml")]
|
[Produces("application/xml")]
|
||||||
[Route("RatingWebService.asmx/GetRatingForRatedEntity")]
|
[Route("RatingWebService.asmx/GetRatingForRatedEntity")]
|
||||||
public IActionResult GetRatingForRatedEntity([FromForm] int categoryID, [FromForm] int ratedEntityID) {
|
[VikingSession]
|
||||||
|
public IActionResult GetRatingForRatedEntity(Viking viking, [FromForm] int categoryID, [FromForm] int ratedEntityID) {
|
||||||
Rating? rating = ctx.Ratings.FirstOrDefault(
|
Rating? rating = ctx.Ratings.FirstOrDefault(
|
||||||
r => categoryID == r.CategoryID && r.RatedEntityID == ratedEntityID && r.RatedUserID == null
|
r => r.Viking == viking && categoryID == r.Rank.CategoryID && r.Rank.RatedEntityID == ratedEntityID && r.Rank.RatedUserID == null
|
||||||
);
|
);
|
||||||
return Ok(rating?.Value ?? 0);
|
return Ok(rating?.Value ?? 0);
|
||||||
}
|
}
|
||||||
|
@ -10,17 +10,12 @@ public class Rating {
|
|||||||
|
|
||||||
public int RankId { get; set; }
|
public int RankId { get; set; }
|
||||||
|
|
||||||
public int CategoryID { get; set; }
|
|
||||||
|
|
||||||
public int? RatedEntityID { get; set; }
|
|
||||||
public string? RatedUserID { get; set; }
|
|
||||||
|
|
||||||
public int Value { get; set; }
|
public int Value { get; set; }
|
||||||
|
|
||||||
public DateTime Date { get; set; }
|
public DateTime Date { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public virtual Viking? Viking { get; set; }
|
public virtual Viking Viking { get; set; }
|
||||||
|
|
||||||
public virtual RatingRank? Rank { get; set; }
|
public virtual RatingRank Rank { get; set; }
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user