private async Task UploadIntoFileDbAsync(File savedEntity, UploadDocumentView model) { var fileDb = new FileDB() { Id = savedEntity.IdGuid, Bytes = StreamToBytes(model.File.OpenReadStream()) }; await _fileDbContext.FileDB.AddAsync(fileDb); await _fileDbContext.SaveChangesAsync(); }
public async Task <IFileResponse> UploadDocumentAsync(UploadDocumentView model) { try { var savedEntity = await SaveFileAsync(model); var profile = await _appDbContext.Profiles.FirstOrDefaultAsync(k => k.Id == model.UserId); if (profile == null) { return(new FileResponse(ClientMessageConstant.ProfileNotExist, HttpStatusCode.NotFound)); } switch (model.DocumentType) { case DocumentType.Passport: profile.PassportFileId = savedEntity.Id; break; case DocumentType.Education: profile.LastEducationCertificateFileId = savedEntity.Id; break; case DocumentType.CV: profile.CvfileId = savedEntity.Id; break; case DocumentType.Emirates: profile.UaeidfileId = savedEntity.Id; break; case DocumentType.FamilyBook: profile.FamilyBookFileId = savedEntity.Id; break; } await UploadIntoFileDbAsync(savedEntity, model); await _appDbContext.SaveChangesAsync(); return(new FileResponse(true, "Success", HttpStatusCode.Accepted)); } catch (Exception e) { return(new FileResponse(e)); } }
private async Task <File> SaveFileAsync(UploadDocumentView model) { var userInfo = await _appDbContext.UserInfos.Include(k => k.User).FirstOrDefaultAsync(k => k.Id == model.UserId); var data = new File() { IdGuid = Guid.NewGuid(), SizeMb = GetFileSize(model.File.Length), Name = model.File.FileName, ProviderName = "SqlProvider", ExtraParams = model.ExtraParams, Created = DateTime.UtcNow, MimeType = model.File.ContentType, Modified = DateTime.UtcNow, CreatedBy = userInfo.Email, ModifiedBy = userInfo.Email }; var savedEntity = (await _appDbContext.Files.AddAsync(data)).Entity; await _appDbContext.SaveChangesAsync(); return(savedEntity); }
public async Task <IActionResult> UploadDocumentAsync([FromForm] UploadDocumentView viewModel) { var model = await _fileService.UploadDocumentAsync(viewModel); return(Ok(model)); }