示例#1
0
        /// <summary>
        ///   Add picture of user profile.
        /// </summary>
        /// <param name="file">Picture to add.</param>
        /// <param name="currentUserId">Id of current user.</param>
        /// <returns>
        ///    Added image.
        /// </returns>
        /// <exception cref="System.ArgumentException">When one of params invalid.</exception>

        public async Task <User> AddPictureProfile(FileToAddModel file, string currentUrl, long currentUserId)
        {
            file.CheckArgumentException();

            var user = await _userRepository.GetAsync(currentUserId);

            user.PictureLink = FileStorage.UploadFile(file, currentUrl, Defines.FileFolders.USER_PICTURES_FOLDER).Link;

            return((await _userRepository.EditAsync(user))
                   .GetSkillsToUser(_userSkillRepository, _skillRepository));
        }
示例#2
0
        /// <summary>
        ///   Add file to open source area of user.
        /// </summary>
        /// <param name="file">File to add.</param>
        /// <param name="currentUserId">Id of current user.</param>
        /// <returns>
        ///    Added file.
        /// </returns>
        /// <exception cref="System.ArgumentException">When one of params invalid.</exception>

        public async Task <FileToReturnModel> AddFileToOpenSource(FileToAddModel file, string currentUrl, long currentUserId)
        {
            file.CheckArgumentException();

            var user = await _userRepository.GetAsync(currentUserId);

            var savedFile = FileStorage.UploadFile(file, currentUrl, Defines.FileFolders.OPENSOURCE_ATTACHMENT_FOLDER);

            var addedAttachment = await _attachmentRepository.AddAsync(new Attachment()
            {
                ContainerId   = user.Id,
                ContainerName = Defines.AttachmentContainerName.USER,
                Link          = savedFile.Link,
                Name          = savedFile.Name,
                Type          = savedFile.Name.GetContentType()
            });

            savedFile.Id = addedAttachment.Id;

            return(savedFile);
        }
示例#3
0
        public static FileToReturnModel UploadFile(FileToAddModel file, string currentUrl, string folder)
        {
            file.Name = DateTime.Now.Subtract(DateTime.MinValue).TotalSeconds + file.Name;

            var path = Path.Combine(Directory.GetCurrentDirectory(),
                                    Defines.FileFolders.FolderPathes[folder],
                                    file.Name);

            var data = Convert.FromBase64String(file.Data);

            File.WriteAllBytes(path, data);

            return(new FileToReturnModel()
            {
                ContainerId = file.ContainerId,
                ContainerName = file.ContainerName,
                Link = new Uri(currentUrl + "/"
                               + Defines.FileFolders.FolderPathes[folder].Replace("wwwroot", "") + "/"
                               + file.Name).AbsoluteUri,
                Name = file.Name,
                Type = file.Name.GetContentType()
            });
        }
示例#4
0
 // /api/user/AddFileToOpenSource
 public async Task <FileToReturnModel> AddFileToOpenSource([FromBody] FileToAddModel file)
 {
     return(await _service.AddFileToOpenSource(file, GetCurrentUrl(), User.GetUserId()));
 }
示例#5
0
 // /api/user/AddPictureProfile
 public async Task <User> AddPictureProfile([FromBody] FileToAddModel file)
 {
     return(await _service.AddPictureProfile(file, GetCurrentUrl(), User.GetUserId()));
 }