Example #1
0
        private bool FindSolution(ProjectDescription description, out SolutionDescription solutionDescription)
        {
            var parentDirecotry = new FileInfo(description.FullName).Directory.Parent;

            while (parentDirecotry != null)
            {
                var solutions = parentDirecotry.GetFiles().Where(p => p.FullName.EndsWith(".sln"));
                if (solutions.Any())
                {
                    foreach (var item in solutions)
                    {
                        var prjlist = _solutionParser.Parser(item.FullName);
                        if (prjlist.Any(p => $"{{{p.Guid.ToString().ToLower()}}}" == description.ProjectGuid.ToLower()))
                        {
                            solutionDescription = new SolutionDescription {
                                FullName = item.FullName, Location = item.Directory, Name = item.Name
                            };
                            return(true);
                        }
                    }
                }
                parentDirecotry = parentDirecotry.Parent;
            }
            solutionDescription = null;
            return(false);
        }
Example #2
0
 public void WriteSolutionToFile(SolutionDescription _solutionDescription, string path)
 {
     try
     {
         StreamWriter streamWriter = new StreamWriter(path);
         for (int i = 0; i < _solutionDescription.m_permutation.Length; i++)
         {
             if (_solutionDescription.m_permutation[i].Length == 0)
             {
                 streamWriter.WriteLine("Vehicle {0} has no clients to visit.", i);
             }
             else
             {
                 streamWriter.WriteLine("Vehicle {0} visits clients:", i);
                 foreach (int client in _solutionDescription.m_permutation[i])
                 {
                     streamWriter.WriteLine("    {0}", client);
                 }
             }
         }
         streamWriter.WriteLine();
         streamWriter.WriteLine("Total cost: {0}", _solutionDescription.m_result);
         streamWriter.Close();
     }
     catch (Exception exception)
     {
         Console.WriteLine(exception.ToString());
     }
 }
Example #3
0
        public void BuildSimpleSolutionWithDescriptionMissingProperty()
        {
            var builder = new ProjectSolutionBuilder();

            //Description is null
            Assert.Throws <ArgumentNullException>(() => builder.WithSolutionDescription(null));
            var description = new SolutionDescription();

            //Author is null
            Assert.Throws <ArgumentNullException>(() => builder.WithSolutionDescription(description));
            description.Author = "Patrick Trautmann";

            //Name is null
            Assert.Throws <ArgumentNullException>(() => builder.WithSolutionDescription(description));
            description.Name = "Testprojekt";

            //Version is null
            Assert.Throws <ArgumentNullException>(() => builder.WithSolutionDescription(description));
        }
Example #4
0
        private void ReceiveSolutionInfo(ulong _id)
        {
            var solutionInfo = DeserializeMessage <Solutions>(Receive());

            solutions = solutionInfo.Solutions1;
            if (solutions != null && solutions[0].Type == SolutionsSolutionType.Final && solutions[0].TaskIdSpecified == false)
            {
                m_requestTimer.Stop();                                                      //zapis danych na dysku
                SolutionDescription             solutionDescription             = SerializeToClass <SolutionDescription>(solutions[0].Data);
                SolutionDescriptionToFileParser solutionDescriptionToFileParser = new SolutionDescriptionToFileParser();
                m_des = SerializeToClass <DVRPDescription>(solutionInfo.CommonData);
                Console.WriteLine("Received Problem Solution Id = {0}.", solutionInfo.Id);
                Console.WriteLine("Write name of the file for solution (MAX 15 characters)");
                string solutionFileName = Console.ReadLine();
                if (solutionFileName.Length == 0)
                {
                    solutionFileName = "Result File";
                }
                solutionFileName = solutionFileName.Substring(0, solutionFileName.Length < 15 ? solutionFileName.Length : 15);
                int[][] x = m_sol = solutionDescription.m_permutation;
                //solutionDescriptionToFileParser.WriteSolutionToFile(solutionDescription, solutionFileName + ".txt");
                solutionDescriptionToFileParser.WriteSolutionToFile(solutionDescription.m_permutation, solutionDescription.m_result, solutionFileName + ".txt");
                Console.WriteLine("Solution saved correctly in file " + solutionFileName);
                Console.WriteLine("Would you like to see the visualisation? [y/n]");
                string visualisationChoice = Console.ReadLine();
                if (visualisationChoice.Length > 0 && (visualisationChoice[0] == 'y' || visualisationChoice[0] == 'Y'))
                {
                    Thread t = new Thread(new ThreadStart(ShowVisualisation));
                    t.Start();
                }
                Console.WriteLine("Work done. Good bye!");
                Console.ReadLine();
                waiting.Release();
            }
            else
            {
                Console.WriteLine("We haven't result yet");
            }
        }
Example #5
0
 private void ValidateDescription(SolutionDescription description)
 {
     Assert.IsTrue(description.Author.Equals("Patrick Trautmann"));
     Assert.IsTrue(description.Name.Equals("Sample Project"));
     Assert.IsTrue(description.SolutionVersion.Equals(new ProjectVersion(1, 0, 0)));
 }