コード例 #1
0
        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 }));
        }
コード例 #2
0
        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()));
            }
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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());
        }