public async Task <IActionResult> EditData(string identifier) { var result = await GetRecipeTrigger(identifier); if (result.Error != null) { return(result.Error); } var btcPayServices = await _externalServiceManager.GetExternalServicesData(new ExternalServicesDataQuery() { Type = new[] { BtcPayServerService.BtcPayServerServiceType }, UserId = _userManager.GetUserId(User) }); var vm = new InvoiceStatusChangedTriggerViewModel() { ExternalServices = new SelectList(btcPayServices, nameof(ExternalServiceData.Id), nameof(ExternalServiceData.Name), result.Data.ExternalServiceId), }; SetValues(result.Data, vm); return(View(vm)); }
private void SetValues(InvoiceStatusChangedTriggerViewModel from, RecipeTrigger to) { to.ExternalServiceId = from.ExternalServiceId; to.RecipeId = from.RecipeId; var currentData = to.Get <InvoiceStatusChangedTriggerParameters>(); currentData.Status = from.Status; to.Set(currentData); }
private void SetValues(RecipeTrigger from, InvoiceStatusChangedTriggerViewModel to) { to.RecipeId = from.RecipeId; to.ExternalServiceId = from.ExternalServiceId; var fromData = from.Get <InvoiceStatusChangedTriggerParameters>(); to.Status = fromData.Status; to.Statuses = new SelectList(AllowedStatuses, "Value", "Text", fromData.Status); }
BuildModel( InvoiceStatusChangedTriggerViewModel viewModel, RecipeTrigger mainModel) { if (viewModel.Action != "EditData" || !ModelState.IsValid) { var btcPayServices = await _externalServiceManager.GetExternalServicesData( new ExternalServicesDataQuery() { Type = new[] { BtcPayServerService.BtcPayServerServiceType }, UserId = GetUserId() }); viewModel.ExternalServices = new SelectList(btcPayServices, nameof(ExternalServiceData.Id), nameof(ExternalServiceData.Name), viewModel.ExternalServiceId); if (viewModel.Action.StartsWith("add-condition", StringComparison.InvariantCultureIgnoreCase)) { viewModel.Conditions.Add(new InvoiceStatusChangeCondition() { Status = GetAvailableStatuses(viewModel.Conditions.Select(condition => condition.Status).ToArray()).FirstOrDefault()?.Value ?? Invoice.STATUS_NEW, ExceptionStatuses = new List <string>() { Invoice.EXSTATUS_FALSE } }); } if (viewModel.Action.StartsWith("remove-condition", StringComparison.InvariantCultureIgnoreCase)) { var index = int.Parse(viewModel.Action.Substring(viewModel.Action.IndexOf(":", StringComparison.InvariantCultureIgnoreCase) + 1)); viewModel.Conditions.RemoveAt(index); } return(null, viewModel); } mainModel.ExternalServiceId = viewModel.ExternalServiceId; mainModel.Set((InvoiceStatusChangedTriggerParameters)viewModel); return(mainModel, null); }
BuildModel( InvoiceStatusChangedTriggerViewModel viewModel, RecipeTrigger mainModel) { if (!ModelState.IsValid) { var btcPayServices = await _externalServiceManager.GetExternalServicesData( new ExternalServicesDataQuery() { Type = new[] { BtcPayServerService.BtcPayServerServiceType }, UserId = GetUserId() }); viewModel.Statuses = new SelectList(AllowedStatuses, "Value", "Text", viewModel.Status); viewModel.ExternalServices = new SelectList(btcPayServices, nameof(ExternalServiceData.Id), nameof(ExternalServiceData.Name), viewModel.ExternalServiceId); return(null, viewModel); } mainModel.ExternalServiceId = viewModel.ExternalServiceId; mainModel.Set((InvoiceStatusChangedTriggerParameters)viewModel); return(mainModel, null); }
public async Task <IActionResult> EditData(string identifier, InvoiceStatusChangedTriggerViewModel data) { var result = await GetRecipeTrigger(identifier); if (result.Error != null) { return(result.Error); } if (!ModelState.IsValid) { var btcPayServices = await _externalServiceManager.GetExternalServicesData( new ExternalServicesDataQuery() { Type = new[] { BtcPayServerService.BtcPayServerServiceType }, UserId = _userManager.GetUserId(User) }); data.Statuses = new SelectList(AllowedStatuses, "Value", "Text", data.Status); data.ExternalServices = new SelectList(btcPayServices, 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 = "Invoice Status Change trigger Updated" })); }