Beispiel #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);
            }
        }