示例#1
0
        /// <summary>
        /// Deletes user's profile picture stored in the user profile directory. It is an instance method.
        /// </summary>
        /// <returns>true if user's profile picture is successfully deleted; otherwise false.</returns>
        public bool DeleteFile(FileClassfication fileClassfication, string fileName)
        {
            bool   result        = false;
            string directoryPath = null;

            switch (fileClassfication)
            {
            case FileClassfication.Profile:
                directoryPath = Path.Combine(_rootPath, NeeoUtility.GetDirectoryHierarchy(_userID), _dirProfile);
                break;

            case FileClassfication.Offline:
                directoryPath = Path.Combine(_rootPath, NeeoUtility.GetDirectoryHierarchy(_userID), _dirOffline);
                break;

            case FileClassfication.Album:
                directoryPath = Path.Combine(_rootPath, NeeoUtility.GetDirectoryHierarchy(_userID), _dirAlbum);
                break;
            }

            if (Directory.Exists(directoryPath))
            {
                result = File.DeleteFile(fileName, directoryPath);
            }
            else
            {
                throw new ApplicationException(CustomHttpStatusCode.InvalidUser.ToString("D"));
            }
            return(result);
        }
示例#2
0
        /// <summary>
        /// Updates user's profile picture stores in the user's profile directory.
        /// </summary>
        /// <param name="fileData">A string containing base64-encoded file data.</param>
        /// <param name="senderID">A string containing sender user id. It is required only while uploading offline file.</param>
        /// <returns>true if user's profile picture is successfully updated; otherwise false. </returns>
        public string UploadImageFile(string fileData, FileClassfication fileClassfication, string senderID)
        {
            string result        = null;
            string fileName      = null;
            string directoryPath = null;

            switch (fileClassfication)
            {
            case FileClassfication.Profile:
                fileName      = NeeoUtility.ConvertToFileName(_userID);
                directoryPath = Path.Combine(_rootPath, NeeoUtility.GetDirectoryHierarchy(_userID), _dirProfile);
                if (Directory.Exists(directoryPath))
                {
                    result = File.SaveFile(fileName, fileData, directoryPath).ToString();
                }
                else
                {
                    throw new ApplicationException(CustomHttpStatusCode.InvalidUser.ToString("D"));
                }
                break;

            case FileClassfication.Offline:
                string timeStamp = NeeoUtility.GetTimeStamp(DateTime.UtcNow).ToString();
                fileName      = NeeoUtility.GetFileNameInOfflineFileFormat(senderID, _userID, timeStamp);
                directoryPath = Path.Combine(_rootPath, NeeoUtility.GetDirectoryHierarchy(_userID), _dirOffline);
                if (Directory.Exists(directoryPath))
                {
                    if (File.SaveFile(fileName, fileData, directoryPath))
                    {
                        result = NeeoUtility.GenerateImageUrl(_userID, timeStamp, fileClassfication, 0, senderID);
                    }
                }
                else
                {
                    throw new ApplicationException(CustomHttpStatusCode.InvalidUser.ToString("D"));
                }
                break;

            case FileClassfication.Album:
                fileName      = NeeoUtility.GetTimeStamp(DateTime.UtcNow).ToString();
                directoryPath = Path.Combine(_rootPath, NeeoUtility.GetDirectoryHierarchy(_userID), _dirAlbum);
                if (Directory.Exists(directoryPath))
                {
                    result = File.SaveFile(NeeoUtility.ConvertToFileName(fileName), fileData, directoryPath).ToString();
                }
                else
                {
                    throw new ApplicationException(CustomHttpStatusCode.InvalidUser.ToString("D"));
                }
                break;
            }
            return(result);
        }
示例#3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="fileName"></param>
 /// <param name="fileClassfication"></param>
 /// <returns></returns>
 public string GetFileState(string fileName, FileClassfication fileClassfication)
 {
     if (fileClassfication == FileClassfication.Offline)
     {
         string userDirectoryPath = Path.Combine(_rootPath, NeeoUtility.GetDirectoryHierarchy(_userID), _dirOffline);
         if (Directory.Exists(userDirectoryPath))
         {
             DirectoryInfo dirInfo  = new DirectoryInfo(userDirectoryPath);
             FileInfo      fileInfo = dirInfo.GetFiles().SingleOrDefault(x => x.Name == fileName);
             if (fileInfo != null)
             {
                 return(fileInfo.FullName);
             }
             else
             {
                 return(null);
             }
         }
         else
         {
             return(null);
         }
     }
     else if (fileClassfication == FileClassfication.Album)
     {
         string userDirectoryPath = Path.Combine(_rootPath, NeeoUtility.GetDirectoryHierarchy(_userID), _dirAlbum);
         if (Directory.Exists(userDirectoryPath))
         {
             DirectoryInfo dirInfo  = new DirectoryInfo(userDirectoryPath);
             FileInfo      fileInfo = dirInfo.GetFiles().SingleOrDefault(x => x.Name == fileName);
             if (fileInfo != null)
             {
                 return(fileInfo.FullName);
             }
             else
             {
                 return(null);
             }
         }
         else
         {
             return(null);
         }
     }
     return(null);
 }