Я работаю над ботом, где мне нужно собрать некоторую информацию от пользователя, чтобы создать заказ вместе с приложением. Я использую поток форм для сбора информации и использую информацию для создания Билета / Заказа. Как я могу получить вложение от получателя и использовать его с другой инфо-информацией для обработки заказа.
Ниже приведен код формы, с которой я сейчас работаю
[Serializable]
public class SupportTicketForm
{
[Prompt("Please choose # category... {||}", ChoiceStyle = ChoiceStyleOptions.Buttons)]
public string Category;
[Prompt("Please choose # sub category... {||}", ChoiceStyle = ChoiceStyleOptions.Buttons)]
public string Subcategory;
[Prompt("We need some more details to create the request, provide me your **Contact Number**...")]
//[Pattern(Validations.Phone)]
[Required(ErrorMessage = "Contact Number is required")]
public int ContactNumber;
[Prompt("Please provide **Details** for the technician to diagnose probolem ...")]
public string Description;
[Prompt("Please provide **Justification**...")]
public string Justification;
//[Optional]
//[AttachmentContentTypeValidator(ContentType = "png")]
//public AwaitableAttachment AttachImage;
public static IForm<SupportTicketForm> BuildForm()
{
List<Category> categories = CategoryDataService.GetCategories() ?? new List<Category>();
return new FormBuilder<SupportTicketForm>()
.Field(new FieldReflector<SupportTicketForm>(nameof(Category))
.SetType(null)
.SetDefine(async (state, field) =>
{
try
{
categories.ForEach(x =>
{
field.AddDescription(x.Name, x.Name).AddTerms(x.Name, x.Name);
});
}
catch (Exception exception)
{
}
return true;
}))
.Field(new FieldReflector<SupportTicketForm>(nameof(Subcategory))
.SetType(null)
.SetDefine(async (state, field) =>
{
try
{
if (!string.IsNullOrEmpty(state.Category))
{
categories.FirstOrDefault(x => x.Name.Equals(state.Category)).Subcategories.ToList().ForEach(x =>
{
field.AddDescription(x, x).AddTerms(x, x);
});
}
}
catch (Exception exception)
{
}
return true;
}))
.Field(nameof(ContactNumber))
.Field(nameof(Description))
.Field(nameof(Justification))
// .Field(nameof(AttachImage))
.Confirm(async (state) =>
{
return new PromptAttribute("**Please review your selection, I'll create a ticket for you..!!**" +
" \r\n\r\n Category : {Category}," +
" \r\n\r\n SubCategory : {Subcategory}," +
" \r\n\r\n Contact Number : {ContactNumber}," +
" \r\n\r\n Description : {Description}, " +
" \r\n\r\n Justification : {Justification}." +
" \r\n\r\n Do you want to continue? {||}");
})
.Build();
}
}
Как мне получить вложение вместе с ним .?