public async Task <ResponseDto <int> > AddSharedDocument(string recipient, string documentName) { var document = await _documentsRepository.GetDocumentByName(documentName); var response = DocumentsValidator.ValidateSendMail(document); if (response.HasErrors) { return(response); } var sharedDocument = CreateSharedDocument(recipient, documentName); await _sharedDocumentsRepository.AddSharedDocument(sharedDocument); response.Value = sharedDocument.Id; return(response); }
public async Task <ResponseDto <string> > AddDocument(ClaimsPrincipal user, IFormFile document, int caseId) { Case caseFromDb = await _casesRepository.GetCaseById(caseId); ResponseDto <string> response = DocumentsValidator.ValidateAddDocument(caseFromDb, document, user); string filePath = GetAvailablePath(_documentsFolderPath, document.FileName); Document documentToAdd = new Document { Path = filePath, Status = Status.Sent, Case = caseFromDb }; try { using (var fs = new FileStream(filePath, FileMode.Create)) { await document.CopyToAsync(fs); } } catch { response.AddError(DocumentErrors.CannotSave); return(response); } try { await _documentsRepository.AddDocument(documentToAdd); var split = filePath.Split('\\'); response.Value = string.Join('/', split.Skip(split.Length - 2)); return(response); } catch { File.Delete(filePath); response.AddError(DocumentErrors.InfoSaveFailed); return(response); } }