private void ProcessScan(byte[] image) { var responceRegistrationTask = ApiHttpClient.SendScannPassportToServer(image, GetConcatAuthData()); XmlDocument registrationTaskXml = new XmlDocument(); try { switch (responceRegistrationTask.Result.StatusCode) { case System.Net.HttpStatusCode.OK: registrationTaskXml.LoadXml(responceRegistrationTask.Result.Content.ReadAsStringAsync().Result); break; default: isScanCompleted = true; isScanSuccessCompleted = false; this.ExeptionMessage = responceRegistrationTask.Result.ReasonPhrase.ToString(); return; } } catch (Exception ex) { this.ExeptionMessage = responceRegistrationTask.Result.ReasonPhrase; isScanCompleted = true; isScanSuccessCompleted = false; return; } var idTask = registrationTaskXml.LastChild.FirstChild.Attributes.GetNamedItem("id").InnerText; XmlDocument statusTaskXml = new XmlDocument(); string linkTask, xmlString; while (true) { var responceStatusTask = ApiHttpClient.GetLinkTask(idTask, GetConcatAuthData()); xmlString = responceStatusTask.Result.Content.ReadAsStringAsync().Result; statusTaskXml.LoadXml(xmlString); var status = statusTaskXml.LastChild.FirstChild.Attributes.GetNamedItem("status").InnerText; if (status == "Completed") { linkTask = statusTaskXml.LastChild.FirstChild.Attributes.GetNamedItem("resultUrl").InnerText; break; } Thread.Sleep(500); } var responceDocumentData = ApiHttpClient.GetDocumentData(linkTask); XmlDocument documentDataXml = new XmlDocument(); documentDataXml.LoadXml(responceDocumentData.Result.Content.ReadAsStringAsync().Result); MemoryStream xmlStream = new MemoryStream(); documentDataXml.Save(xmlStream); xmlStream.Flush(); xmlStream.Position = 0; XmlSerializer serializer = new XmlSerializer(typeof(document)); document _documentData = (document)serializer.Deserialize(xmlStream); documentData = new DocumentData(); if (_documentData.field != null) { foreach (documentField field in _documentData.field) { PropertyInfo propertyInfo = documentData.GetType().GetProperty(field.type); propertyInfo.SetValue(documentData, field.value, null); } setDateOfBirth(documentData.BirthDate); setSerialDocNumber(documentData.DocumentNumber); setDocNumber(documentData.DocumentNumber); isScanSuccessCompleted = true; } else { isScanSuccessCompleted = false; } isScanCompleted = true; }