Exemplo n.º 1
0
        public async Task <ResponseModel> Post(KycDocumentsModel model)
        {
            if (string.IsNullOrEmpty(model.Type))
            {
                return(ResponseModel.CreateInvalidFieldError("type", Phrases.FieldShouldNotBeEmpty));
            }


            if (!KycDocumentTypes.HasDocumentType(model.Type))
            {
                return(ResponseModel.CreateInvalidFieldError("type", Phrases.InvalidDocumentType));
            }

            if (string.IsNullOrEmpty(model.Ext))
            {
                return(ResponseModel.CreateInvalidFieldError("ext", Phrases.FieldShouldNotBeEmpty));
            }

            if (string.IsNullOrEmpty(model.Data))
            {
                return(ResponseModel.CreateInvalidFieldError("data", Phrases.FieldShouldNotBeEmpty));
            }


            byte[] data;
            try
            {
                data = Convert.FromBase64String(model.Data);
            }
            catch (Exception)
            {
                return(ResponseModel.CreateInvalidFieldError("data", "Base64 format expected"));
            }

            var clientId = this.GetClientId();

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

            var status = await _kycRepository.GetKycStatusAsync(clientId);

            if (status != KycStatus.NeedToFillData)
            {
                return(ResponseModel.CreateFail(ResponseModel.ErrorCodeType.InconsistentData, Phrases.OperationCanNotBePerformed));
            }


            var fileName = "myFile" + model.Ext.AddFirstSymbolIfNotExists('.');
            var mimeType = MimeMapping.GetMimeMapping(fileName);

            await
            _srvKycDocumentsManager.UploadDocument(clientId, model.Type, fileName, mimeType, data);

            return(ResponseModel.CreateOk());
        }
        private static string GetDocumentExtensionByName(string documentName)
        {
            if (string.IsNullOrEmpty(documentName))
            {
                return(null);
            }

            var documentExtension = documentName.Split('.').LastOrDefault();

            if (!KycDocumentTypes.GetDocumentExtenstionList().Contains(documentExtension))
            {
                documentExtension = KycDocumentTypes.GetDocumentExtenstionList().FirstOrDefault();
            }

            return(documentExtension);
        }