public async Task <IActionResult> AddImageToGallery(UploadImageInputModel inputModel, int id) { ApplicationUser applicationUser = await this.userManager.GetUserAsync(this.User); inputModel.UserId = applicationUser.Id; inputModel.AlbumId = id; await this.fileService.AddImages(inputModel); return(this.RedirectToAction("AllImages", "Files", new { Id = id })); }
public IActionResult UploadImage([FromBody] UploadImageInputModel data) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var result = _service.UploadImage(data, GetVirtualPath()); return(Ok(result)); } catch (Exception ex) { return(BadRequest(ex.Message.ToString())); } }
public async Task AddImages(UploadImageInputModel uploadImageInputModel) { ApplicationUser user = this.userRepository.All().FirstOrDefault(s => s.Id == uploadImageInputModel.UserId); foreach (var image in uploadImageInputModel.Images) { string fileName = $"gallery_IMG{DateTime.UtcNow.ToString("yyyy/dd/mm/ss")}"; string extension = System.IO.Path.GetExtension(image.FileName); File file = new File() { Extension = extension, UserId = uploadImageInputModel.UserId, AlbumId = uploadImageInputModel.AlbumId, RemoteUrl = await this.cloudinaryService.UploadFile(image, fileName, extension, "gallery"), }; user.Files.Add(file); } await this.userRepository.SaveChangesAsync(); }
public UploadImageViewModel UploadImage(UploadImageInputModel data, string virtualPath) { UploadImageViewModel result; if (data.name == null) { data.name = Guid.NewGuid(); } var fileExtension = "png"; var file = data.base64; if (file.Contains("data:")) { try { data.base64 = file.Split(",")[1]; fileExtension = file.Split(",")[0].Split(";")[0].Split("/")[1]; } catch (Exception) { } } byte[] bytes = Convert.FromBase64String(data.base64); var filename = data.name + "." + fileExtension; var fullPath = Path.Combine(pathToSave, filename); if (bytes.Length > 0) { using (var stream = new FileStream(fullPath, FileMode.Create)) { stream.Write(bytes, 0, bytes.Length); stream.Flush(); } } result = new UploadImageViewModel(virtualPath, filename, fileExtension); return(result); }
public async Task <IActionResult> OnGetAsync(int?groupId) { if (groupId == null) { return(NotFound()); } var chatUser = await _userManager.GetUserAsync(User); var group = await _context.Group .OfType <MultiuserGroup>() .Include(g => g.GroupJoinRequests) .ThenInclude(r => r.ChatUser) .Include(g => g.BannedUsers) .Include(g => g.Memberships) .ThenInclude(m => m.ChatUser) .FirstOrDefaultAsync(g => g.GroupID == groupId); if (group == null) { return(NotFound()); } var membership = await _context.Membership .OfType <MultiuserGroupMembership>() .FirstOrDefaultAsync(m => m.GroupID == group.GroupID && m.ChatUserID == chatUser.Id); ViewModel = new GroupViewModel() { Group = group, JoinRequestSent = JoinRequestSent(group, chatUser.Id), JoinInvitationSent = await _context.GroupJoinInvitation.AnyAsync(i => i.GroupID == group.GroupID && i.ChatUserID == chatUser.Id), ChatUser = chatUser }; SendJoinRequestInput = new SendJoinRequestInputModel(); LeaveGroupInput = new LeaveGroupInputModel(); JoinRequestInput = new JoinRequestInputModel(); InviteToGroupInput = new InviteToGroupInputModel(); UnbanUserInput = new UnbanUserInputModel(); BanUserInput = new BanUserInputModel(); UploadImageInput = new UploadImageInputModel(); PublicPrivateInput = new PublicPrivateInputModel(); if (membership is null) { if (group.IsPrivate) { return(LocalRedirect("/Groups")); } else { ViewModel.IsGroupMember = false; if (group.BannedUsers.FirstOrDefault(u => u.Id == chatUser.Id) == null) { ViewModel.IsBanned = false; } else { ViewModel.IsBanned = true; } } } else { ViewModel.IsGroupMember = true; ViewModel.IsBanned = false; ViewModel.Membership = membership; } return(Page()); }