I am trying to create a custom workflow type but it is not showing on the dropdown list within the contour form. I have one custom workflow type that is working but not this second one. I have tried using the first one and changing the guid name and description but that doesn't show up either.
Code is shown below any help suggestions welcome
namespace Wyre.Umbraco.Models{
public class MissedBinEmailWorkflow : WorkflowType
{
public MissedBinEmailWorkflow()
{
this.Id = new Guid("2grhtr45-9154-6dau-ed54-gh21aed6g7h3");
this.Name = "A Missed Bin Email";
this.Description = "Send Email to Cutomer ";
}
public override WorkflowExecutionStatus Execute(Record record, RecordEventArgs e)
{
foreach (var field in record.RecordFields.Values)
{
var fieldItem = field.Values;
var fieldName = field.Field.Caption;
if (fieldName == "Is there a yellow or red tag on your bin")
{
List<object> fieldValue = fieldItem;
foreach (string fv in fieldValue)
if (fv == "Yes")
{
HttpContext.Current.Response.Redirect("https://www.google.com");
}
}
}
return WorkflowExecutionStatus.Completed;
}
public override List<Exception> ValidateSettings()
{
return new List<Exception>();
}
}}
I ran this on a fresh Umbraco installation and immediately ran into the following error:
Unable to load form: The type initializer for 'Nested' threw an exception.
So, I played around and looks like there's something wrong with your GUID. I swapped this out for a newly generated GUID and it seems to work just fine (error is no longer displaying, but I haven't tested the whole form workflow, I'll leave that to you).
Here's a tweaked version of your code:
using System;
using System.Collections.Generic;
using System.Web;
using Umbraco.Forms.Core;
using Umbraco.Forms.Core.Enums;
namespace UmbracoSandbox.WorkflowTypes
{
public class MissedBinEmailWorkflow : WorkflowType
{
public MissedBinEmailWorkflow()
{
Id = new Guid("7793f98d-266f-4905-b2f2-9d27438da763");
Name = "A Missed Bin Email";
Description = "Send Email to Cutomer ";
}
public override WorkflowExecutionStatus Execute(Record record, RecordEventArgs e)
{
foreach (var field in record.RecordFields.Values)
{
List<object> fieldItem = field.Values;
string fieldName = field.Field.Caption;
if (fieldName == "Is there a yellow or red tag on your bin")
{
List<object> fieldValue = fieldItem;
foreach (string fv in fieldValue)
{
if (fv == "Yes")
{
HttpContext.Current.Response.Redirect("https://www.google.com");
}
}
}
}
return WorkflowExecutionStatus.Completed;
}
public override List<Exception> ValidateSettings()
{
return new List<Exception>();
}
}
}
Great news that Ben's answer got it working for you. I would be great if you could flag that as the solution for other :-)
Just for some future reference, looking at your original post your guid is invalid because of the characters it contains. A Guid must be in a particular format and can only contain numbers and letters upto the letter F as each character is a hex character.
Custom Workflows not showing up in dropdown list
I am trying to create a custom workflow type but it is not showing on the dropdown list within the contour form. I have one custom workflow type that is working but not this second one. I have tried using the first one and changing the guid name and description but that doesn't show up either.
Code is shown below any help suggestions welcome
Thanks Bal
Hi Bal,
I ran this on a fresh Umbraco installation and immediately ran into the following error:
So, I played around and looks like there's something wrong with your GUID. I swapped this out for a newly generated GUID and it seems to work just fine (error is no longer displaying, but I haven't tested the whole form workflow, I'll leave that to you).
Here's a tweaked version of your code:
Hope that helps!
Thanks Ben that's worked a treat
Hi Balram,
Great news that Ben's answer got it working for you. I would be great if you could flag that as the solution for other :-)
Just for some future reference, looking at your original post your guid is invalid because of the characters it contains. A Guid must be in a particular format and can only contain numbers and letters upto the letter F as each character is a hex character.
For more information this link might be quite helpful :-) https://betterexplained.com/articles/the-quick-guide-to-guids/
Thanks,
Nik
is working on a reply...