Zetbox.Client.Presentables.ZetboxBase.InstanceListViewModel.Export C# (CSharp) Method

Export() public method

public Export ( ) : void
return void
        public void Export()
        {
            SetBusy(string.Format(InstanceListViewModelResources.ExportBusyMessageFormat, 1));

            var tmpFile = tmpService.CreateWithExtension("_Export.csv"); // Excel can't open two files with the same name, located in another folder!
            StreamWriter sw;
            // http://stackoverflow.com/questions/545666/how-to-translate-ms-windows-os-version-numbers-into-product-names-in-net
            if (Environment.OSVersion.Platform == PlatformID.Win32NT && Environment.OSVersion.Version.Major <= 5) // assuming Windox XP or lower
                sw = new StreamWriter(tmpFile, false, Encoding.Default);
            else
                sw = new StreamWriter(tmpFile, false, Encoding.UTF8); // use this constructor to ensure BOM

            var cols = DisplayedColumns.Columns
                    .Where(i => i.Type != ColumnDisplayModel.ColumnType.MethodModel)
                    .ToList();
            // Header
            sw.WriteLine(string.Join(";",
                cols.Select(i => i.Header).ToArray()));

            var unpagedQuery = GetUnpagedQuery();

            GetPagedQuery(0, Helper.MAXLISTCOUNT, unpagedQuery)
                .OnError(ex => OnExportPageError(sw, ex))
                .OnResult(OnExportPageResultFactory(sw, cols, 0, Helper.MAXLISTCOUNT, unpagedQuery, tmpFile));
        }