예제 #1
0
        public bool CreateFile(string path)
        {
            NSError error    = null;
            string  contents = GetIpsumString();

            return(GDFileSystem.WriteToFile(NSData.FromString(contents), path, out error));
        }
예제 #2
0
        string ExtractReceivedDataFromAttachments(NSObject[] attachments)
        {
            var localFilePath = new NSString(attachments [0].ToString());

            Console.WriteLine("Local File Path: {0}", localFilePath);

            if (!GDFileSystem.FileExistsAtPath(localFilePath, false))
            {
                ReportError(_application, _requestId, "Attachment was not found",
                            (int)GDServicesError.GDServicesErrorInvalidParams);

                return(string.Empty);
            }

            NSError error          = null;
            NSData  attachmentData = GDFileSystem.ReadFromFile(localFilePath, out error);

            if (error != null)
            {
                var description = string.Format("Error Reading attachement: {0} {1}",
                                                localFilePath, error.LocalizedDescription);

                ReportError(_application, _requestId, description, (int)GDServicesError.GDServicesErrorInvalidParams);
                return(string.Empty);
            }

            return(new NSString(attachmentData.ToString(), NSStringEncoding.UTF8).ToString());
        }
예제 #3
0
        public bool SendFilesRequest(out NSError error, string appId)
        {
            string  filename1  = "first.txt";
            NSData  data1      = new NSString("This is first.txt, the first test file to send.").Encode(NSStringEncoding.UTF8);
            NSError file1Error = null;
            bool    written    = GDFileSystem.WriteToFile(data1, filename1, out file1Error);

            if (!written)
            {
                Debug.WriteLine(String.Format("Error writing to {0}", filename1));
                error = null;
                return(false);
            }


            string  filename2  = "second.txt";
            NSData  data2      = new NSString("This is second.txt, the second test file to send.").Encode(NSStringEncoding.UTF8);
            NSError file2Error = null;

            written = GDFileSystem.WriteToFile(data2, filename2, out file2Error);

            if (!written)
            {
                Debug.WriteLine(String.Format("Error writing to {0}", filename2));
                error = null;
                return(false);
            }

            NSObject[] files = new NSObject[2] {
                new NSString(filename1), new NSString(filename2)
            };
            string requestId;

            return(GDServiceClient.SendTo(appId, kGreetingsServiceId, "1.0.0", "sendFiles", null, files, GDTForegroundOption.EPreferPeerInForeground, out requestId, out error));
        }
예제 #4
0
        public FileResult GetFileStat(string filePath)
        {
            GDFileStat fileStat = new GDFileStat();
            NSError    error;

            if (GDFileSystem.GetFileStat(filePath, ref fileStat, out error))
            {
                return(new FileResult()
                {
                    Filename = new NSString(filePath).LastPathComponent,
                    IsFolder = fileStat.isFolder
                });
            }
            else
            {
                if (error != null)
                {
                    Console.WriteLine("GetFileStat error domain={0} code={1:d} userinfo={2}",
                                      error.Domain, (long)error.Code,
                                      error.UserInfo.Description);
                }
            }

            return(null);
        }
        public override void WillDismiss(UIAlertView alertView, nint buttonIndex)
        {
            if (buttonIndex == 1)
            {
                //Cannot pass null in to an out parameter due to the architecture of C#. Pass dummy object instead.
                var err = new NSError();

                GDFileSystem.UploadLogs(out err);
            }
        }
        string SaveTextViewToFile()
        {
            NSError error = null;

            var fileData            = NSData.FromString(textView.Text);
            var paths               = NSSearchPath.GetDirectories(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User, true);
            var documentDirectory   = paths.ElementAt(0);
            var documentPathForFile = new NSString(documentDirectory).AppendPathComponent(new NSString("DataFile.txt")).ToString();

            GDFileSystem.WriteToFile(fileData, documentPathForFile, out error);

            return(documentPathForFile);
        }
예제 #7
0
        public bool RemoveFile(string filePath)
        {
            NSError error;
            var     result = GDFileSystem.RemoveItemAtPath(filePath, out error);

            if (!result && error != null)
            {
                Console.WriteLine("RemoveFile error domain={0} code={1:d} userinfo={2}",
                                  error.Domain, (long)error.Code, error.UserInfo.Description);
            }

            return(result);
        }
