Example #1
0
        public override object InternalExecute(Program program, object[] arguments)
        {
            FrontendDevice device = FrontendDevice.GetFrontendDevice(program);

            if (arguments[2] is string)
            {
                device.SaveDocument(program, (string)arguments[0], (string)arguments[1], (string)arguments[2]);
            }
            else
            {
                Stream stream =
                    (
                        arguments[2] is byte[]
                                                ? new Scalar(program.ValueManager, program.DataTypes.SystemBinary, arguments[2])
                                                : new Scalar(program.ValueManager, program.DataTypes.SystemBinary, (StreamID)arguments[2])
                    ).OpenStream();
                try
                {
                    device.SaveBinary(program, (string)arguments[0], (string)arguments[1], stream);
                }
                finally
                {
                    stream.Close();
                }
            }
            return(null);
        }