|
|
|
@ -21,39 +21,23 @@ namespace Expedience.Api.Consumers
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var message = context.Message;
|
|
|
|
var message = context.Message;
|
|
|
|
|
|
|
|
|
|
|
|
using var scope = _serviceScopeFactory.CreateScope();
|
|
|
|
|
|
|
|
var dbContext = scope.ServiceProvider.GetRequiredService<ExpedienceContext>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (message == null || message.UserInfo == null || message.PlayerInfo == null ||
|
|
|
|
if (message == null || message.UserInfo == null || message.PlayerInfo == null ||
|
|
|
|
message.DutyInfo == null || message.ClientInfo == null || message.CompletionTimeInfo == null)
|
|
|
|
message.DutyInfo == null || message.ClientInfo == null || message.CompletionTimeInfo == null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// TODO: Log error
|
|
|
|
_logger.LogError("Required message fields were not populated on Message with Id {messageId}", context.MessageId);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var userHash = message.UserInfo.UserId;
|
|
|
|
var userHash = message.UserInfo.UserId;
|
|
|
|
var worldId = message.UserInfo.WorldId;
|
|
|
|
var worldId = message.UserInfo.WorldId;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using var scope = _serviceScopeFactory.CreateScope();
|
|
|
|
|
|
|
|
using var dbContext = scope.ServiceProvider.GetRequiredService<ExpedienceContext>();
|
|
|
|
var user = dbContext.Users.FirstOrDefault(x => x.UserHash == userHash && x.WorldId == worldId);
|
|
|
|
var user = dbContext.Users.FirstOrDefault(x => x.UserHash == userHash && x.WorldId == worldId);
|
|
|
|
if (user == null)
|
|
|
|
if (user == null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
string userName;
|
|
|
|
_logger.LogError("No user found for World {worldId} and Hash {userHash}", worldId, userHash);
|
|
|
|
do
|
|
|
|
return;
|
|
|
|
{
|
|
|
|
|
|
|
|
userName = UserNameGenerator.Generate();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
while (dbContext.Users.Any(x => x.UserName == userName && x.WorldId == worldId));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
user = new User
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
UserHash = userHash,
|
|
|
|
|
|
|
|
WorldId = worldId,
|
|
|
|
|
|
|
|
UserName = userName,
|
|
|
|
|
|
|
|
CreatedAt = DateTime.UtcNow,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dbContext.Users.Add(user);
|
|
|
|
|
|
|
|
dbContext.SaveChanges();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var completionResult = new DutyCompletionResult
|
|
|
|
var completionResult = new DutyCompletionResult
|
|
|
|
@ -101,7 +85,7 @@ namespace Expedience.Api.Consumers
|
|
|
|
|
|
|
|
|
|
|
|
await dbContext.SaveChangesAsync();
|
|
|
|
await dbContext.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
|
|
_logger.LogInformation("Consumed message {uploadId} from user {userId}", message.UploadId, userHash);
|
|
|
|
_logger.LogInformation("Consumed message {uploadId} from user {userHash}", message.UploadId, userHash);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|