public override object MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var organizationId = inputs.Get <int>("organizationId"); var processId = inputs.Get <int?>("processId"); var name = inputs.Get <string>("name"); var organization = _organizationService.GetOrganization(organizationId); var pipeline = new OnboardingPipeline { Name = name, }; if (processId.HasValue) { var process = _processService.GetProcess(processId.Value); pipeline.OnboardingProcess = process; } organization.OnboardingPipelines.Add(pipeline); _organizationService.Update(organization); return(new { organization, }); }
public override async Task <object> MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var username = inputs.Get <string>("username"); var rememberMe = inputs.Get <bool>("rememberMe"); var password = inputs.Get <string>("password"); var result = await _signInManager.PasswordSignInAsync(username, password, rememberMe, false); if (result.Succeeded) { _logger.LogInformation(1, "User logged in."); var user = new ApplicationUser { UserName = username, }; return(new { user }); } _validationProvider.AddError("_error", "Invalid login attempt."); return(null); }
public override async Task <object> MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var recaptcha = inputs.Get <string>("recaptcha"); var email = inputs.Get <string>("email"); var listId = Env.GetString("MAILCHIMP_LISTID"); var parameters = new Dictionary <string, string> { { "secret", Env.GetString("RECAPTCHA_SECRET") }, { "response", recaptcha } }; var encodedContent = new FormUrlEncodedContent(parameters); using (var client = new HttpClient()) { var response = await client.PostAsync("https://www.google.com/recaptcha/api/siteverify", encodedContent); var recpatcha = await response.Content.ReadAsAsync <Recaptcha>(); response.EnsureSuccessStatusCode(); if (!recpatcha.Success) { return(null); } } var member = new Member { EmailAddress = email, StatusIfNew = Status.Subscribed }; await _mailChimpManager.Members.AddOrUpdateAsync(listId, member); return(null); }
public override async Task <object> MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var recaptcha = inputs.Get <string>("recaptcha"); var email = inputs.Get <string>("email"); var listId = _configuration["mailChimp:reggestId"]; var parameters = new Dictionary <string, string> { { "secret", _configuration["recaptcha:secret"] }, { "response", recaptcha } }; var encodedContent = new FormUrlEncodedContent(parameters); using (var client = new HttpClient()) { var response = await client.PostAsync(_configuration["recaptcha:verifyUrl"], encodedContent); var recpatcha = await response.Content.ReadAsAsync <Recaptcha>(); response.EnsureSuccessStatusCode(); if (!recpatcha.Success) { return(null); } } var member = new Member { EmailAddress = email, StatusIfNew = Status.Subscribed }; await _mailChimpManager.Members.AddOrUpdateAsync(listId, member); return(null); }
public override object MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> c) { var body = inputs.Get <string>("body"); var originalCommentId = inputs.Get <string>("originalCommentId"); var audioId = inputs.Get <int>("audioId"); var context = c.UserContext.As <Task <Context> >(); context.Wait(); var audio = _audioService.GetAudio(audioId); var comment = new Models.Comment { Id = Guid.NewGuid().ToString(), User = context.Result.CurrentUser, Body = body, Audio = audio, OriginalComment = originalCommentId != null?_commentService.AllComments.GetValueOrDefault(originalCommentId, null) : null, }; _commentService.Add(comment); return(new { comment }); }
public override async Task <object> MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var username = inputs.Get <string>("username"); var email = inputs.Get <string>("email"); var password = inputs.Get <string>("password"); var user = new ApplicationUser { UserName = username, Email = email }; var result = await _userManager.CreateAsync(user, password); if (result.Succeeded) { var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var emailConfirmationToken = System.Web.HttpUtility.UrlEncode(code); _logger.LogInformation(3, "User created a new account with password."); return(new { user, emailConfirmationToken }); } foreach (var identityError in result.Errors) { _validationProvider.AddError("_error", identityError.Description); } return(null); }
public override async Task <object> MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var email = inputs.Get <string>("email"); var subject = inputs.Get <string>("subject"); var message = inputs.Get <string>("message"); await _emailSender.SendEmailAsync(email, subject, message); return(null); }
public override object MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var id = inputs.Get <int>("id"); var liked = inputs.Get <bool>("liked"); var user = context.UserContext.As <Context>().CurrentUser; var rating = _audioService.Rate(id, user.Id, liked); return(new { rating }); }
public override object MutateAndGetPayload( MutationInputs inputs, ResolveFieldContext <object> context ) { return(new { Viewer = Database.GetViewer(), Todo = Database.RenameTodo( Node.FromGlobalId(inputs.Get <string>("id")).Id, inputs.Get <string>("text") ), }); }
public override async Task <object> MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> c) { var id = inputs.Get <int>("id"); var liked = inputs.Get <bool>("liked"); var context = await c.UserContext.As <Task <Context> >(); var rating = _audioService.Rate(id, context.CurrentUser.Id, liked); return(new { rating }); }
public override object MutateAndGetPayload( MutationInputs inputs, ResolveFieldContext <object> context ) { return(new { Viewer = Database.GetViewer(), Todo = Database.ChangeTodoStatus( Node.FromGlobalId(inputs.Get <string>("id")).Id, inputs.Get <bool>("complete") ), }); }
public override object MutateAndGetPayload( MutationInputs inputs, ResolveFieldContext <object> context ) { Database.RemoveTodo( Node.FromGlobalId(inputs.Get <string>("id")).Id ); return(new { Viewer = Database.GetViewer(), deletedTodoId = inputs.Get <string>("id"), }); }
public override object MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var id = inputs.Get <int>("id"); var name = inputs.Get <string>("name"); var pipeline = _pipelineService.GetPipeline(id); pipeline.Name = name; _pipelineService.Update(pipeline); return(new { organization = pipeline.Organization, }); }
public override object MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var id = inputs.Get <int>("id"); var name = inputs.Get <string>("name"); var step = _stepService.GetStep(id); step.Name = name; _stepService.Update(step); return(new { pipeline = step.OnboardingPipeline, }); }
public override async Task <object> MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var memberId = inputs.Get <int>("memberId"); var processId = inputs.Get <int>("processId"); var member = _memberService.GetMember(memberId); var userContext = context.UserContext.As <Context>(); var newPipelines = new List <OnboardingPipeline>(); var token = userContext.HttpContext.Session.GetString("OAuthToken"); if (token == null) { throw new NullReferenceException("OAuthToken is null"); } _client.Credentials = new Credentials(token); var process = _processService.GetProcess(processId); foreach (var pipeline in process.OnboardingPipelines) { var newOnboardingSteps = new List <OnboardingStep>(); foreach (var step in pipeline.OnboardingSteps) { var newStep = await GetOnboardingStep(process.Organization, member, step); newOnboardingSteps.Add(newStep); } newPipelines.Add(new OnboardingPipeline { Name = pipeline.Name, OnboardingSteps = newOnboardingSteps, }); } member.OnboardingProcesses.Add(new OnboardingProcess { Name = process.Name, OnboardingPipelines = newPipelines, Organization = process.Organization }); _memberService.Update(member); return(new { member, }); }
public override async Task <object> MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var organizationId = inputs.Get <int>("organizationId"); var name = inputs.Get <string>("name"); var pipelineIds = inputs.Get("pipelineIds", new object[0]).Cast <int>().ToList(); var organization = _organizationService.GetOrganization(organizationId); var pipelines = _pipelineService.GetPipelines().Where(x => pipelineIds.Any(z => z == x.Id)).ToList(); var userContext = context.UserContext.As <Context>(); var newPipelines = new List <OnboardingPipeline>(); var token = userContext.HttpContext.Session.GetString("OAuthToken"); if (token == null) { throw new NullReferenceException("OAuthToken is null"); } _client.Credentials = new Credentials(token); foreach (var pipeline in pipelines) { var newOnboardingSteps = new List <OnboardingStep>(); foreach (var step in pipeline.OnboardingSteps) { var newStep = await GetOnboardingStep(organization, step); newOnboardingSteps.Add(newStep); } newPipelines.Add(new OnboardingPipeline { Name = pipeline.Name, OnboardingSteps = newOnboardingSteps, }); } var process = new OnboardingProcess { Name = name, Organization = organization, OnboardingPipelines = newPipelines }; _processService.Add(process); return(new { organization }); }
public override async Task <object> MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var userId = inputs.Get <string>("userId"); var token = inputs.Get <string>("token"); var password = inputs.Get <string>("password"); var user = await _userManager.FindByIdAsync(userId); var result = await _userManager.ResetPasswordAsync(user, token, password); foreach (var identityError in result.Errors) { _validationProvider.AddError("_error", identityError.Description); } return(null); }
public override object MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var id = inputs.Get <int>("id"); var answer = _answerService.GetAnswer(id); return(new { answer }); }
public override object MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var audioId = inputs.Get <int?>("audioId"); var reason = inputs.Get <string>("reason"); var additionalDetails = inputs.Get <string>("additionalDetails"); var flag = new Models.Flag { AudioId = audioId, Reason = reason, AdditionalDetails = additionalDetails, }; _flagService.Add(flag); return(new { flag }); }
public override async Task <object> MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var pipelineId = inputs.Get <int>("pipelineId"); var memberId = inputs.Get <int?>("memberId"); var organizationName = inputs.Get <string>("organizationName"); var name = inputs.Get <string>("name"); var pipeline = _pipelineService.GetPipeline(pipelineId); var userContext = context.UserContext.As <Context>(); var token = userContext.HttpContext.Session.GetString("OAuthToken"); if (token == null) { throw new NullReferenceException("OAuthToken is null"); } _client.Credentials = new Credentials(token); var newIssue = new NewIssue(name); if (memberId.HasValue) { var member = _memberService.GetMember(memberId.Value); newIssue.Assignees.Add(member.Name); } var issue = await _client.Issue.Create(organizationName, Constants.RepositoryName, newIssue); pipeline.OnboardingSteps.Add(new OnboardingStep { Id = issue.Id, Name = name, IssueNumber = issue.Number }); _pipelineService.Update(pipeline); return(new { pipeline }); }
public override object MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var id = inputs.Get <int>("id"); var pipeline = _pipelineService.GetPipeline(id); var organization = pipeline.Organization; _pipelineService.Remove(pipeline); return(new { organization }); }
public override object MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var processId = inputs.Get <int>("processId"); var process = _processService.GetProcess(processId); _processService.Update(process); return(new { member = process.Member }); }
public override object MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var id = inputs.Get <int>("id"); var step = _stepService.GetStep(id); var pipeline = step.OnboardingPipeline; _stepService.Remove(step); return(new { pipeline }); }
public override object MutateAndGetPayload( MutationInputs inputs, ResolveFieldContext <object> context ) { return(new { Viewer = Database.GetViewer(), ChangedTodos = Database.MarkAllTodos( inputs.Get <bool>("complete") ), }); }
public override object MutateAndGetPayload( MutationInputs inputs, ResolveFieldContext <object> context ) { return(new { Viewer = Database.GetViewer(), DeletedTodoIds = Database .RemoveCompletedTodos(inputs.Get <bool>("complete")) .Select(id => Node.ToGlobalId("Todo", id)), }); }
public override object MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var body = inputs.Get <string>("body"); var originalCommentId = inputs.Get <int?>("originalCommentId"); var audioId = inputs.Get <int>("audioId"); var user = context.UserContext.As <Context>().CurrentUser; var comment = new Models.Comment { UserId = user.Id, Body = body, AudioId = audioId, OriginalCommentId = originalCommentId }; _commentService.Add(comment); return(new { comment }); }
public override object MutateAndGetPayload( MutationInputs inputs, ResolveFieldContext <object> context ) { var todo = Database.AddTodo(inputs.Get <string>("text")); return(new { TodoEdge = new Edge <Todo> { Node = todo, Cursor = ConnectionUtils.CursorForObjectInConnection(Database.GetTodos(), todo) }, Viewer = Database.GetViewer(), }); }
public override object MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var cart = _cartService.LoadOrCreateCart(_cartService.DefaultCartName); AddToCartResult result = _cartService.AddToCart(cart, inputs.Get <string>("code"), inputs.Get <decimal>("quantity", 1m)); if (!result.EntriesAddedToCart) { context.Errors.AddRange(result.ValidationMessages.Select(m => new ExecutionError(m))); return(null); } _orderRepository.Save(cart); _recommendationService.TrackCartAsync(_httpContextBase.Invoke()).Wait(); LargeCartViewModel largeCartViewModel = _cartViewModelFactory.CreateLargeCartViewModel(cart); return(new { Cart = largeCartViewModel }); }
public override async Task <object> MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var userName = inputs.Get <string>("userName"); // Get the information about the user from the external login provider var info = await _signInManager.GetExternalLoginInfoAsync(); if (info == null) { _validationProvider.AddError("_error", "Unsuccessful login with service."); return(null); } var email = info.Principal.FindFirstValue(ClaimTypes.Email); var user = new ApplicationUser { UserName = userName, Email = email }; var result = await _userManager.CreateAsync(user); if (result.Succeeded) { result = await _userManager.AddLoginAsync(user, info); if (result.Succeeded) { await _signInManager.SignInAsync(user, true); _logger.LogInformation(6, $"User created an account using {info.LoginProvider} provider."); } } foreach (var identityError in result.Errors) { _validationProvider.AddError("_error", identityError.Description); } return(null); }
public override async Task <object> MutateAndGetPayload(MutationInputs inputs, ResolveFieldContext <object> context) { var email = inputs.Get <string>("email"); var user = await _userManager.FindByEmailAsync(email); if (user == null) { _validationProvider.AddError("_error", "We couldn't find that email address"); return(null); } var code = await _userManager.GeneratePasswordResetTokenAsync(user); var passwordResetToken = System.Web.HttpUtility.UrlEncode(code); return(new { user, passwordResetToken }); }