예제 #8
0
        public bool WriteToFile(NSData data, string fileName)
        {
            NSError error;
            var     result = GDFileSystem.WriteToFile(data, fileName, out error);

            if (!result && error != null)
            {
                Console.WriteLine("WriteToFile error domain={0} code={1:d} userinfo={2}",
                                  error.Domain, (long)error.Code,
                                  error.UserInfo.Description);
            }

            return(result);
        }
        private bool ProcessGreetingsService(string application, string service, string version, string method, Foundation.NSObject parameters, NSObject[] attachments, string requestID, out NSError goodError)
        {
            goodError = null;
            bool requestProcessed = false;

            if (String.Equals(version, "1.0.0"))
            {
                if (String.Equals(method, "greetMe"))
                {
                    requestProcessed = GDService.ReplyTo(application, new NSString("G'day mate!"), GDTForegroundOption.EPreferPeerInForeground, null, requestID, out goodError);
                }
                else if (String.Equals(method, "sendFiles"))
                {
                    StringBuilder fileString = new StringBuilder(20);
                    GDFileStat    fileStat   = new GDFileStat();
                    for (int i = 0; i < attachments.Length; i++)
                    {
                        NSString file  = (NSString)attachments [i];
                        NSError  error = null;
                        bool     ok    = GDFileSystem.GetFileStat(file, ref fileStat, out error);
                        fileString.AppendFormat("{0}: ", file);

                        if (ok && error == null)
                        {
                            goodError = null;
                            fileString.AppendFormat("{0} bytes; ", fileStat.fileLen);
                            NSData fileData = GDFileSystem.ReadFromFile(file, out error);
                            if (fileData != null && error != null)
                            {
                                Console.WriteLine(String.Format("Filepath: {0}", file));
                                string fileDataString = NSString.FromData(fileData, NSStringEncoding.UTF8);
                                Console.WriteLine(String.Format("File Contents: {0}", fileDataString));
                            }
                        }
                        else
                        {
                            goodError = error;
                            fileString.AppendFormat("Error: {0}", error.LocalizedDescription);
                        }
                    }

                    UIAlertView alertView = new UIAlertView("Recieved Files", fileString.ToString(), null, "OK", null);
                    alertView.Show();
                    requestProcessed = true;
                }
            }

            return(requestProcessed);
        }
예제 #10
0
        void DoneButton_Clicked(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(_requestId))
            {
                Console.WriteLine("Service has not connected to client");
                return;
            }

            NSError error = null;
            var     paths = NSSearchPath.GetDirectories(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User,
                                                        true);
            var documentPathForFile = new NSString(paths[0]).AppendPathComponent(
                new NSString("RespondDataFile.txt")).ToString();

            GDFileSystem.WriteToFile(NSData.FromString(textView.Text, NSStringEncoding.UTF8), documentPathForFile,
                                     out error);

            if (error == null)
            {
                var urlString = string.Format("{0}.sc2://", _application);
                var testUrl   = new NSUrl(urlString);
                if (!UIApplication.SharedApplication.CanOpenUrl(testUrl))
                {
                    Console.WriteLine("Client is not installed");
                    return;
                }

                bool replyResult = GDService.ReplyTo(_application, null, GDTForegroundOption.EPreferPeerInForeground,
                                                     new[] { new NSString(documentPathForFile) }, _requestId, out error);

                if (!replyResult)
                {
                    Console.WriteLine("Failed to get Reply");
                }

                if (error != null)
                {
                    Console.WriteLine("Failed to Reply: {0} {1:d} {2}", error.Domain, error.Code,
                                      error.LocalizedDescription);
                }
            }
            else
            {
                Console.WriteLine("Failed to write data to secure storage: {0}", error.LocalizedDescription);
            }
        }
        public override void DidFinishSendingTo(string application, NSObject[] attachments, NSObject parameters, string requestID)
        {
            Console.WriteLine("Send Finished");

            NSError error = null;

            if (!AttachmentsValid(attachments))
            {
                return;
            }

            var filePath = (NSString)attachments.ElementAtOrDefault(0);

            GDFileSystem.RemoveItemAtPath(filePath, out error);
            if (error != null)
            {
                Console.WriteLine("Cant delete old file - {0}", error.LocalizedDescription);
            }
        }
예제 #12
0
        public IList <string> FindSecureDocsAtPath(string currentPath)
        {
            NSError error;
            var     files = GDFileSystem.ContentsOfDirectoryAtPath(currentPath, out error)
                            .Select(r => new NSString(r.ToString())).ToList();

            if (files.Count > 0)
            {
                return(files.Select(str => str.ToString()).OrderBy(str => str).ToList());
            }
            else
            {
                if (error != null)
                {
                    Console.WriteLine("FindSecureDocsAtPath error domain={0} code={1:d} userinfo={2}", error.Domain,
                                      (long)error.Code, error.UserInfo.Description);
                }
            }

            return(new List <string>());
        }
예제 #13
0
 public bool CreateDirectory(string path, bool withIntermediateDirectories, NSDictionary attributes, NSError error)
 {
     return(GDFileSystem.CreateDirectoryAtPath(path, withIntermediateDirectories, attributes, out error));
 }
예제 #14
0
 public bool FileExists(string filePath, bool isDirectory)
 {
     return(GDFileSystem.FileExistsAtPath(filePath, isDirectory));
 }
예제 #15
0
 public NSData ReadFile(string fileName, NSError error)
 {
     return(GDFileSystem.ReadFromFile(fileName, out error));
 }