Пример #1
0
        internal DeliveryTestBase()
        {
            var parser     = new StreetSpecificationParser();
            var factory    = new DeliveryFactory();
            var fileResult = parser.ParseStreetSpecification("..\\..\\SpecificationExamples\\street1.txt");

            DeliveryMethod = factory.CreateDeliveryMethod <T>(fileResult.StreetSpecification);
        }
Пример #2
0
        public ActionResult Index(HttpPostedFileBase specificationFile)
        {
            if (specificationFile == null)
            {
                return(View("Index", new Report {
                    Message = "No file was selected"
                }));
            }

            var uploadDirectory = Server.MapPath(ConfigurationManager.AppSettings["SpecificationDirectory"]);

            if (!Directory.Exists(uploadDirectory))
            {
                Directory.CreateDirectory(uploadDirectory);
            }

            var fileName = $"{Guid.NewGuid()}.txt";
            var filePath = Path.Combine(uploadDirectory, fileName);

            specificationFile.SaveAs(filePath);

            var model = new Report();

            var fileResult = new StreetSpecificationParser().ParseStreetSpecification(filePath);

            System.IO.File.Delete(filePath);

            if (!fileResult.Valid)
            {
                model.Valid   = false;
                model.Message = fileResult.Message;

                return(View("Index", model));
            }

            if (!fileResult.StreetSpecification.Valid)
            {
                model.Valid   = false;
                model.Message = fileResult.StreetSpecification.Message;
                return(View("Index", model));
            }

            model.Valid       = true;
            model.TotalHouses = fileResult.StreetSpecification.Houses.Count;
            model.LeftHouses  = fileResult.StreetSpecification.LeftHouses.Count;
            model.RightHouses = fileResult.StreetSpecification.RightHouses.Count;


            model.ClockwiseDeliveryMethod =
                _deliveryFactory.CreateDeliveryMethod <ClockwiseDeliveryMethod>(fileResult.StreetSpecification);
            model.AlternateDeliveryMethod =
                _deliveryFactory.CreateDeliveryMethod <AlternateDeliveryMethod>(fileResult.StreetSpecification);

            return(View("Index", model));
        }
Пример #3
0
        public ValidSpecificationFileUploaded()
        {
            var parser = new StreetSpecificationParser();

            _fileResult = parser.ParseStreetSpecification("..\\..\\SpecificationExamples\\ValidSpecificationFile.txt");
        }
Пример #4
0
        public FileIsEmpty()
        {
            var parser = new StreetSpecificationParser();

            _fileResult = parser.ParseStreetSpecification("..\\..\\SpecificationExamples\\Empty.txt");
        }
Пример #5
0
        public NumbersDescending()
        {
            var parser = new StreetSpecificationParser();

            _fileResult = parser.ParseStreetSpecification("..\\..\\SpecificationExamples\\DescendingHouses.txt");
        }
Пример #6
0
        public FileMutlipleLines()
        {
            var parser = new StreetSpecificationParser();

            _fileResult = parser.ParseStreetSpecification("..\\..\\SpecificationExamples\\FileMutlipleLines.txt");
        }
Пример #7
0
        public NumberIsRepeated()
        {
            var parser = new StreetSpecificationParser();

            _fileResult = parser.ParseStreetSpecification("..\\..\\SpecificationExamples\\NumberIsRepeated.txt");
        }
Пример #8
0
 public FileDoesNotExist()
 {
     _parser = new StreetSpecificationParser();
 }
        public NonNumericCharacters()
        {
            var parser = new StreetSpecificationParser();

            _fileResult = parser.ParseStreetSpecification("..\\..\\SpecificationExamples\\NonNumericCharacters.txt");
        }