public async Task <HttpResponseMessage> UploadImage(HttpRequestMessage request, int userId)
        {
            var user = _membershipApi.GetUserById(userId);

            if (user == null)
            {
                return(null);
            }

            var imagePath = HttpContext.Current.Server.MapPath("~/Content/BursifyUploads/" + userId + "/images");

            var directory = new DirectoryInfo(imagePath);

            if (!directory.Exists)
            {
                directory.Create();
            }

            var multipartFormDataStreamProvider = new UploadMultipartFormProvider(directory.FullName);

            // Read the MIME multipart asynchronously
            await Request.Content.ReadAsMultipartAsync(multipartFormDataStreamProvider);

            var localFileName = multipartFormDataStreamProvider
                                .FileData.Select(multiPartData => multiPartData.LocalFileName).ToList();

            var nameOfFile = localFileName[0];

            // Create response
            if (nameOfFile == null)
            {
                return(null);
            }
            var fileUploadResult = new FileUploadResult
            {
                LocalFilePath = nameOfFile,
                FileName      = Path.GetFileName(nameOfFile),
                FileLength    = new FileInfo(nameOfFile).Length
            };

            // update profile picture path of the user
            user.ProfilePicturePath = fileUploadResult.FileName;

            //update the user in the database
            _membershipApi.UpdateUser(user);

            var response = request.CreateResponse(HttpStatusCode.OK, fileUploadResult);

            return(response);
        }