コード例 #1
0
        public ShareFileItem createFile(FileInfo fileInfo, String title, String description, List <String> spaceKeys, Bitmap icon)
        {
            try
            {
                FileRecord fileRecord = VmosoFileUtils.uploadFile(session, fileInfo.FullName, title, description, true);

                if (spaceKeys != null)
                {
                    SpaceApi          spaceApi    = new SpaceApi(session.GetApiClient());
                    ShareObjectInput  shareInput  = new ShareObjectInput(null, spaceKeys, null);
                    ShareObjectResult shareResult = spaceApi.ShareObject(fileRecord.Key, shareInput);
                    if (shareResult.Hdr.Rc == 0)
                    {
                        FileApi        fileApi        = new FileApi(session.GetApiClient());
                        ViewFileResult viewFileResult = fileApi.ViewFile(fileRecord.Key);
                        if (viewFileResult.Hdr.Rc == 0)
                        {
                            fileRecord = viewFileResult.File;
                        }
                        else
                        {
                            throw new Exception("Vmoso error getting created link. Rc=" + viewFileResult.Hdr.Rc);
                        }
                    }
                    else
                    {
                        throw new Exception("Vmoso error sharing link. Rc=" + shareResult.Hdr.Rc);
                    }
                }

                ShareFileItem item = new ShareFileItem(fileRecord.Name, fileRecord.Description);
                item.Key      = fileRecord.Key;
                item.FileInfo = fileInfo;
                item.SetIcon(icon);
                item.Record = fileRecord;

                List <ShareSpace> itemSpaces = new List <ShareSpace>();
                foreach (DisplayRecord spaceDisplayRecord in fileRecord.Destinations)
                {
                    ShareSpace space = new ShareSpace(spaceDisplayRecord.Key, spaceDisplayRecord.DisplayName, null);
                    itemSpaces.Add(space);
                }

                item.Spaces = itemSpaces;
                return(item);
            } catch (Exception ex)
            {
                throw new Exception("Error creating file", ex);
            }
        }
コード例 #2
0
        public ShareFileItem uploadNewFileVersion(ShareFileItem shareFileItem)
        {
            try
            {
                FileRecord fileRecord = VmosoFileUtils.uploadNewVersion(session, shareFileItem.Key, shareFileItem.FileInfo.FullName);

                shareFileItem.Record = fileRecord;

                return(shareFileItem);
            }
            catch (Exception ex)
            {
                throw new Exception("Error creating file", ex);
            }
        }
コード例 #3
0
 public ShareFileItem createFile(ShareFileItem item, List <String> spaceKeys)
 {
     return(createFile(item.FileInfo, item.Title, item.Description, spaceKeys, item.GetIcon()));
 }
