示例#1
0
        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));
            }
        }
示例#2
0
        private void PrepareCommand(IMassTransitCommand command)
        {
            switch (command.Command.ToLower())
            {
            case "createaccount":
            {
                var createAccount = new CreateAccount(command.Command, command.Commander, command.CommandId, command.Payload);
                Self.Tell(createAccount);
            }
            break;

            case "addhostelclaim":
            {
                var createAccount = new AddHostelClaim(command.Command, command.Commander, command.CommandId, command.Payload);
                Self.Tell(createAccount);
            }
            break;
            }
        }