/// <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); }