public async Task <bool> Handle(RegisterUserRequest request, IOutputPort <RegisterUserResponse> outputPort) { if (_userRepository.FindByEmail(request.Email) != null) { outputPort.Handle(new RegisterUserResponse(new[] { new Error(422, "user with this email is already exists") })); return(false); } var userInfo = new UserDto() { Name = request.Name, Email = request.Email, BirthDay = request.BirthDay, PasswordHash = request.PasswordHash, }; UserDto createdUser = _userRepository.Create(userInfo); if (request.Picture != null) { var uploadedPicture = await _uploadService.UploadFile(request.Picture, request.WebRootPath); UploadedFileDto uploadedFile = _uploadedFileRepository.Create(uploadedPicture); uploadedPicture.Id = uploadedFile.Id; ImageDto createdPicture = _imageRepository.Create(new ImageDto() { UserId = createdUser.Id }, request.WebRootPath, uploadedPicture); createdUser = _userRepository.SetUserProfilePicture(createdPicture.Id, createdUser.Id); } outputPort.Handle(new RegisterUserResponse(createdUser)); return(true); }
public async Task <bool> Handle(NewVideoRequest request, IOutputPort <NewVideoResponse> outputPort) { if (_userRepository.FindById(request.UserId) == null) { outputPort.Handle(new NewVideoResponse(new[] { new Error(404, "user not found") })); return(false); } if (_channelRepository.FindByUserId(request.UserId) == null) { outputPort.Handle(new NewVideoResponse(new[] { new Error(404, "you must have to create channel") })); return(false); } UploadedFileDto videoInfo = await _uploadService.UploadFile(request.VideoFile, request.WebRootPath); UploadedFileDto previewInfo = await _uploadService.UploadFile(request.VideoPreview, request.WebRootPath); UploadedFileDto uploadedVideo = _uploadedFileRepository.Create(videoInfo); UploadedFileDto uploadedPreview = _uploadedFileRepository.Create(previewInfo); previewInfo.Id = uploadedPreview.Id; ImageDto videoPreview = _imageRepository.Create(new ImageDto() { UserId = request.UserId }, request.WebRootPath, previewInfo); var video = new VideoDto() { Description = request.Description, Name = request.Name, Views = 0, Likes = 0, Dislikes = 0, PreviewImageId = videoPreview.Id, UserId = request.UserId, UploadedFileId = uploadedVideo.Id, }; VideoDto createdVideo = _videoRepository.Create(video); outputPort.Handle(new NewVideoResponse(createdVideo)); return(true); }
public IActionResult UploadFile([FromQuery] string directory) { var lang = Request.Headers["language"].ToString(); var errorMessages = new List <string>(); try { var path = Path.Combine(_webHostEnvironment.WebRootPath, "appData", directory); var dir = _directoryRepository.FindByPath(directory); foreach (var file in Request.Form.Files) { if (file.Length > 0) { string originalFileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'); string fileName = $"_{DateTime.Now.ToString("yyyyMMddHHmmssffff")}" + Path.GetExtension(originalFileName); string fullPath = Path.Combine(path, fileName); using (var stream = new FileStream(fullPath, FileMode.Create)) { file.CopyTo(stream); } //var serverUrl = "https://localhost:44383"; var serverUrl = "https://qasrawi.fr"; var newFile = new UploadedFile() { UploadDirectory = dir, DownloadPath = Path.Combine(serverUrl, "appData", dir.Path, fileName).Replace("\\", "/"), UploadDateTime = DateTime.Now, FileType = Path.GetExtension(originalFileName), OriginalFileName = originalFileName, ModifiedFileName = fileName, UploadPath = Path.Combine(dir.Path, fileName) }; var createdFile = _uploadedFileRepository.Create(newFile); } } return(Ok(new { status = "File Uploaded" })); } catch { errorMessages.Add(_translator.GetTranslation("ERROR", lang)); return(BadRequest(new { errors = errorMessages })); } }