public async Task <ResponseViewModel> CreateNewDocument(DocumentInputModel document) { var user = _userManager.FindByIdAsync(_httpContextAccessor.HttpContext.User.GetLoggedInUserId <int>().ToString()).Result; var query = _plotService.GetByPlotId(document.PlotId); if (query == null) { return(NotFound(ResponseMessageViewModel.INVALID_PLOT, ResponseErrorCodeStatus.INVALID_PLOT)); } var documentType = _documentService.GetDocumentTypes().FirstOrDefault(x => x.Id == document.DocumentType); if (documentType == null) { return(NotFound(ResponseMessageViewModel.INVALID_DOCUMENT_TYPE, ResponseErrorCodeStatus.INVALID_DOCUMENT_TYPE)); } FileDocument uploadResult = FileDocument.Create(); try { uploadResult = await BaseContentServer .Build(ContentServerTypeEnum.FIREBASE, _settings) .UploadDocumentAsync(FileDocument.Create(document.Document, document.GetDocumentType(), $"{user.GUID}", FileDocumentType.GetDocumentType(MIMETYPE.IMAGE))); } catch (Exception e) { return(Failed(ResponseMessageViewModel.ERROR_UPLOADING_FILE, ResponseErrorCodeStatus.ERROR_UPLOADING_FILE)); } var mappedResult = _mapper.Map <DocumentInputModel, Document>(document); mappedResult.AppUserId = user.Id; mappedResult.Name = uploadResult.Path; mappedResult.PlotId = 1010; return(Ok(_mapper.Map <Document, DocumentViewModel>(_documentService.CreateDocument(mappedResult)))); }