コード例 #4
0
        public ShareFileItem updateFile(String key, FileInfo fileInfo, String title, String description, List <String> spaceKeys, Bitmap icon)
        {
            try
            {
                FileApi fileApi = new FileApi(session.GetApiClient());

                ViewFileResult viewFileResult = fileApi.ViewFile(key);

                if (viewFileResult.Hdr.Rc == 0)
                {
                    FileRecord existingFile = viewFileResult.File;
                    existingFile.Name        = title;
                    existingFile.Description = description;

                    UpdateFileInput  updateFileInput  = new UpdateFileInput(existingFile, null);
                    UpdateFileResult updateFileResult = fileApi.UpdateFile(key, updateFileInput);

                    if (updateFileResult.Hdr.Rc == 0)
                    {
                        FileRecord updatedFile = updateFileResult.Updated;

                        SpaceApi spaceApi = new SpaceApi(session.GetApiClient());

                        // Remove spaces
                        foreach (DisplayRecord destination in updatedFile.Destinations)
                        {
                            if (!spaceKeys.Contains(destination.Key))
                            {
                                List <String> itemKeysToRemove = new List <String>()
                                {
                                    updatedFile.Key
                                };
                                RemoveObjectsInput  removeObjectsInput  = new RemoveObjectsInput(destination.Key, itemKeysToRemove);
                                RemoveObjectsResult removeObjectsResult = spaceApi.RemoveObjects(destination.Key, removeObjectsInput);
                                if (removeObjectsResult.Hdr.Rc != 0)
                                {
                                    throw new Exception("Vmoso error removing file from space. Rc=" + removeObjectsResult.Hdr.Rc);
                                }
                            }
                            else
                            {
                                spaceKeys.Remove(destination.Key);
                            }
                        }

                        if (spaceKeys.Count > 0)
                        {
                            ShareObjectInput  shareInput  = new ShareObjectInput(null, spaceKeys, null);
                            ShareObjectResult shareResult = spaceApi.ShareObject(updatedFile.Key, shareInput);
                            if (shareResult.Hdr.Rc != 0)
                            {
                                throw new Exception("Vmoso error sharing file. Rc=" + shareResult.Hdr.Rc);
                            }
                        }

                        viewFileResult = fileApi.ViewFile(updatedFile.Key);
                        if (viewFileResult.Hdr.Rc == 0)
                        {
                            updatedFile = viewFileResult.File;
                            ShareFileItem item = new ShareFileItem(updatedFile.Name, updatedFile.Description);
                            item.Key      = updatedFile.Key;
                            item.FileInfo = fileInfo;
                            item.Record   = updatedFile;
                            item.SetIcon(icon);

                            List <ShareSpace> itemSpaces = new List <ShareSpace>();
                            foreach (DisplayRecord spaceDisplayRecord in updatedFile.Destinations)
                            {
                                ShareSpace space = new ShareSpace(spaceDisplayRecord.Key, spaceDisplayRecord.DisplayName, null);
                                itemSpaces.Add(space);
                            }

                            item.Spaces = itemSpaces;
                            return(item);
                        }
                        else
                        {
                            throw new Exception("Vmoso error getting updated file. Rc=" + viewFileResult.Hdr.Rc);
                        }
                    }
                    else
                    {
                        throw new Exception("Vmoso error updating file. Rc=" + updateFileResult.Hdr.Rc);
                    }
                }
                else
                {
                    throw new Exception("Vmoso error getting file to update. Rc=" + viewFileResult.Hdr.Rc);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Vmoso updating file", ex);
            }
        }
コード例 #5
0
        public ShareFileItem findFile(ShareFileItem shareFileItem)
        {
            try
            {
                AHAItem   foundItem = null;
                AHAClient ahaClient = new AHAClient(session);
                if (shareFileItem.FileInfo != null)
                {
                    List <AHAItem> items = ahaClient.Search("&" + shareFileItem.FileInfo.Name);
                    if (items.Count == 1)
                    {
                        foundItem = items[0];
                    }
                }
                if (foundItem == null)
                {
                    if (shareFileItem.FileInfo != null)
                    {
                        if (!shareFileItem.FileInfo.Name.Equals(shareFileItem.Title))
                        {
                            List <AHAItem> items = ahaClient.Search("&" + shareFileItem.Title);
                            if (items.Count == 1)
                            {
                                foundItem = items[0];
                            }
                        }
                    }
                    else
                    {
                        List <AHAItem> items = ahaClient.Search("&" + shareFileItem.Title);
                        if (items.Count == 1)
                        {
                            foundItem = items[0];
                        }
                    }
                }

                if (foundItem != null)
                {
                    FileApi        fileApi        = new FileApi(session.GetApiClient());
                    ViewFileResult viewFileResult = fileApi.ViewFile(foundItem.Key);
                    if (viewFileResult.Hdr.Rc == 0)
                    {
                        FileRecord fileRecord = viewFileResult.File;

                        ShareFileItem newShareFileItem = new ShareFileItem(fileRecord.Name, fileRecord.Description);
                        newShareFileItem.Key      = fileRecord.Key;
                        newShareFileItem.FileInfo = shareFileItem.FileInfo;
                        newShareFileItem.SetIcon(shareFileItem.GetIcon());
                        newShareFileItem.Record = fileRecord;

                        List <ShareSpace> itemSpaces = new List <ShareSpace>();
                        foreach (DisplayRecord spaceDisplayRecord in fileRecord.Destinations)
                        {
                            ShareSpace space = new ShareSpace(spaceDisplayRecord.Key, spaceDisplayRecord.DisplayName, null);
                            itemSpaces.Add(space);
                        }

                        newShareFileItem.Spaces = itemSpaces;
                        return(newShareFileItem);
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Error creating file", ex);
            }
        }