public async Task <ActionResult> Index(string id)
        {
            var viewModel = new DocumentsListIndexViewModel
            {
                Documents = await _kycDocumentsRepository.GetAsync(id)
            };

            return(View(viewModel));
        }
Beispiel #2
0
        public async Task <ActionResult> UploadFrame(string type)
        {
            var clientId = this.GetClientId();

            var viewModel = new UploadFrameViewModel
            {
                Type      = type,
                UploadUrl = Url.Action("Upload"),
                Documents = (await _kycDocumentsRepository.GetAsync(clientId)).Where(itm => itm.Type == type)
            };

            return(View(viewModel));
        }
        private async Task <IEnumerable <string> > GetDocumentListAsync(string clientId)
        {
            var documents = await _kycDocumentsRepository.GetAsync(clientId);

            var uploadedDocumentTypes = documents?.Select(d => d.Type);

            return(uploadedDocumentTypes);
        }
Beispiel #4
0
        public async Task UpdateKycStatusAsync(string clientId, KycStatus status)
        {
            var documents = (await _kycDocumentsRepository.GetAsync(clientId)).ToArray();

            if ((status == KycStatus.NeedToFillData) && documents.HasAllTypes())
            {
                await _srvKycManager.ChangeKycStatus(clientId, KycStatus.Pending, RecordChanger.Client);
            }
        }
Beispiel #5
0
        public async Task <string> UploadDocument(string clientId, string type, string fileName, string mime, byte[] data,
                                                  string changer)
        {
            var documentBeforeTask = _kycDocumentsRepository.GetAsync(clientId);
            var kycDocument        = await _kycDocumentsRepository.AddAsync(KycDocument.Create(clientId, type, mime, fileName));

            await _kycDocumentsScansRepository.AddDocument(kycDocument.DocumentId, data);

            await UpdateKycProfileSettings(clientId);

            var documentBefore = (await documentBeforeTask)?
                                 .OrderByDescending(x => x.DateTime)
                                 .FirstOrDefault(x => x.Type == type);

            await _auditLogRepository.AddAuditRecordAsync(clientId, documentBefore, kycDocument,
                                                          AuditRecordType.KycDocument, changer);

            return(kycDocument.DocumentId);
        }
        public async Task <AddressInformationViewModel> GetAddressInformation(string returnUrl = null)
        {
            var userFullData = await _personalDataRepository.GetAsync(CurrentClientId);

            var model = Mapper.Map <AddressInformationViewModel>(userFullData) ?? new AddressInformationViewModel();

            model.ReturnUrl   = returnUrl;
            model.NextStepUrl = GetStepUrl("ProofOfAddress", returnUrl);
            model.PrevStepUrl = GetStepUrl("CountryOfResidence", returnUrl);

            var idCard = await _kycDocumentsRepository.GetAsync(CurrentClientId);

            if (idCard != null)
            {
                var idCardDocumentName = idCard.GetFileNameByType(KycDocumentTypes.IdCard);
                model.IdCard.DocumentName = idCardDocumentName;
                model.IdCard.DocumentMime = GetDocumentExtensionByName(idCardDocumentName);
            }

            return(model);
        }
Beispiel #7
0
        public async Task <ResponseModel <CheckDocumentsToUploadModel> > Get()
        {
            var clientId = this.GetClientId();

            if (string.IsNullOrEmpty(clientId))
            {
                return(ResponseModel <CheckDocumentsToUploadModel> .CreateFail(ResponseModel.ErrorCodeType.NotAuthenticated, Phrases.NotAuthenticated));
            }

            var documents = (await _kycDocumentsRepository.GetAsync(clientId)).ToArray();

            var result = new CheckDocumentsToUploadModel
            {
                IdCard         = documents.FirstOrDefault(itm => itm.Type == KycDocumentTypes.IdCard) == null,
                ProofOfAddress = documents.FirstOrDefault(itm => itm.Type == KycDocumentTypes.ProofOfAddress) == null,
                Selfie         = documents.FirstOrDefault(itm => itm.Type == KycDocumentTypes.Selfie) == null
            };

            return(ResponseModel <CheckDocumentsToUploadModel> .CreateOk(result));
        }