protected override void NotifyUI(ICommand command, HandlerResult result) { var mEvent = new MassTransitEvent(command.Commander, command.CommandId, result); PustToUIQueue(mEvent, command.ReplyToQueue); base.NotifyUI(command, result); }
private async Task CreateAccount(CreateAccount command) { var payload = command.Payload; var response = new Dictionary <string, string>(); try { var user = new HostelUser { UserName = payload["Email"], Email = payload["Email"], PhoneNumber = payload["Phone"], Hostel = "Baafog" }; var created = await _userManager.CreateAsync(user, payload["Password"]); if (created.Succeeded) { var userClaims = new List <Claim>(); var userRole = payload["Role"]; userClaims.Add(new Claim(JwtClaimTypes.Role, userRole)); userClaims.AddRange(new Claim[] { new Claim("PreferredUserName", payload["Email"]), new Claim("Role", userRole) }); var claim = await _userManager.AddClaimsAsync(user, userClaims); if (!claim.Succeeded) { await _userManager.DeleteAsync(user); response["Created"] = "false"; response["Type"] = "AddClaimsAsync"; response["Errors"] = string.Join(", ", claim.Errors); response["Message"] = "Your account created was aborted"; } } else { response["Created"] = "false"; response["Type"] = "CreateAsync"; response["Errors"] = string.Join(", ", created.Errors); response["Message"] = "Your account was not created"; } } catch (Exception e) { response["Message"] = e.Message; } var @event = new MassTransitEvent("AccountCreated", command.Commander, command.CommandId, response); await SendToQueue(@event); await Self.GracefulStop(TimeSpan.FromSeconds(10)); }
private async Task AddHostelClaim(AddHostelClaim command) { using (var context = Context.CreateScope()) { var userManager = context.ServiceProvider.GetRequiredService <UserManager <HostelUser> >(); var payload = command.Payload; var response = new Dictionary <string, string>(); try { var user = await userManager.FindByEmailAsync(payload["Email"]); if (user != null) { var userClaims = new List <Claim>(); var userHostel = payload["Hostel"]; userClaims.Add(new Claim("Hostel", userHostel)); var claim = await userManager.AddClaimsAsync(user, userClaims); if (!claim.Succeeded) { response["Created"] = "false"; response["Errors"] = string.Join(", ", claim.Errors); response["Message"] = "Your account created was aborted"; } } else { response["Created"] = "false"; response["Errors"] = $"No user with '{payload["Email"]}' was found!"; response["Message"] = $"No user with '{payload["Email"]}' was found!"; } } catch (Exception e) { response["Success"] = "false"; response["Errors"] = e.Message; response["Message"] = e.Message; } var @event = new MassTransitEvent("AddedHostelClaim", command.Commander, command.CommandId, response); await SendToPortalQueue(@event); await Self.GracefulStop(TimeSpan.FromSeconds(10)); } }
private async Task CreateAccount(CreateAccount command) { using (var context = Context.CreateScope()) { var userManager = context.ServiceProvider.GetRequiredService <UserManager <HostelUser> >(); var payload = command.Payload; var response = new Dictionary <string, string>(); try { var user = new HostelUser { UserName = payload["Email"], Email = payload["Email"], PhoneNumber = payload["Phone"], EmailConfirmed = true, PhoneNumberConfirmed = true, TwoFactorEnabled = false }; var created = await userManager.CreateAsync(user, payload["Password"]); if (created.Succeeded) { var userClaims = new List <Claim>(); var userRole = payload["Role"]; userClaims.Add(new Claim("role", userRole)); userClaims.Add(new Claim("PreferredUserName", payload["Email"])); var claim = await userManager.AddClaimsAsync(user, userClaims); if (!claim.Succeeded) { await userManager.DeleteAsync(user); response["Success"] = "false"; response["Errors"] = string.Join(", ", claim.Errors); response["Message"] = "Your account created was aborted"; } else { response["Success"] = "true"; response["Errors"] = string.Join(", ", created.Errors); response["Message"] = "Your account created successfully!!"; } } else { response["Success"] = "false"; response["Errors"] = string.Join(", ", created.Errors); response["Message"] = "Your account was not created"; } } catch (Exception e) { response["Success"] = "false"; response["Errors"] = e.Message; response["Message"] = e.Message; } var @event = new MassTransitEvent("AccountCreated", command.Commander, command.CommandId, response); await SendToQueue(@event); await Self.GracefulStop(TimeSpan.FromSeconds(10)); } }