Akamai.NetStorage.CMS.execute C# (CSharp) Метод

execute() статический приватный Метод

static private execute ( string action, string user, string key, string netstorageURI, string uploadfile, string outputfile, string target, string dst, bool indexZip ) : void
action string
user string
key string
netstorageURI string
uploadfile string
outputfile string
target string
dst string
indexZip bool
Результат void
        static void execute(string action, string user, string key, string netstorageURI,
            string uploadfile, string outputfile, string target, string dst, bool indexZip)
        {
            if (action == null || netstorageURI == null || user == null || key == null)
            {
                help();
                return;
            }

            string[] hostpath = netstorageURI.Split("/".ToCharArray(), 2);
            string host = hostpath[0];
            string path = hostpath[1];
            NetStorage ns = new NetStorage(host, user, key);
            Stream result = null;
            bool success = true;

            switch (action)
            {
                case "delete":
                    success = ns.Delete(path);
                    break;
                case "quickdelete":
                    success = ns.QuickDelete(path);
                    break;
                case "dir":
                    result = ns.Dir(path);
                    break;
                case "download":
                    result = ns.Download(path);
                    break;
                case "du":
                    result = ns.DU(path);
                    break;
                case "mkdir":
                    success = ns.MkDir(path);
                    break;
                case "mtime":
                    success = ns.MTime(path);
                    break;
                case "rename":
                    if (dst == null)
                    {
                        help();
                        return;
                    }
                    success = ns.Rename(path, dst);
                    break;
                case "rmdir":
                    success = ns.RmDir(path);
                    break;
                case "stat":
                    result = ns.Stat(path);
                    break;
                case "symlink":
                    if (target == null)
                    {
                        help();
                        return;
                    }
                    success = ns.Symlink(path, target);
                    break;
                case "upload":
                    if (uploadfile == null)
                    {
                        help();
                        return;
                    }
                    success = ns.Upload(path, new FileInfo(uploadfile), indexZip);
                    break;
                default:
                    help();
                    return;
            }

            if (result != null)
            {
                Stream output = Console.OpenStandardOutput();
                if (outputfile != null)
                    output = new FileInfo(outputfile).OpenWrite();

                using (output)
                {
                    using (result)
                    {
                        byte[] buffer = new byte[32*1024];
                        int bytesRead = 0;

                        while ((bytesRead = result.Read(buffer, 0, buffer.Length)) != 0)
                        {
                            output.Write(buffer, 0, bytesRead);
                        }
                    }
                }
            }
            else if (success)
                Console.Out.WriteLine("Success.");
            else
                Console.Error.WriteLine("Error.");
        }