public async Task <IActionResult> EditData(string identifier) { var result = await GetRecipeTrigger(identifier); if (result.Error != null) { return(result.Error); } var pop3Services = await _externalServiceManager.GetExternalServicesData(new ExternalServicesDataQuery() { Type = new[] { Pop3Service.Pop3ExternalServiceType, ImapService.ImapExternalServiceType }, UserId = _userManager.GetUserId(User) }); var vm = new ReceivedEmailViewModel() { ExternalServices = new SelectList(pop3Services, nameof(ExternalServiceData.Id), nameof(ExternalServiceData.Name), result.Data.ExternalServiceId), }; SetValues(result.Data, vm); return(View(vm)); }
private void SetValues(RecipeTrigger from, ReceivedEmailViewModel to) { to.RecipeId = from.RecipeId; to.ExternalServiceId = from.ExternalServiceId; var fromData = from.Get <ReceivedEmailTriggerParameters>(); to.Body = fromData.Body; to.Subject = fromData.Subject; to.FromEmail = fromData.FromEmail; to.BodyComparer = fromData.BodyComparer; to.SubjectComparer = fromData.SubjectComparer; }
public async Task <IActionResult> EditData(string identifier, ReceivedEmailViewModel data) { var result = await GetRecipeTrigger(identifier); if (result.Error != null) { return(result.Error); } if (!string.IsNullOrEmpty(data.Body) && data.BodyComparer == ReceivedEmailTriggerParameters.FieldComparer.None) { ModelState.AddModelError(nameof(ReceivedEmailViewModel.BodyComparer), "Please choose a Body filter type"); } if (!string.IsNullOrEmpty(data.Subject) && data.SubjectComparer == ReceivedEmailTriggerParameters.FieldComparer.None) { ModelState.AddModelError(nameof(ReceivedEmailViewModel.SubjectComparer), "Please choose a Subject filter type"); } if (!ModelState.IsValid) { var pop3Services = await _externalServiceManager.GetExternalServicesData(new ExternalServicesDataQuery() { Type = new[] { Pop3Service.Pop3ExternalServiceType, ImapService.ImapExternalServiceType }, UserId = _userManager.GetUserId(User) }); data.ExternalServices = new SelectList(pop3Services, nameof(ExternalServiceData.Id), nameof(ExternalServiceData.Name), data.ExternalServiceId); return(View(data)); } var recipeTrigger = result.Data; SetValues(data, recipeTrigger); await _recipeManager.AddOrUpdateRecipeTrigger(recipeTrigger); return(RedirectToAction("EditRecipe", "Recipes", new { id = recipeTrigger.RecipeId, statusMessage = "Received Email trigger Updated" })); }
protected override async Task <(RecipeTrigger ToSave, ReceivedEmailViewModel showViewModel)> BuildModel( ReceivedEmailViewModel viewModel, RecipeTrigger mainModel) { if (!string.IsNullOrEmpty(viewModel.Body) && viewModel.BodyComparer == ReceivedEmailTriggerParameters.FieldComparer.None) { ModelState.AddModelError(nameof(ReceivedEmailViewModel.BodyComparer), "Please choose a Body filter type"); } if (!string.IsNullOrEmpty(viewModel.Subject) && viewModel.SubjectComparer == ReceivedEmailTriggerParameters.FieldComparer.None) { ModelState.AddModelError(nameof(ReceivedEmailViewModel.SubjectComparer), "Please choose a Subject filter type"); } if (!ModelState.IsValid) { var pop3Services = await _externalServiceManager.GetExternalServicesData(new ExternalServicesDataQuery() { Type = new[] { Pop3Service.Pop3ExternalServiceType, ImapService.ImapExternalServiceType }, UserId = GetUserId() }); viewModel.ExternalServices = new SelectList(pop3Services, nameof(ExternalServiceData.Id), nameof(ExternalServiceData.Name), viewModel.ExternalServiceId); return(null, viewModel); } var recipeTrigger = mainModel; recipeTrigger.ExternalServiceId = viewModel.ExternalServiceId; recipeTrigger.Set((ReceivedEmailTriggerParameters)viewModel); return(recipeTrigger, null); }
private void SetValues(ReceivedEmailViewModel from, RecipeTrigger to) { to.ExternalServiceId = from.ExternalServiceId; to.RecipeId = from.RecipeId; to.Set((ReceivedEmailTriggerParameters)from); }