Advertisement
liuhongbo

Untitled

Jun 5th, 2019
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.21 KB | None | 0 0
  1.     [Command(Name = "list-tickets", Description = "list istrada tickets")]
  2.     class ListTicketCmd : iStradaCmdBase
  3.     {
  4.         [Option(CommandOptionType.SingleValue, ShortName = "start", LongName = "start-date", Description = "start date", ValueName = "start date", ShowInHelpText = true)]
  5.         public DateTime? StartDate { get; set; }
  6.  
  7.         [Option(CommandOptionType.SingleValue, ShortName = "end", LongName = "end-date", Description = "end date", ValueName = "end date", ShowInHelpText = true)]
  8.         public DateTime? EndDate { get; set; }
  9.         public ListTicketCmd(ILogger<ListTicketCmd> logger, IConsole console, IHttpClientFactory clientFactory)
  10.         {
  11.             _logger = logger;
  12.             _console = console;
  13.             _httpClientFactory = clientFactory;
  14.         }
  15.  
  16.         protected override async Task<int> OnExecute(CommandLineApplication app)
  17.         {
  18.             try
  19.             {
  20.                 if (!StartDate.HasValue)
  21.                 {
  22.                     StartDate = DateTime.Parse(Prompt.GetString("start date:", DateTime.Now.ToShortDateString()));
  23.                 }
  24.  
  25.                 if (!EndDate.HasValue)
  26.                 {
  27.                     EndDate = DateTime.Parse(Prompt.GetString("end date:", DateTime.Now.ToShortDateString()));
  28.                 }
  29.                 var url = $"/api/tickets?filter[where][ticketDate][gt]={StartDate.Value.ToUniversalTime().ToString("o")}&filter[where][ticketDate][lt]={EndDate.Value.ToUniversalTime().ToString("o")}";
  30.  
  31.                 var tickets = await iStradaClient.GetAsync(url);
  32.                 if (string.IsNullOrEmpty(tickets)) return 0;
  33.  
  34.                 if (StartDate == EndDate)
  35.                 {
  36.                     FileNameSuffix = $"{StartDate.Value.ToString("yyyyMMdd")}";
  37.                 }
  38.                 else
  39.                 {
  40.                     FileNameSuffix = $"{StartDate.Value.ToString("yyyyMMdd")}-{EndDate.Value.ToString("yyyyMMdd")}";
  41.                 }
  42.  
  43.                 OutputJson(tickets, "tickets", "ticket");    
  44.                
  45.                 return 1;
  46.             }
  47.             catch (Exception ex)
  48.             {
  49.                 OnException(ex);
  50.                 return 0;
  51.             }
  52.         }
  53.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement