public async Task <ImageVm> Handle(UploadImageCommand request, CancellationToken cancellationToken) { var sportObject = await _context.SportObjects.FindAsync(request.SportObjectId); if (sportObject == null) { throw new NotFoundException(nameof(SportObject), sportObject.Id); } var isOwner = await _identityService.CheckIfClientIsOwnerAsync(sportObject); if (!isOwner) { throw new Exception("Bad client"); } var imageUploadResult = _imageService.AddPhoto(request.File); var image = new Image { Url = imageUploadResult.Url, Id = imageUploadResult.PublicId }; if (!sportObject.Images.Any(x => x.IsMain)) { image.IsMain = true; } sportObject.Images.Add(image); await _context.SaveChangesAsync(cancellationToken); ImageVm vm = new ImageVm { Id = image.Id, Url = image.Url, IsMain = image.IsMain, SportObjectId = image.SportObjectId, }; return(vm); }
public bool Edit(string roadId, string roadName, string startingPoint, string endPoint, double roadLength, string description, string video, IFormFile imageFromForm, int viewRating, int surfaceRating, int pleasureRating) { if (roadName == null || startingPoint == null || endPoint == null || roadLength == 0.00 || description == null) { return(false); } string embedYoutubeUrl = null; if (video != null) { embedYoutubeUrl = videoService.ReturnEmbedYoutubeLink(video); } var road = this.context.Roads.FirstOrDefault(x => x.Id == roadId); if (road == null) { return(false); } road.RoadName = roadName; road.Description = description; road.StartingPoint = startingPoint; road.EndPoint = endPoint; road.RoadLength = roadLength; road.SurfaceRating = surfaceRating; road.ViewRating = viewRating; road.PleasureRating = pleasureRating; if (road.Video != video) { road.Video = embedYoutubeUrl; } context.SaveChanges(); if (imageFromForm != null) { road.CoverPhoto = null; var image = imageService.AddPhoto(imageFromForm); image.Name = roadName + "main"; var coverPhoto = new CoverPhotoRoad { Image = image, ImageId = image.Id, Road = road, RoadId = road.Id }; context.CoverPhotoRoads.Add(coverPhoto); context.SaveChanges(); road.CoverPhoto = coverPhoto; road.CoverPhotoId = coverPhoto.Id; context.SaveChanges(); } return(true); }