фиксы

This commit is contained in:
Vitalick Kovalenko 2023-12-23 17:39:46 +03:00
parent f2d083c877
commit a1019db433
2 changed files with 56 additions and 27 deletions

View File

@ -37,15 +37,16 @@ public class UsersController : ControllerBase
Fio = user.Fio,
Specialities = user.Specialities,
TelegramBotUrl = user.TelegramBotUrl,
UserName = user.Username
};
await _userManager.CreateAsync(userWr);
return Ok(
new {
userWr.Id
}
);
var result = await _userManager.CreateAsync(userWr);
if(result.Succeeded)
return Ok(
new {
userWr.Id
}
);
return BadRequest(result.Errors);
}
// [HttpGet("google-auth")]
@ -205,12 +206,14 @@ public class ReviewsController : ControllerBase
[HttpGet]
public async Task<IActionResult> Get(string id)
{
var review = await _applicationContext.Reviews
.Include(c => c.User)
.FirstAsync(s => s.Id == id);
var review = await _applicationContext.Reviews.FirstAsync(s => s.Id == id);
var user = await _applicationContext.Users.FirstAsync(s => s.Id == review.UserId);
return Ok(review);
return Ok(new {
review,
user
});
}
@ -222,8 +225,12 @@ public class ReviewsController : ControllerBase
.Skip(offset)
.Take(limit);
// var userIds = reviews.Select(u => u.UserId).ToArray();
// var users = _applicationContext.Users.Where(u => userIds.Contains(u.Id));
return Ok(reviews);
return Ok(
reviews
);
}
}
@ -256,7 +263,7 @@ public class QuestionsController : ControllerBase
}
[HttpPut]
public async Task<IActionResult> Put([FromBody]Question question)
public async Task<IActionResult> Put([FromBody]PutQuestionDto question)
{
var fReview = await _applicationContext.Questions.FirstAsync(r => r.Id == question.Id);
@ -283,6 +290,7 @@ public class QuestionsController : ControllerBase
public IActionResult GetList(int offset, int limit)
{
var questions = _applicationContext.Questions
.Include(c => c.User)
.Skip(offset)
.Take(limit);
@ -339,11 +347,13 @@ public class ReactionsController : ControllerBase
public async Task<IActionResult> Get(string id)
{
var review = await _applicationContext.Reviews
.Include(c => c.User)
.FirstAsync(s => s.Id == id);
return Ok(review);
var user = await _applicationContext.Users.FirstAsync(s => s.Id == review.UserId);
return Ok(new {
review,
user
});
}
@ -351,12 +361,17 @@ public class ReactionsController : ControllerBase
public IActionResult GetList(int offset, int limit)
{
var reviews = _applicationContext.Reviews
.Include(c => c.User)
.Skip(offset)
.Take(limit);
var users = _applicationContext.Users.Where(u => reviews.Select(u => u.UserId).Contains(u.Id));
return Ok(reviews);
return Ok(
reviews.Select(s => new {
review = s,
user = users.First(u => u.Id == s.UserId)
})
);
}
}

View File

@ -195,6 +195,13 @@ public class PostQuestionDto
}
public class PutQuestionDto
{
public string Id { get; set; } = null!;
public string Text { get; set; } = null!;
}
public class Question
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@ -205,6 +212,8 @@ public class Question
public string MeetingId { get; set; } = null!;
public string UserId { get; set; } = null!;
public User User { get; set; } = null!;
}
@ -215,14 +224,14 @@ public class Review
public string MeetingId { get; set; } = null!;
public User User { get; set; } = null!;
public string UserId { get; set; } = null!;
public string Text { get; set; } = null!;
public int Score { get; set; } = 0;
public User User { get; set; } = null!;
DateTime _date;
public DateTime Date { get => _date; set => _date = value.ToUniversalTime(); }
@ -280,13 +289,18 @@ public class ApplicationContext : IdentityDbContext<User>
builder.Entity<Meeting>().HasMany<Review>().WithOne().HasForeignKey(c => c.MeetingId);
builder.Entity<Meeting>().HasMany<Question>().WithOne().HasForeignKey(c => c.MeetingId);
builder.Entity<User>().HasMany<Review>().WithOne(r => r.User).HasForeignKey(c => c.UserId);
builder.Entity<User>().HasMany<Reaction>().WithOne().HasForeignKey(c => c.UserId);
builder.Entity<Question>().HasOne<Meeting>().WithMany().HasForeignKey(c => c.UserId);
builder.Entity<Question>().HasMany<Reaction>().WithOne().HasForeignKey(c => c.QuestionId);
builder.Entity<Reaction>().HasOne<User>().WithMany().HasForeignKey(c => c.UserId);
builder.Entity<Review>().HasOne(c => c.User).WithMany().HasForeignKey(c => c.UserId);
builder.Entity<Question>().HasOne<Meeting>().WithMany().HasForeignKey(c => c.MeetingId);
builder.Entity<Question>().HasOne(c => c.User).WithMany().HasForeignKey(c => c.UserId);
builder.Entity<Reaction>().HasOne<Question>().WithMany().HasForeignKey(c => c.QuestionId);
builder.Entity<Meeting>().HasMany<UserWriteToMeting>().WithOne().HasForeignKey(c => c.MeetingId);
builder.Entity<User>().HasMany<UserWriteToMeting>().WithOne().HasForeignKey(c => c.UserId);
builder.Entity<UserWriteToMeting>().HasOne<User>().WithMany().HasForeignKey(c => c.UserId);
}
}