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