iSpyApplication.MainForm.GetObjects C# (CSharp) Method

GetObjects() public static method

public static GetObjects ( string path ) : objects
path string
return objects
        public static objects GetObjects(string path)
        {
            var c = new objects();
            try
            {
                lock (ThreadLock)
                {
                    using (var fs = new FileStream(path, FileMode.Open))
                    {
                        var s = new XmlSerializer(typeof (objects));
                        using (TextReader reader = new StreamReader(fs))
                        {
                            fs.Position = 0;
                            c = (objects) s.Deserialize(reader);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.LogExceptionToFile(ex);
                switch (MessageBox.Show($"Error loading file ({ex.Message}) Try again?", "Error", MessageBoxButtons.YesNo))
                {
                    case DialogResult.Yes:
                        return GetObjects(path);
                }
            }

            if (c.cameras==null)
                c.cameras = new objectsCamera[] {};

            bool addActions = c.actions == null;
            if (addActions)
                c.actions = new objectsActions { entries = new objectsActionsEntry[] { } };

            bool addSchedule = c.schedule == null;
            if (addSchedule)
                c.schedule = new objectsSchedule {entries = new objectsScheduleEntry[] {}};

            if (c.cameras.Select(oc => oc.settings.desktopresizewidth).Any(rw => rw == 0))
            {
                throw new Exception("err_old_config");
            }

            if (c.microphones==null)
                c.microphones = new objectsMicrophone[] {};
            if (c.floorplans == null)
                c.floorplans = new objectsFloorplan[] {};

            if (c.remotecommands == null)
                c.remotecommands = new objectsCommand[] {};

            if (c.remotecommands.Length == 0)
            {
                c.remotecommands = GenerateRemoteCommands();
            }

            bool bVlc = VlcHelper.VlcInstalled;
            MaxOrderIndex = 0;

            bool bAlertVlc = false;
            int camid = 0;
            string path2;
            //load non clones first
            c.cameras = c.cameras.ToList().OrderByDescending(p => p.settings.sourceindex != 10).ToArray();
            c.microphones = c.microphones.ToList().OrderByDescending(p => p.settings.typeindex != 5).ToArray();

            foreach (objectsCamera cam in c.cameras)
            {
                if (cam.id >= camid)
                    camid = cam.id + 1;
                if (cam.settings.order == -1)
                {
                    cam.settings.order = MaxOrderIndex;
                    MaxOrderIndex++;
                }

                path2 = Helper.GetMediaDirectory(cam.settings.directoryIndex) + "video\\" + cam.directory + "\\";
                if (cam.settings.sourceindex == 5 && !bVlc)
                {
                    bAlertVlc = true;
                }
                if (cam.settings.youtube == null)
                {
                    cam.settings.youtube = new objectsCameraSettingsYoutube
                            {
                                category = Conf.YouTubeDefaultCategory,
                                tags = "iSpy, Motion Detection, Surveillance",
                                @public = true
                            };
                }
                if (cam.ptzschedule == null)
                {
                    cam.ptzschedule = new objectsCameraPtzschedule
                            {
                                active = false,
                                entries = new objectsCameraPtzscheduleEntry[] {}
                            };
                }
                if (cam.settings.storagemanagement == null)
                {
                    cam.settings.storagemanagement = new objectsCameraSettingsStoragemanagement
                            {
                                enabled = false,
                                maxage = 72,
                                maxsize = 1024

                            };
                }
                bool migrate = false;
                if (cam.alertevents == null)
                {
                    cam.alertevents = new objectsCameraAlertevents();
                    migrate = true;
                }

                if (cam.settings.cloudprovider==null)
                    cam.settings.cloudprovider = new objectsCameraSettingsCloudprovider();

                if (cam.alertevents.entries == null)
                    cam.alertevents.entries = new objectsCameraAlerteventsEntry[] {};

                if (migrate)
                {
                    var l = new List<objectsCameraAlerteventsEntry>();
                    if (!string.IsNullOrEmpty(cam.alerts.executefile))
                    {
                        l.Add(new objectsCameraAlerteventsEntry
                                {
                                    type = "Exe",
                                    param1 = cam.alerts.executefile,
                                    param2 = cam.alerts.arguments
                                });
                    }
                    if (cam.notifications.sendemail)
                    {
                        l.Add(new objectsCameraAlerteventsEntry
                                {
                                    type = "E",
                                    param1 = cam.settings.emailaddress,
                                    param2 = "True"
                                });
                    }
                    if (cam.notifications.sendsms)
                    {
                        l.Add(new objectsCameraAlerteventsEntry {type = "SMS", param1 = cam.settings.smsnumber});
                    }
                    if (cam.alerts.maximise)
                    {
                        l.Add(new objectsCameraAlerteventsEntry {type = "M"});
                    }
                    if (!string.IsNullOrEmpty(cam.alerts.playsound))
                    {
                        l.Add(new objectsCameraAlerteventsEntry {type = "S", param1 = cam.alerts.playsound});
                    }

                    string[] alertOptions = cam.alerts.alertoptions.Split(','); //beep,restore

                    if (Convert.ToBoolean(alertOptions[0]))
                        l.Add(new objectsCameraAlerteventsEntry {type = "B"});
                    if (Convert.ToBoolean(alertOptions[1]))
                        l.Add(new objectsCameraAlerteventsEntry {type = "SW"});

                    if (cam.notifications.sendtwitter)
                    {
                        l.Add(new objectsCameraAlerteventsEntry {type = "TM"});
                    }

                    if (!string.IsNullOrEmpty(cam.alerts.trigger))
                    {
                        l.Add(new objectsCameraAlerteventsEntry {type = "TA", param1 = cam.alerts.trigger});
                    }
                    cam.alertevents.entries = l.ToArray();

                }

                if (addActions)
                {
                    var l = c.actions.entries.ToList();
                    l.AddRange(cam.alertevents.entries.Select(a => new objectsActionsEntry
                                                                    {
                                                                        mode = "alert",
                                                                        objectid = cam.id,
                                                                        objecttypeid = 2,
                                                                        type = a.type,
                                                                        param1 = a.param1,
                                                                        param2 = a.param2,
                                                                        param3 = a.param3,
                                                                        param4 = a.param4,
                                                                        ident = Guid.NewGuid().ToString()
                    }));
                    if (!string.IsNullOrEmpty(cam.settings.emailondisconnect))
                    {
                        l.Add(new objectsActionsEntry
                        {
                            mode = "disconnect",
                            objectid = cam.id,
                            objecttypeid = 2,
                            type = "E",
                            param1 = cam.settings.emailondisconnect,
                            param2 = "False",
                            ident = Guid.NewGuid().ToString()
                        });
                    }
                    c.actions.entries = l.ToArray();
                }

                cam.newrecordingcount = 0;
                if (cam.settings.maxframerate == 0)
                    cam.settings.maxframerate = 10;
                if (cam.settings.maxframeraterecord == 0)
                    cam.settings.maxframeraterecord = 10;
                if (cam.settings.timestampfontsize == 0)
                    cam.settings.timestampfontsize = 10;
                if (cam.recorder.timelapsesave == 0)
                    cam.recorder.timelapsesave = 60;

                if (cam.x < 0)
                    cam.x = 0;
                if (cam.y < 0)
                    cam.y = 0;

                if (cam.detector.minwidth == 0)
                {
                    cam.detector.minwidth = 20;
                    cam.detector.minheight = 20;
                    cam.detector.highlight = true;
                    cam.settings.reconnectinterval = 0;
                }
                if (cam.settings.accessgroups == null)
                    cam.settings.accessgroups = "";
                if (cam.settings.ptztimetohome == 0)
                    cam.settings.ptztimetohome = 100;
                if (cam.settings.ptzautohomedelay == 0)
                    cam.settings.ptzautohomedelay = 30;
                if (cam.settings.ptzurlbase == null)
                    cam.settings.ptzurlbase = "";
                if (cam.settings.audioport <= 0)
                    cam.settings.audioport = 80;
                if (cam.ftp.intervalnew < 0)
                    cam.ftp.intervalnew = cam.ftp.interval;

                if (cam.ftp.server.Length>10)
                {
                    var ftp = Conf.FTPServers.FirstOrDefault(p => p.name == cam.ftp.server && p.username==cam.ftp.username);
                    if (ftp == null)
                    {
                        ftp = new configurationServer
                                {
                                    ident = Guid.NewGuid().ToString(),
                                    name=cam.ftp.server,
                                    password = cam.ftp.password,
                                    port = cam.ftp.port,
                                    rename = cam.ftp.rename,
                                    server = cam.ftp.server,
                                    usepassive = cam.ftp.usepassive,
                                    username = cam.ftp.username
                                };
                        var l = Conf.FTPServers.ToList();
                        l.Add(ftp);
                        Conf.FTPServers = l.ToArray();
                        cam.ftp.ident = ftp.ident;
                        cam.ftp.server = "";
                    }
                }

                if (Conf.MediaDirectories.FirstOrDefault(p => p.ID == cam.settings.directoryIndex) == null)
                    cam.settings.directoryIndex = Conf.MediaDirectories.First().ID;

                if (string.IsNullOrEmpty(cam.settings.emailondisconnect))
                {
                    if (cam.settings.notifyondisconnect)
                    {
                        cam.settings.emailondisconnect = cam.settings.emailaddress;
                    }
                }

                cam.detector.type = cam.detector.type.Replace("Modelling", "Modeling");//fix typo

                if (cam.recorder.quality == 0)
                    cam.recorder.quality = 8;
                if (cam.recorder.timelapseframerate == 0)
                    cam.recorder.timelapseframerate = 5;

                if (cam.detector.movementintervalnew < 0)
                    cam.detector.movementintervalnew = cam.detector.movementinterval;

                if (cam.detector.nomovementintervalnew < 0)
                    cam.detector.nomovementintervalnew = cam.detector.nomovementinterval;

                if (cam.directory == null)
                    throw new Exception("err_old_config");

                if (string.IsNullOrEmpty(cam.settings.ptzpelcoconfig))
                    cam.settings.ptzpelcoconfig = "COM1|9600|8|One|Odd|1";

                if (cam.savelocal == null)
                {
                    cam.savelocal = new objectsCameraSavelocal
                                    {
                                        counter = cam.ftp.counter,
                                        countermax = cam.ftp.countermax,
                                        mode = cam.ftp.mode,
                                        enabled = cam.ftp.savelocal,
                                        filename = cam.ftp.localfilename,
                                        intervalnew = cam.ftp.intervalnew,
                                        minimumdelay = cam.ftp.minimumdelay,
                                        quality = cam.ftp.quality,
                                        text = cam.ftp.text

                                    };
                }

                if (cam.alerts.processmode == null)
                    cam.alerts.processmode = "continuous";
                if (cam.alerts.pluginconfig == null)
                    cam.alerts.pluginconfig = "";
                if (cam.ftp.quality == 0)
                    cam.ftp.quality = 75;

                if (cam.ftp.countermax == 0)
                    cam.ftp.countermax = 20;

                if (cam.settings.audiousername == null)
                {
                    cam.settings.audiousername = "";
                    cam.settings.audiopassword = "";
                }

                if (string.IsNullOrEmpty(cam.settings.timestampforecolor) || cam.settings.timestampforecolor == "0")
                {
                    cam.settings.timestampforecolor = "255,255,255";
                }

                if (string.IsNullOrEmpty(cam.settings.timestampbackcolor) || cam.settings.timestampbackcolor == "0")
                {
                    cam.settings.timestampbackcolor = "70,70,70";
                }

                if (Math.Abs(cam.detector.minsensitivity - 0) < double.Epsilon)
                {
                    cam.detector.maxsensitivity = 100;
                    //fix for old setting conversion
                    cam.detector.minsensitivity = 100 - cam.detector.sensitivity;

                    if (Math.Abs(cam.detector.minsensitivity - 100) < double.Epsilon)
                    {
                        cam.detector.minsensitivity = 20;
                    }
                }

                if (cam.detector.minsensitivity > cam.detector.maxsensitivity)
                {
                    //reset
                    cam.detector.maxsensitivity = 100;
                    cam.detector.minsensitivity = 20;
                }

                if (!Directory.Exists(path2))
                {
                    try
                    {
                        Directory.CreateDirectory(path2);
                    }
                    catch (IOException e)
                    {
                        Logger.LogExceptionToFile(e);
                    }
                }

                if (string.IsNullOrEmpty(cam.ftp.localfilename))
                {
                    cam.ftp.localfilename = "{0:yyyy-MM-dd_HH-mm-ss_fff}.jpg";
                }

                if (string.IsNullOrEmpty(cam.settings.audiomodel))
                    cam.settings.audiomodel = "None";

                if (string.IsNullOrEmpty(cam.settings.timestampfont))
                {
                    cam.settings.timestampfont = FontXmlConverter.ConvertToString(Drawfont);
                    cam.settings.timestampshowback = true;
                }

                path2 = Helper.GetMediaDirectory(cam.settings.directoryIndex) + "video\\" + cam.directory + "\\thumbs\\";
                if (!Directory.Exists(path2))
                {
                    try
                    {
                        Directory.CreateDirectory(path2);
                    }
                    catch
                    {
                        // ignored
                    }
                }

                path2 = Helper.GetMediaDirectory(cam.settings.directoryIndex) + "video\\" + cam.directory + "\\grabs\\";
                if (!Directory.Exists(path2))
                {
                    try
                    {
                        Directory.CreateDirectory(path2);
                    }
                    catch
                    {
                        // ignored
                    }
                }
                if (cam.alerts.trigger == null)
                    cam.alerts.trigger = "";

                if (string.IsNullOrEmpty(cam.rotateMode))
                {
                    cam.rotateMode = "RotateNoneFlipNone";
                    if (cam.rotate90)
                    {
                        cam.rotateMode = RotateFlipType.Rotate90FlipNone.ToString();
                    }
                    if (cam.flipx)
                    {
                        cam.rotateMode = RotateFlipType.RotateNoneFlipX.ToString();
                    }
                    if (cam.flipy)
                    {
                        cam.rotateMode = RotateFlipType.RotateNoneFlipY.ToString();
                    }
                    if (cam.flipx && cam.flipy)
                    {
                        cam.rotateMode = RotateFlipType.RotateNoneFlipXY.ToString();
                    }
                }
                if (cam.settings.pip == null)
                {
                    cam.settings.pip = new objectsCameraSettingsPip {enabled = false, config = ""};
                }
            }
            int micid = 0;
            foreach (objectsMicrophone mic in c.microphones)
            {
                if (mic.id >= micid)
                    micid = mic.id + 1;

                if (mic.settings.order == -1)
                {
                    mic.settings.order = MaxOrderIndex;
                    MaxOrderIndex++;
                }

                if (mic.directory == null)
                    throw new Exception("err_old_config");
                mic.newrecordingcount = 0;
                path2 = Helper.GetMediaDirectory(mic.settings.directoryIndex) + "audio\\" + mic.directory + "\\";
                if (!Directory.Exists(path2))
                    Directory.CreateDirectory(path2);

                if (mic.settings.accessgroups == null)
                    mic.settings.accessgroups = "";

                if (mic.settings.storagemanagement == null)
                {
                    mic.settings.storagemanagement = new objectsMicrophoneSettingsStoragemanagement
                    {
                        enabled = false,
                        maxage = 72,
                        maxsize = 1024

                    };
                }
                if (Math.Abs(mic.detector.minsensitivity - (-1)) < double.Epsilon)
                {
                    mic.detector.minsensitivity = mic.detector.sensitivity;
                    mic.detector.maxsensitivity = 100;
                }
                if (mic.detector.minsensitivity > mic.detector.maxsensitivity)
                {
                    //reset
                    mic.detector.maxsensitivity = 100;
                    mic.detector.minsensitivity = 20;
                }

                if (Conf.MediaDirectories.FirstOrDefault(p => p.ID == mic.settings.directoryIndex) == null)
                    mic.settings.directoryIndex = Conf.MediaDirectories.First().ID;

                bool migrate = false;
                if (mic.alertevents == null)
                {
                    mic.alertevents = new objectsMicrophoneAlertevents();
                    migrate = true;
                }
                if (mic.alertevents.entries == null)
                {
                    mic.alertevents.entries = new objectsMicrophoneAlerteventsEntry[] { };
                }

                if (migrate)
                {
                    var l = new List<objectsMicrophoneAlerteventsEntry>();
                    if (!string.IsNullOrEmpty(mic.alerts.executefile))
                    {
                        l.Add(new objectsMicrophoneAlerteventsEntry { type = "Exe", param1 = mic.alerts.executefile, param2 = mic.alerts.arguments });
                    }
                    if (mic.notifications.sendemail)
                    {
                        l.Add(new objectsMicrophoneAlerteventsEntry { type = "E", param1 = mic.settings.emailaddress, param2 = "True" });
                    }
                    if (mic.notifications.sendsms)
                    {
                        l.Add(new objectsMicrophoneAlerteventsEntry { type = "SMS", param1 = mic.settings.smsnumber });
                    }

                    string[] alertOptions = mic.alerts.alertoptions.Split(','); //beep,restore

                    if (Convert.ToBoolean(alertOptions[0]))
                        l.Add(new objectsMicrophoneAlerteventsEntry { type = "B" });
                    if (Convert.ToBoolean(alertOptions[1]))
                        l.Add(new objectsMicrophoneAlerteventsEntry { type = "SW" });

                    if (mic.notifications.sendtwitter)
                    {
                        l.Add(new objectsMicrophoneAlerteventsEntry { type = "TM" });
                    }

                    if (!string.IsNullOrEmpty(mic.alerts.trigger))
                    {
                        l.Add(new objectsMicrophoneAlerteventsEntry { type = "TA", param1 = mic.alerts.trigger });
                    }
                    mic.alertevents = new objectsMicrophoneAlertevents() {entries = l.ToArray()};
                }

                if (string.IsNullOrEmpty(mic.settings.emailondisconnect))
                {
                    if (mic.settings.notifyondisconnect)
                    {
                        mic.settings.emailondisconnect = mic.settings.emailaddress;
                    }
                }

                if (addActions)
                {
                    var l = c.actions.entries.ToList();
                    l.AddRange(mic.alertevents.entries.Select(a => new objectsActionsEntry
                    {
                        mode = "alert",
                        objectid = mic.id,
                        objecttypeid = 1,
                        type = a.type,
                        param1 = a.param1,
                        param2 = a.param2,
                        param3 = a.param3,
                        param4 = a.param4,
                        ident = Guid.NewGuid().ToString()

                    }));
                    if (!string.IsNullOrEmpty(mic.settings.emailondisconnect))
                    {
                        l.Add(new objectsActionsEntry
                                {
                                    mode = "disconnect",
                                    objectid = mic.id,
                                    objecttypeid = 1,
                                    type = "E",
                                    param1 = mic.settings.emailondisconnect,
                                    param2 = "False",
                                    ident = Guid.NewGuid().ToString()
                        });
                    }
                    c.actions.entries = l.ToArray();
                }

                if (mic.x < 0)
                    mic.x = 0;
                if (mic.y < 0)
                    mic.y = 0;

                if (mic.settings.gain <= 0)
                    mic.settings.gain = 1;

                if (mic.alerts.trigger == null)
                    mic.alerts.trigger = "";
            }

            foreach (var aa in c.actions.entries)
            {
                if (string.IsNullOrEmpty(aa.ident))
                    aa.ident = Guid.NewGuid().ToString();
            }
            int fpid = 0;
            foreach (objectsFloorplan ofp in c.floorplans)
            {
                if (ofp.id >= fpid)
                    fpid = ofp.id + 1;

                if (ofp.x < 0)
                    ofp.x = 0;
                if (ofp.y < 0)
                    ofp.y = 0;
                if (ofp.accessgroups == null)
                    ofp.accessgroups = "";

                if (ofp.order == -1)
                {
                    ofp.order = MaxOrderIndex;
                    MaxOrderIndex++;
                }
            }

            int rcid = 0;
            foreach (objectsCommand ocmd in c.remotecommands)
            {
                if (ocmd.id >= rcid)
                    rcid = ocmd.id + 1;
            }

            if (addSchedule)
            {
                var l = new List<objectsScheduleEntry>();
                foreach (var o in c.cameras)
                {
                    foreach (var se in o.schedule.entries)
                    {
                        for (int i = 0; i < 10; i++)
                        {
                            bool startSpecified = se.start.Split(':')[0] != "-";
                            bool stopSpecified = se.stop.Split(':')[0] != "-";
                            if (!startSpecified && !stopSpecified)
                                continue;

                            var ose = new objectsScheduleEntry
                                      {
                                          objectid = o.id,
                                          objecttypeid = 2,
                                          daysofweek = se.daysofweek,
                                          active = se.active,
                                          parameter = "",
                                          typeid = -1,
                                          time = ParseTime(startSpecified ? se.start : se.stop)
                                      };

                            switch (i)
                            {
                                case 0: //power on
                                    if (startSpecified)
                                        ose.typeid = 0;
                                    break;
                                case 1: //power off
                                    if (stopSpecified)
                                    {
                                        ose.time = ParseTime(se.stop);
                                        ose.typeid = 1;
                                    }
                                    break;
                                case 2:
                                    ose.typeid = se.alerts ? 7 : 8;
                                    break;
                                case 3:
                                    ose.typeid = se.ftpenabled ? 13 : 14;
                                    break;
                                case 4:
                                    ose.typeid = se.messaging ? 21 : 22;
                                    break;
                                case 5:
                                    ose.typeid = se.ptz ? 19 : 20;
                                    break;
                                case 6:
                                    if (se.recordonalert)
                                        ose.typeid = 5;
                                    else
                                    {
                                        ose.typeid = se.recordondetect ? 4 : 6;
                                    }
                                    break;
                                case 7:
                                    if (se.recordonstart)
                                        ose.typeid = 2;
                                    break;
                                case 8:
                                    ose.typeid = se.savelocalenabled ? 17 : 18;
                                    break;
                                case 9:
                                    ose.typeid = se.timelapseenabled ? 11 : 12;
                                    break;
                            }
                            if (ose.typeid > -1)
                                l.Add(ose);
                        }
                    }
                }

                foreach (var o in c.microphones)
                {
                    foreach (var se in o.schedule.entries)
                    {
                        for (int i = 0; i < 10; i++)
                        {
                            var ose = new objectsScheduleEntry
                                      {
                                          objectid = o.id,
                                          objecttypeid = 1,
                                          daysofweek = se.daysofweek,
                                          active = se.active,
                                          parameter = "",
                                          typeid = -1
                                      };
                            bool startSpecified = se.start.Split(':')[0] != "-";
                            bool stopSpecified = se.stop.Split(':')[0] != "-";
                            ose.time = ParseTime(startSpecified ? se.start : se.stop);
                            switch (i)
                            {
                                case 0: //power on
                                    if (startSpecified)
                                        ose.typeid = 0;
                                    break;
                                case 1: //power off
                                    if (stopSpecified)
                                    {
                                        ose.time = ParseTime(se.stop);
                                        ose.typeid = 1;
                                    }
                                    break;
                                case 2:
                                    ose.typeid = se.alerts ? 7 : 8;
                                    break;
                                case 4:
                                    ose.typeid = se.messaging ? 21 : 22;
                                    break;
                                case 6:
                                    if (se.recordonalert)
                                        ose.typeid = 5;
                                    else
                                    {
                                        ose.typeid = se.recordondetect ? 4 : 6;
                                    }
                                    break;
                                case 7:
                                    if (se.recordonstart)
                                        ose.typeid = 2;
                                    break;
                            }
                            if (ose.typeid > -1)
                                l.Add(ose);
                        }
                    }
                }

                c.schedule = new objectsSchedule() {entries = l.ToArray()};
            }

            if (bAlertVlc)
            {
                MessageBox.Show(Program.Platform == "x64"
                    ? LocRm.GetString("InstallVLCx64")
                        .Replace("[DIR]", Environment.NewLine + Program.AppPath + "VLC64" + Environment.NewLine)
                    : LocRm.GetString("InstallVLCx86"));
                OpenUrl(Program.Platform == "x64" ? VLCx64 : VLCx86);
            }
            SaveConfig();
            NeedsSync = true;
            Logger.LogMessageToFile("Loaded " + c.cameras.Length + " cameras, " + c.microphones.Length + " mics and " + c.floorplans.Length + " floorplans");
            return c;
        }

Usage Example

Exemplo n.º 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            using (var ofd = new OpenFileDialog())
            {
                ofd.InitialDirectory = _lastPath;
                ofd.Filter           = "iSpy Files (*.ispy)|*.ispy|XML Files (*.xml)|*.xml";
                if (ofd.ShowDialog(this) == DialogResult.OK)
                {
                    string fileName = ofd.FileName;
                    try
                    {
                        var fi = new FileInfo(fileName);
                        _lastPath = fi.DirectoryName;
                    }
                    catch
                    {
                    }


                    if (fileName.Trim() != "")
                    {
                        try
                        {
                            _c = MainForm.GetObjects(fileName.Trim());
                            ListObjects(_c);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message, LocRm.GetString("Error"));
                        }
                    }
                }
            }
        }
MainForm