public UserMutation(IUserRepository repository, UserMessagingService messagingService) { Field <UserType>( "addUser", arguments: new QueryArguments(new QueryArgument <NonNullGraphType <UserRegistrationType> >() { Name = "user" }), resolve: context => { var user = context.GetArgument <UserRegistrationInfo>("user"); var isUserAdded = repository.AddUser(user); if (isUserAdded) { messagingService.AddUserAddedMessage(user); return(repository.GetUser(user.EmailID)); } else { context.Errors.Add(new GraphQL.ExecutionError("User cannot be added.")); return(null); } } ); }
/// <summary> /// /// </summary> public MainWindowViewModel() { // In use-case we'd take some kind of dependency injection but this would take to much time // and its not a part of the .NET Framework. _fileReadOpenService = new IOReadService(); _fileWriteService = new IOWriteService(); _messagingService = new UserMessagingService(); }
public UserSubscription(UserMessagingService messagingService) { Name = "Subscription"; AddField(new EventStreamFieldType() { Name = "userAdded", Type = typeof(UserAddedMessage), Resolver = new FuncFieldResolver <UserAddedMessage>(c => c.Source as UserAddedMessage), Subscriber = new EventStreamResolver <UserAddedMessage>(c => messagingService.GetMessages()) }); }
protected override HandlerResult GetResult(IHostServer server, WebContext context, string callbackEndPoint, CancellationToken cancel) { var p = RequestParameters.Create(context); var login = p.Get("login"); var email = p.Get("email"); if (string.IsNullOrWhiteSpace(login)) { return(GetError("no login", login, email)); } if (string.IsNullOrWhiteSpace(email)) { return(GetError("no email", login, email)); } var user = Users.GetUser(login); if (null == user) { return(GetError("not existed user", login, email)); } if (!CheckState.IsLogable(user)) { return(GetError("not for logon user", login, email)); } var state = CheckState.GetActivityState(user); if (state != UserActivityState.Ok) { return(GetError("invalid state " + state.ToStr(), login, email)); } if (user.Email != email) { return(GetError("invalid email", login, email)); } PasswordManager.MakeRequest(user, 10, email); Users.Store(user); var message = UserMessagingService.SendPasswordReset(user); bool sent = false; string senderror = ""; //try force try { if (null != Sender) { var savedmessage = Queue.GetMessage(message.Id); if (!savedmessage.WasSent) { Sender.Send(savedmessage); Queue.MarkSent(savedmessage.Id); } sent = true; } else { throw new Exception("no sender found"); } } catch (Exception e) { senderror = e.Message; } var result = new { messageid = message.Id, minutes = 10, sent, senderror }; return(new HandlerResult { Result = result, Data = new{ resetpwdreq = true, login, email, data = result } }); }