private void Parse_MigrationCSVFile()
        {
            bool  needIndexes    = true;
            sbyte nameIndex      = -1;
            sbyte computeIndex   = -1;
            sbyte datastoreIndex = -1;

            MigrationGridList.Clear();

            if (!File.Exists(_MigrationCSVFile))
            {
                MigrationLogger.Error("{0}: File not found.", _MigrationCSVFile);
                return;
            }

            var lines = File.ReadLines(_MigrationCSVFile, Encoding.UTF8);

            foreach (var line in lines)
            {
                var columns = line.Split(',');
                if (needIndexes)
                {
                    foreach (var col in columns)
                    {
                        if (col.TrimStart('"').TrimEnd('"').ToUpper() == "NAME")
                        {
                            nameIndex = (sbyte)Array.IndexOf(columns, col);
                        }
                        if (col.TrimStart('"').TrimEnd('"').ToUpper() == "DESTINATIONSTORAGE")
                        {
                            datastoreIndex = (sbyte)Array.IndexOf(columns, col);
                        }
                        if (col.TrimStart('"').TrimEnd('"').ToUpper() == "DESTINATIONCOMPUTE")
                        {
                            computeIndex = (sbyte)Array.IndexOf(columns, col);
                        }
                    }
                    if (nameIndex != -1 && computeIndex != -1 && datastoreIndex != -1)
                    {
                        needIndexes = false;
                    }
                    MigrationLogger.Trace("Reading CSV File: Name index = {0}; DestinationCompute index = {1}; DestinationStorage index = {2}", nameIndex, computeIndex, datastoreIndex);
                }
                else
                {
                    GridRow vm = new GridRow();
                    vm.Name = columns[nameIndex].TrimStart('"').TrimEnd('"');
                    vm.DestinationStorage = columns[datastoreIndex].TrimStart('"').TrimEnd('"');
                    vm.DestinationCompute = columns[computeIndex].TrimStart('"').TrimEnd('"');
                    vm.State    = "waiting";
                    vm.Progress = 0;
                    MigrationGridList.Add(vm);
                    MigrationLogger.Trace("{0}: items in migrationList", MigrationGridList.Count);
                }
            }
            txtMigrationStatus.Text     = "Ready to migrate " + MigrationGridList.Count().ToString() + " VMs";
            btnStartMigration.IsEnabled = true;
        }
示例#2
0
 public void Clear()
 {
     Reimport = true;
     ImportGridList.Clear();
     GridList.Clear();
 }