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); }
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); }
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))); } } }
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); }
/// <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; } }