/// <summary> /// Runs the main logic of the activity. Has access to the context, /// which holds the values of properties for this activity and those from the parent scope. /// </summary> /// <param name="context"></param> /// <param name="cancellationToken"></param> /// <returns></returns> protected override async Task <Action <AsyncCodeActivityContext> > ExecuteAsync(AsyncCodeActivityContext context, CancellationToken cancellationToken) { var property = context.DataContext.GetProperties()[ParentScope.ApplicationTag]; var app = property.GetValue(context.DataContext) as Application; string cep = Cep.Get(context); if (cep.Length != 8) { throw new FormatException(string.Format(Resources.CepLenghtValidation)); } var clientWeb = new System.Net.WebClient(); string json_data = string.Empty; Address address = null; try { clientWeb.Encoding = Encoding.UTF8; json_data = clientWeb.DownloadString("https://viacep.com.br/ws/" + cep + "/json/"); //JObject jj = JObject.Parse(json_data); address = JsonConvert.DeserializeObject <Address>(json_data); } catch (Exception) { throw new Exception(string.Format(Resources.RunTimeBuscaCepError)); } return(ctx => { Result.Set(ctx, address); }); }