Example #1
0
        public static UploadFileInfo[] Upload(UserConfiguration userConfig, HTTP.FileContentData fileContentData)
        {
            var fileContentDatas = new HTTP.FileContentData[1];
            fileContentDatas[0] = fileContentData;

            return Upload(userConfig, fileContentDatas);
        }
        void UploadProfileImage(EditUserInfo info, string path)
        {
            if (path != null)
            {
                // Crop and Resize image
                System.Drawing.Image img = ProcessImage(path);
                if (img != null)
                {
                    // Generate random file name for processed/temp image (to be saved in temp folder)
                    string newFilename = String_Functions.RandomString(20);

                    // Get file extension of original file
                    string ext = Path.GetExtension(path);

                    // Make sure Temp directory exists
                    FileLocations.CreateTempDirectory();

                    // Create new full path of temp file
                    string localPath = Path.Combine(FileLocations.TrakHoundTemp, newFilename);
                    //if (ext != null) localPath += "." + ext;
                    if (ext != null) localPath = Path.ChangeExtension(localPath, ext);

                    // Save the processed image to the new temp path
                    img.Save(localPath);

                    // Create a temp UserConfiguration object to pass the current SessionToken to the Files.Upload() method
                    var userConfig = new UserConfiguration();
                    userConfig.SessionToken = info.SessionToken;

                    // Set the HTTP Content Type based on the type of image
                    string contentType = null;
                    if (ext == "jpg") contentType = "image/jpeg";
                    else if (ext == "png") contentType = "image/png";
                    else if (ext == "gif") contentType = "image/gif";

                    var fileData = new HTTP.FileContentData("uploadimage", localPath, contentType);

                    // Upload File
                    var uploadInfos = TrakHound.API.Files.Upload(userConfig, fileData);
                    if (uploadInfos != null && uploadInfos.Length > 0)
                    {
                        string fileId = uploadInfos[0].Id;

                        info.ImageUrl = fileId;
                    }
                }
            }
        }
        private void UploadManufacturerLogo_Worker(object o)
        {
            if (o != null)
            {
                var info = (ImageInfo)o;

                string fileId = null;

                if (info.UserConfig != null)
                {
                    string contentType = null;

                    try
                    {
                        string ext = Path.GetExtension(info.FileId);

                        if (ext == "jpg" || ext == ".jpg") contentType = "image/jpeg";
                        else if (ext == "png" || ext == ".png") contentType = "image/png";
                        else if (ext == "gif" || ext == ".gif") contentType = "image/gif";

                        var img = System.Drawing.Image.FromFile(info.FileId);
                        if (img != null)
                        {
                            if (img.Width > img.Height) img = Image_Functions.SetImageSize(img, Math.Min(300, img.Width), Math.Min(300, img.Height));
                            else img = Image_Functions.SetImageSize(img, 0, Math.Min(150, img.Height));

                            string tempPath = Path.ChangeExtension(Guid.NewGuid().ToString(), ext);
                            tempPath = Path.Combine(FileLocations.TrakHoundTemp, tempPath);

                            // Make sure Temp directory exists
                            FileLocations.CreateTempDirectory();

                            img.Save(tempPath);
                            img.Dispose();

                            var fileData = new HTTP.FileContentData("uploadImage", tempPath, contentType);

                            var fileInfos = Files.Upload(currentUser, fileData);
                            if (fileInfos != null && fileInfos.Length > 0)
                            {
                                fileId = fileInfos[0].Id;
                            }
                        }
                    }
                    catch (Exception ex) { Logger.Log("Failed to Upload Image", LogLineType.Error); }
                }
                else
                {
                    string filename = Path.ChangeExtension(Guid.NewGuid().ToString(), ".image");

                    string destinationPath = Path.Combine(FileLocations.Storage, filename);

                    FileLocations.CreateStorageDirectory();

                    File.Copy(info.FileId, destinationPath);

                    fileId = filename;
                }

                Dispatcher.BeginInvoke(new Action<string>(UploadManufacturerLogo_GUI), System.Windows.Threading.DispatcherPriority.Background, new object[] { fileId });
            }
        }