LongoMatch.Services.ToolsManager.ImportProject C# (CSharp) Method

ImportProject() private method

private ImportProject ( ImportProjectEvent e ) : void
e ImportProjectEvent
return void
        void ImportProject(ImportProjectEvent e)
        {
            ProjectLongoMatch project;
            ProjectImporter importer;
            IStorage DB = App.Current.DatabaseManager.ActiveDB;

            Log.Debug ("Importing project");
            /* try to import the project and show a message error is the file
             * is not a valid project */
            try {
                if (ProjectImporters.Count () == 0) {
                    throw new Exception (Catalog.GetString ("Plugin not found"));
                } else if (ProjectImporters.Count () == 1) {
                    importer = ProjectImporters.First ();
                } else {
                    importer = ChooseImporter (ProjectImporters);
                }

                if (importer == null) {
                    return;
                }

                project = importer.ImportFunction () as ProjectLongoMatch;
                if (project == null) {
                    return;
                }
                if (importer.NeedsEdition) {
                    App.Current.StateController.MoveTo (NewProjectState.NAME, project);
                } else {
                    /* If the project exists ask if we want to overwrite it */
                    if (!importer.CanOverwrite && DB.Exists (project)) {
                        var res = App.Current.Dialogs.QuestionMessage (Catalog.GetString ("A project already exists for this ID:") +
                                  project.ID + "\n" +
                                  Catalog.GetString ("Do you want to overwrite it?"), null).Result;
                        if (!res)
                            return;
                    }
                    DB.Store<ProjectLongoMatch> (project, true);
                    App.Current.EventsBroker.Publish<OpenProjectIDEvent> (
                        new OpenProjectIDEvent {
                            ProjectID = project.ID,
                            Project = project
                        }
                    );
                }
            } catch (Exception ex) {
                App.Current.Dialogs.ErrorMessage (Catalog.GetString ("Error importing project:") +
                "\n" + ex.Message);
                Log.Exception (ex);
                return;
            }
        }