示例#1
0
        public IActionResult UploadVideo(UploadImages model)
        {
            if (ModelState.IsValid)
            {
                model.OwnerId = userService.GetUserId();
                PostImages postImages = new PostImages();
                postImages.Id      = model.Id;
                postImages.OwnerId = userService.GetUserId();
                if (model.files != null)
                {
                    foreach (IFormFile image in model.files)
                    {
                        Image  path           = new Image();
                        var    uploadFolder   = Path.Combine(environment.WebRootPath, "videos");
                        string uniqueFileName = Guid.NewGuid().ToString() + "_" + image.FileName;
                        string filePath       = Path.Combine(uploadFolder, uniqueFileName);
                        image.CopyTo(new FileStream(filePath, FileMode.Create));
                        path.FilePath = uniqueFileName;
                        path.PostId   = model.Id;
                        postImages.files.Add(path);
                    }

                    if (videoManager.UploadVideo(postImages))
                    {
                        return(RedirectToAction("Edit", "Posts", new { id = model.Id }));
                    }
                }

                return(RedirectToAction("Edit", "Posts", new { id = model.Id }));
            }
            return(View());
        }
示例#2
0
        public async Task <ImageModel> PostGameImage(ImageModel image, int GameID)
        {
            SqlParameter gameParam = new SqlParameter {
                ParameterName = "@GameID", SqlDbType = SqlDbType.Int, Value = GameID
            };
            SqlParameter nameParam = new SqlParameter {
                ParameterName = "@ImageName", SqlDbType = SqlDbType.NVarChar, Value = image.Name
            };
            SqlParameter sizeParam = new SqlParameter {
                ParameterName = "@ImageSize", SqlDbType = SqlDbType.Int, Value = image.FileSize
            };
            SqlParameter base64Param = new SqlParameter {
                ParameterName = "@ImageBase64", SqlDbType = SqlDbType.VarChar, Value = image.Base64String
            };
            SqlParameter contentParam = new SqlParameter {
                ParameterName = "@ContentType", SqlDbType = SqlDbType.NVarChar, Value = image.ContentType
            };

            return(await PostImages.FromSql("EXEC CoQ.PostImage @GameID, @ImageName, @ImageSize, @ImageBase64, @ContentType",
                                            new[] {
                gameParam,
                nameParam,
                sizeParam,
                base64Param,
                contentParam
            }).FirstOrDefaultAsync());
        }
        /// <summary>
        /// Event handler for inserting new photo from PhotoUploader child
        /// </summary>
        /// <param name="image"></param>
        /// <returns></returns>
        protected internal void PhotoInserted(ImageDto image)
        {
            Images?.Add(image);
            var postImage = CreatePostImage(image.ImageId, PostImages?.Count < 1);

            PostImages?.Add(postImage);
        }
        /// <summary>
        /// Event handler for deleting existing uploaded photo in the
        /// </summary>
        /// <param name="imageId"></param>
        /// <returns></returns>
        protected internal async Task OnPhotoDeletedHandlerAsync(Guid imageId)
        {
            //Remove from images
            if (await PhotoViewer.DeletePhoto(imageId))
            {
                Images?.Remove(Images?.FirstOrDefault(p => p.ImageId == imageId));
            }

            //Remove from PostImages

            PostImages?.Remove(PostImages?.FirstOrDefault(p => p.ImageId == imageId));
            var photo = PostImages?.FirstOrDefault();

            if (photo is null)
            {
                return;
            }
            photo.IsDefaultPostImage = true;
        }
示例#5
0
        public bool UploadVideo(PostImages model)
        {
            var post = db.Posts.Find(model.Id);

            if (post.OwnerID != model.OwnerId)
            {
                return(false);
            }
            foreach (var im in model.files)
            {
                Video image = new Video();
                image.PostId   = im.PostId;
                image.FilePath = im.FilePath;
                if (!base.Add(image))
                {
                    return(false);
                }
            }

            return(true);
        }
示例#6
0
        public async Task <int> InsertNewPostImagesAsync(PostImages postImages)
        {
            string token = await protectedLocalStorage.GetAsync <string>(TokenKey);

            string serializedData = JsonConvert.SerializeObject(postImages);
            var    requestMessage = new HttpRequestMessage(HttpMethod.Post, "InsertNewPostImagesAsync");

            requestMessage.Content = new StringContent(serializedData);
            requestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            requestMessage.Headers.Authorization       = new AuthenticationHeaderValue("bearer", token);
            var response = await httpClient.SendAsync(requestMessage);

            int result = 0;

            if (response.IsSuccessStatusCode)
            {
                result = JsonConvert.DeserializeObject <int>(await response.Content.ReadAsStringAsync());
                return(result);
            }

            return(result);
        }
示例#7
0
        public async Task <ICollection <Image> > UploadAsync(ICollection <IFormFile> images, int postId)
        {
            var allImages = new List <Image>();

            foreach (var image in images)
            {
                byte[] imageInBytes;

                using var memoryStream = new MemoryStream();
                await image.CopyToAsync(memoryStream);

                imageInBytes = memoryStream.ToArray();

                using var destinationStream = new MemoryStream(imageInBytes);
                var param = new ImageUploadParams()
                {
                    File = new FileDescription(image.Name, destinationStream),
                };

                var result = await this.cloudinary.UploadAsync(param);

                var url      = result.SecureUri.ToString();
                var urlForDb = url.Replace(GlobalConstants.DefaultCloudinaryLink, string.Empty);
                var imgId    = await this.imageService.AddAsync(urlForDb);

                var postImage = new PostImages()
                {
                    ImageId = imgId,
                    PostId  = postId,
                };
                await this.db.AddAsync(postImage);

                await this.db.SaveChangesAsync();
            }

            return(allImages);
        }
        public async Task <ActionResult <int> > InsertNewPostImagesAsync(PostImages postImages)
        {
            await dbContext.PostImagesMaster.AddAsync(postImages);

            return(await dbContext.SaveChangesAsync());
        }
示例#9
0
 public bool UploadImages(PostImages model)
 {
     return(repository.UploadImages(model));
 }