コード例 #1
0
        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))));
        }