Beispiel #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());
        }
Beispiel #2
0
        public async Task <ActionResult> Upload(string docId)
        {
            if (Request.Files.Count == 0)
            {
                return(Json(new { result = "fail" }));
            }

            if (Request.Files[0] == null)
            {
                return(Json(new { result = "fail" }));
            }

            var clientId = this.GetClientId();

            var fileName = Request.Files[0].FileName;
            var mime     = Request.Files[0].ContentType;
            var stream   = Request.Files[0].InputStream;

            var id = await _srvKycDocumentsManager.UploadDocument(clientId, docId, fileName, mime, stream.ToBytes());

            return(Json(new { result = "ok", id }));
        }