コード例 #1
0
        private async Task <TranslatorSolution> LoadSolution(string fileLocation)
        {
            TranslatorSolution solution = null;

            if (mProcessItems.SetIsProcessingSolution(true, mLoadSolutionProcessID) == false)
            {
                throw new Exception(string.Format(Local.Strings.STR_BLOCKED_SOLUTION_TASK, mProcessItems.CurrentProcessId));
            }

            try
            {
                var solFacade = new PersistSolutionModelInXML();
                solution = await solFacade.LoadSolutionAsync(fileLocation);

                var settings = GetService <ISettingsManager>();
                settings.SessionData.SetLastActiveSolution(fileLocation);
            }
            finally
            {
                if (solution == null)
                {
                    solution = new TranslatorSolution();
                }

                if (mProcessItems.SetIsProcessingSolution(false, mLoadSolutionProcessID) == false)
                {
                    ViewException.SetExceptionForDisplay(new Exception(string.Format(Local.Strings.STR_FAILED_RESET_OF_SOLUTION_TASK,
                                                                                     mProcessItems.CurrentProcessId)));
                }
            }

            return(solution);
        }
コード例 #2
0
ファイル: UnitTest.cs プロジェクト: johnmbaughman/Locult
        public void TestXMLInternediateReadWithPoco()
        {
            var solution = new TranslatorSolution();

            solution.SetName("My TestSolution");
            solution.SetComment("This is test solution for testing purposes only");

            var project = new Project();

            project.SetSourceFile(new FileReference(@"C:\TEMP\Source.resx",
                                                    "RESX",
                                                    "This is a test source file comment"));

            project.AddTargetFile(new FileReference(@"C:\TEMP\Source_DE_DE.resx",
                                                    "RESX",
                                                    "This is a test target file comment"));

            solution.AddProject(project);

            // Persist content into string
            var modelExtension = new PersistSolutionModelInXML();
            var XML            = modelExtension.GetXMLString(solution);

            var XMLStringSource = new ModelToXML();
            var XML1            = XMLStringSource.ToString(solution);

            Assert.AreEqual(string.Compare(XML, XML1), 0);
        }
コード例 #3
0
        private async Task <bool> SaveSolutionAsync(string fileLocation, TranslatorSolution solution)
        {
            if (mProcessItems.SetIsProcessingSolution(true, mSaveSolutionProcessID) == false)
            {
                throw new Exception(string.Format(LocultApp.Local.Strings.STR_BLOCKED_SOLUTION_TASK,
                                                  mProcessItems.CurrentProcessId));
            }

            try
            {
                var modelExt = new PersistSolutionModelInXML();
                var result   = await modelExt.SaveSolutionAsync(solution, fileLocation);

                var settings = GetService <ISettingsManager>();
                settings.SessionData.SetLastActiveSolution(fileLocation);

                return(result);
            }
            finally
            {
                if (mProcessItems.SetIsProcessingSolution(false, mSaveSolutionProcessID) == false)
                {
                    ViewException.SetExceptionForDisplay(new Exception(string.Format(Local.Strings.STR_FAILED_RESET_OF_SOLUTION_TASK, mProcessItems.CurrentProcessId)));
                }
            }
        }
コード例 #4
0
ファイル: UnitTest.cs プロジェクト: johnmbaughman/Locult
        public void TestXMLReadWriteWithPoco()
        {
            var solution = new TranslatorSolution();

            solution.SetName("My TestSolution");
            solution.SetComment("This is test solution for testing purposes only");

            var project = new Project();

            project.SetSourceFile(new FileReference(@"C:\TEMP\Source.resx",
                                                    "RESX",
                                                    "This is a test source file comment"));

            project.AddTargetFile(new FileReference(@"C:\TEMP\Source_DE_DE.resx",
                                                    "RESX",
                                                    "This is a test target file comment"));

            solution.AddProject(project);

            // Persist content into string
            var modelExtension = new PersistSolutionModelInXML();
            var XML            = modelExtension.GetXMLString(solution);

            var loadedSolution = new PersistSolutionModelInXML();

            TranslatorSolutionLib.Models.TranslatorSolution sol = new TranslatorSolutionLib.Models.TranslatorSolution();

            // Retrieve content back into object values and check if this worked as expected
            Assert.AreEqual(loadedSolution.SetXMLString(XML, sol), true);
        }
コード例 #5
0
        /// <summary>
        /// editPage.Solution.Root.ItemPathName
        /// </summary>
        /// <param name="filePathName"></param>
        /// <returns></returns>
        private async void SaveSolution(string filePathName,
                                        TranslatorSolution solutionModel,
                                        SolutionViewModel solutionViewModel = null)
        {
            try
            {
                // Copy solution and compute relative paths
                var copy = solutionModel.CopySolution(filePathName);

                // save data to persistence
                this.IsProcessing = true;

                if (mProcessItems.SetIsProcessingSolution(true, mSaveSolutionProcessID) == false)
                {
                    throw new Exception(string.Format(Local.Strings.STR_BLOCKED_SOLUTION_TASK, mProcessItems.CurrentProcessId));
                }

                try
                {
                    var modelExt = new PersistSolutionModelInXML();
                    var result   = await modelExt.SaveSolutionAsync(copy, filePathName);

                    if (solutionViewModel != null)
                    {
                        solutionViewModel.Root.SolutionIsDirty_Reset();
                    }
                }
                finally
                {
                    if (mProcessItems.SetIsProcessingSolution(false, mSaveSolutionProcessID) == false)
                    {
                        ViewException.SetExceptionForDisplay(new Exception(string.Format(Local.Strings.STR_FAILED_RESET_OF_SOLUTION_TASK, mProcessItems.CurrentProcessId)));
                    }
                }
            }
            catch (System.Exception exp)
            {
                ViewException.SetExceptionForDisplay(exp);
            }
            finally
            {
                this.IsProcessing = false;
            }
        }