Esempio n. 1
0
        public IActionResult SendOnboardingRequest([FromBody] UserAttributeTransferDto userAttributeTransfer)
        {
            ulong           accountId       = ulong.Parse(User.Identity.Name, CultureInfo.InvariantCulture);
            UtxoPersistency utxoPersistency = _executionContextManager.ResolveUtxoExecutionServices(accountId);

            bool proceed = true;

            if (!string.IsNullOrEmpty(userAttributeTransfer.ImageContent) && !string.IsNullOrEmpty(userAttributeTransfer.Content))
            {
                string sourceImage = _dataAccessService.GetUserAssociatedAttributes(accountId).FirstOrDefault(t => t.Item1 == AttributeType.PassportPhoto)?.Item2;
                BiometricPersonDataForSignatureDto biometricPersonDataForSignature = new BiometricPersonDataForSignatureDto
                {
                    ImageSource = sourceImage,
                    ImageTarget = userAttributeTransfer.ImageContent
                };

                try
                {
                    BiometricSignedVerificationDto biometricSignedVerification = $"{Request.Scheme}://{Request.Host.ToUriComponent()}/biometric/".AppendPathSegment("SignPersonFaceVerification").PostJsonAsync(biometricPersonDataForSignature).ReceiveJson <BiometricSignedVerificationDto>().Result;
                }
                catch (FlurlHttpException)
                {
                    proceed = false;
                }
                //Tuple<bool, bool> faceRes = VerifyFaceImage(userAttributeTransfer.ImageContent, userAttributeTransfer.Content);

                proceed = true;                 // faceRes.Item1;
            }

            if (proceed)
            {
                SendOnboardingRequest(userAttributeTransfer, utxoPersistency.TransactionsService);

                return(Ok(true));
            }

            return(Ok(false));
        }
Esempio n. 2
0
        public IActionResult SendEmployeeRequest([FromBody] UserAttributeTransferDto userAttributeTransfer)
        {
            ulong           accountId       = ulong.Parse(User.Identity.Name, CultureInfo.InvariantCulture);
            UtxoPersistency utxoPersistency = _executionContextManager.ResolveUtxoExecutionServices(accountId);

            bool proceed = true;

            if (!string.IsNullOrEmpty(userAttributeTransfer.ImageContent) && !string.IsNullOrEmpty(userAttributeTransfer.Content))
            {
                string sourceImage = _dataAccessService.GetUserAssociatedAttributes(accountId).FirstOrDefault(t => t.Item1 == AttributeType.PassportPhoto)?.Item2;
                BiometricPersonDataForSignatureDto biometricPersonDataForSignature = new BiometricPersonDataForSignatureDto
                {
                    ImageSource = sourceImage,
                    ImageTarget = userAttributeTransfer.ImageContent
                };

                try
                {
                    BiometricSignedVerificationDto biometricSignedVerification = $"{Request.Scheme}://{Request.Host.ToUriComponent()}/biometric/".AppendPathSegment("SignPersonFaceVerification").PostJsonAsync(biometricPersonDataForSignature).ReceiveJson <BiometricSignedVerificationDto>().Result;
                }
                catch (FlurlHttpException)
                {
                    proceed = false;
                }
                //Tuple<bool, bool> faceRes = VerifyFaceImage(userAttributeTransfer.ImageContent, userAttributeTransfer.Content);

                proceed = true; // faceRes.Item1;
            }

            if (proceed)
            {
                SendEmployeeRequest(userAttributeTransfer, utxoPersistency.TransactionsService);

                string[] categoryEntries = userAttributeTransfer.ExtraInfo.Split("/");

                foreach (string categoryEntry in categoryEntries)
                {
                    string groupOwnerName = categoryEntry.Split("|")[0];
                    string groupName      = categoryEntry.Split("|")[1];

                    ulong groupRelationId = _dataAccessService.AddUserGroupRelation(accountId, groupOwnerName, userAttributeTransfer.Target, groupName);

                    if (groupRelationId > 0)
                    {
                        GroupRelationDto groupRelationDto = new GroupRelationDto
                        {
                            GroupRelationId = groupRelationId,
                            GroupOwnerName  = groupOwnerName,
                            GroupOwnerKey   = userAttributeTransfer.Target,
                            GroupName       = groupName
                        };

                        _idenitiesHubContext.Clients.Group(accountId.ToString(CultureInfo.InvariantCulture)).SendAsync("PushGroupRelation", groupRelationDto);
                    }
                }


                return(Ok(true));
            }

            return(Ok(false));
        }