public Command BuildCreateCommand() {
var command = new Command("create");
command.Description = "Create new navigation property to extensions for users";
// Create options for all the parameters
var userIdOption = new Option<string>("--user-id", description: "key: id of user") {
};
userIdOption.IsRequired = true;
command.AddOption(userIdOption);
var contactFolderIdOption = new Option<string>("--contact-folder-id", description: "key: id of contactFolder") {
};
contactFolderIdOption.IsRequired = true;
command.AddOption(contactFolderIdOption);
var contactFolderId1Option = new Option<string>("--contact-folder-id1", description: "key: id of contactFolder") {
};
contactFolderId1Option.IsRequired = true;
command.AddOption(contactFolderId1Option);
var contactIdOption = new Option<string>("--contact-id", description: "key: id of contact") {
};
contactIdOption.IsRequired = true;
command.AddOption(contactIdOption);
var bodyOption = new Option<string>("--body") {
};
bodyOption.IsRequired = true;
command.AddOption(bodyOption);
var outputOption = new Option<FormatterType>("--output", () => FormatterType.JSON){
IsRequired = true
};
command.AddOption(outputOption);
var queryOption = new Option<string>("--query");
command.AddOption(queryOption);
var jsonNoIndentOption = new Option<bool>("--json-no-indent", r => {
if (bool.TryParse(r.Tokens.Select(t => t.Value).LastOrDefault(), out var value)) {
return value;
}
return true;
}, description: "Disable indentation for the JSON output formatter.");
command.AddOption(jsonNoIndentOption);
command.SetHandler(async (object[] parameters) => {
var userId = (string) parameters[0];
var contactFolderId = (string) parameters[1];
var contactFolderId1 = (string) parameters[2];
var contactId = (string) parameters[3];
var body = (string) parameters[4];
var output = (FormatterType) parameters[5];
var query = (string) parameters[6];
var jsonNoIndent = (bool) parameters[7];
var outputFilter = (IOutputFilter) parameters[8];
var outputFormatterFactory = (IOutputFormatterFactory) parameters[9];
var cancellationToken = (CancellationToken) parameters[10];
using var stream = new MemoryStream(Encoding.UTF8.GetBytes(body));
var parseNode = ParseNodeFactoryRegistry.DefaultInstance.GetRootParseNode("application/json", stream);
var model = parseNode.GetObjectValue<Extension>(Extension.CreateFromDiscriminatorValue);
var requestInfo = CreatePostRequestInformation(model, q => {
});
requestInfo.PathParameters.Add("user%2Did", userId);
requestInfo.PathParameters.Add("contactFolder%2Did", contactFolderId);
requestInfo.PathParameters.Add("contactFolder%2Did1", contactFolderId1);
requestInfo.PathParameters.Add("contact%2Did", contactId);
var errorMapping = new Dictionary<string, ParsableFactory<IParsable>> {
{"4XX", ODataError.CreateFromDiscriminatorValue},
{"5XX", ODataError.CreateFromDiscriminatorValue},
};
var response = await RequestAdapter.SendPrimitiveAsync<Stream>(requestInfo, errorMapping: errorMapping, cancellationToken: cancellationToken);
response = await outputFilter?.FilterOutputAsync(response, query, cancellationToken) ?? response;
var formatterOptions = output.GetOutputFormatterOptions(new FormatterOptionsModel(!jsonNoIndent));
var formatter = outputFormatterFactory.GetFormatter(output);
await formatter.WriteOutputAsync(response, formatterOptions, cancellationToken);
}, new CollectionBinding(userIdOption, contactFolderIdOption, contactFolderId1Option, contactIdOption, bodyOption, outputOption, queryOption, jsonNoIndentOption, new TypeBinding(typeof(IOutputFilter)), new TypeBinding(typeof(IOutputFormatterFactory)), new TypeBinding(typeof(CancellationToken))));
return command;
}
/// <summary>