public async Task <Unit> Handle(UpdateSlideOrderIndexCommandModel request, CancellationToken cancellationToken) { var slide = await slidesRepository.GetAndEnsureExistAsync(request.Id); slide.SetOrderIndex(request.OrderIndex); await slidesRepository.SaveChangesAsync(); return(Unit.Value); }
public async Task <Guid> Handle(AddSlideCommandModel request, CancellationToken cancellationToken) { var lastSlideIndex = await slidesRepository.GetLastOrderIndexAsync(); var slide = new Slide(lastSlideIndex + 1, request.Text, request.TextEng); slidesRepository.Add(slide); await slidesRepository.SaveChangesAsync(); return(slide.Id); }
public async Task <Unit> Handle(DeleteSlideCommandModel request, CancellationToken cancellationToken) { var slide = await slidesRepository.GetAndEnsureExistAsync(request.Id); await slidesRepository.DeleteAsync(slide); await slidesRepository.SaveChangesAsync(); if (slide.ImageUrl != null) { fileManager.RemoveFile(Path.Combine("wwwroot", slide.ImageUrl)); } return(Unit.Value); }
public async Task <Unit> Handle(AddSlideImageCommandModel request, CancellationToken cancellationToken) { var slide = await slidesRepository.GetAndEnsureExistAsync(request.Id); if (slide.ImageUrl != null) { throw new StreetwoodException(ErrorCode.SlideAlreadyHaveImage); } var imageUniqueName = request.File.FileName.GetUniqueFileName(); var path = pathManager.GetSlideImagesPath(); var pathToSave = Path.Combine("wwwroot", path); await fileManager.MoveFileAsync(request.File, pathToSave, imageUniqueName); slide.SetImageUrl(Path.Combine(path, imageUniqueName)); await slidesRepository.SaveChangesAsync(); return(Unit.Value); }