public static async Task <List <Person> > MetadataVerification(MetadataVerification metadata) { using (var client = new HttpClient()) { var service = $"{Settings.FunctionURL}/api/MetadataVerification/"; byte[] time = BitConverter.GetBytes(DateTime.UtcNow.ToBinary()); byte[] key = Guid.NewGuid().ToByteArray(); var token = Convert.ToBase64String(time.Concat(key).ToArray()); token = SecurityHelper.Encrypt(token, Settings.Cryptography); MetadataVerificationRequest request = new MetadataVerificationRequest(); request.Token = token; request.Metadata = metadata; byte[] byteData = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(request)); using (var content = new ByteArrayContent(byteData)) { content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var httpResponse = await client.PostAsync(service, content); if (httpResponse.StatusCode == HttpStatusCode.OK) { var str = await httpResponse.Content.ReadAsStringAsync(); List <Person> result = JsonConvert.DeserializeObject <List <Person> >(str); return(result); } } } return(null); }
private async Task LoadPersons() { if (!Plugin.Connectivity.CrossConnectivity.Current.IsConnected) { await Application.Current.MainPage.DisplayAlert(SearchPersonResult_ConnectivityHeader, SearchPersonResult_ConnectivityMessage, SearchPersonResult_ConnectivityAccept); await NavigationService.PopAsync(); } IsBusy = true; var result = new List <Person>(); if (!IsByPhoto) { MetadataVerification metadata = new MetadataVerification(); metadata.Name = Person.Name; metadata.Lastname = Person.Lastname; result = await RestHelper.MetadataVerification(metadata); } else { var stream = new System.IO.MemoryStream(Photo); var pid = Guid.NewGuid().ToString(); var extension = "jpg"; if (await StorageHelper.UploadPhoto(pid, stream, true)) { result = await RestHelper.ImageVerification($"{pid}.{extension}"); } else { await Application.Current.MainPage.DisplayAlert(SearchPersonResult_VerificationErrorHeader, SearchPersonResult_VerificationErrorMessage, SearchPersonResult_VerificationErrorAccept); } } if (!(result is null)) { Results = new ObservableCollection <Person>(result); } if (Results is null || !Results.Any()) { await Application.Current.MainPage.DisplayAlert(SearchPersonResult_NoResultsHeader, SearchPersonResult_NoResultsMessage, SearchPersonResult_NoResultsAccept); await NavigationService.PopAsync(); } IsBusy = false; }
public static async Task <string> SearchDocument(MetadataVerification metadata) { byte[] time = BitConverter.GetBytes(DateTime.UtcNow.ToBinary()); byte[] key = Guid.NewGuid().ToByteArray(); var token = Convert.ToBase64String(time.Concat(key).ToArray()); token = SecurityHelper.Encrypt(token, Settings.CryptographyKey); System.Console.WriteLine($"Token: {token}"); MetadataVerificationRequest request = new MetadataVerificationRequest(); request.Token = token; request.Metadata = metadata; using (var client = new HttpClient()) { var service = $"http://localhost:7071/api/MetadataVerification/"; byte[] byteData = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(request)); using (var content = new ByteArrayContent(byteData)) { content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var httpResponse = client.PostAsync(service, content).Result; if (httpResponse.StatusCode == HttpStatusCode.OK) { System.Console.WriteLine(httpResponse.StatusCode); return(await httpResponse.Content.ReadAsStringAsync()); } else { System.Console.WriteLine(httpResponse.StatusCode); } } } return(null); }
private async Task AfterSearchAsync(IDialogContext context, IAwaitable <SearchQuery> result) { var state = await result; MetadataVerification metadata = new MetadataVerification(); metadata.Name = state.Name; metadata.Lastname = state.Lastname; metadata.Country = state.Country.ToString(); var list = new List <Person>(); list = await RestHelper.MetadataVerification(metadata); if (!list.Any()) { var noitems = await TranslatorHelper.TranslateSentenceAsync($"{Resources.Resource.Search_NoItems}", Settings.SpecificLanguage); await context.PostAsync(noitems); TraceManager.SendTrace(context, "SearchDialog", "End"); context.Done("done"); } else { var reply = context.MakeMessage(); reply.AttachmentLayout = AttachmentLayoutTypes.Carousel; reply.Attachments = GetCardsAttachments(list); await context.PostAsync(reply); TraceManager.SendTrace(context, "SearchDialog", "End"); context.Done("done"); } }
private static async void PrintMenu() { string option = string.Empty; do { option = string.Empty; System.Console.Clear(); int r = 225; int g = 255; int b = 250; Colorful.Console.WriteAscii("COGNITIVE LOCATOR", Color.FromArgb(r, g, b)); Colorful.Console.WriteLine("1.- Register person", Color.FromArgb(r, g, b)); r -= 18; b -= 9; Colorful.Console.WriteLine("2.- Verificate person", Color.FromArgb(r, g, b)); r -= 18; b -= 9; Colorful.Console.WriteLine("3.- Upload wrong person image", Color.FromArgb(r, g, b)); r -= 18; b -= 9; Colorful.Console.WriteLine("4.- Upload multiple face image", Color.FromArgb(r, g, b)); r -= 18; b -= 9; Colorful.Console.WriteLine("5.- Request new token to get mobile settings", Color.FromArgb(r, g, b)); r -= 18; b -= 9; Colorful.Console.WriteLine("6.- Request using an existing token to get mobile settings", Color.FromArgb(r, g, b)); r -= 18; b -= 9; Colorful.Console.WriteLine("7.- Search document by metadata attribute", Color.FromArgb(r, g, b)); r -= 18; b -= 9; Colorful.Console.WriteLine("8.- Exit", Color.FromArgb(r, g, b)); r -= 18; b -= 9; Colorful.Console.Write("\nPick an option:", Color.FromArgb(r, g, b)); option = System.Console.ReadLine(); switch (option) { case "1": await UploadImageAsync(0, false); break; case "2": await UploadImageAsync(0, true); System.Console.ReadKey(); break; case "3": await UploadImageAsync(1, false); break; case "4": await UploadImageAsync(2, false); break; case "5": string sresult = await RequestMobileSettings(string.Empty); System.Console.WriteLine(sresult); System.Console.ReadKey(); break; case "6": System.Console.Write("\nCurrent token:"); string currentToken = System.Console.ReadLine(); string fresult = await RequestMobileSettings(currentToken); System.Console.WriteLine(fresult); System.Console.ReadKey(); break; case "7": MetadataVerification metadata = new MetadataVerification(); metadata.ReportedBy = "Roberto Cervantes"; metadata.Country = "MX"; metadata.Name = "Liam"; metadata.Lastname = "Neeson"; string sdresult = await SearchDocument(metadata); System.Console.WriteLine(sdresult); System.Console.ReadKey(); break; } }while (option != "8"); }