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;
        }