示例#1
0
        public void CreateLandMark([FromBody] LandmarkDto landMark)
        {
            var obj = landMark;//JsonConvert.DeserializeObject<LandMark>(landMark.ToString());

            if (obj != null)
            {
                _landmarkServices.CreateLandMark(obj.longitude, obj.latitude, user.ToString());
            }
        }
示例#2
0
        private LandmarkDto TryGetLandmarkById(int id)
        {
            Landmark             retrieved     = landmarks.GetById(id);
            ICollection <string> currentImages = retrieved.Images;

            ICollection <string> currentAudios = retrieved.Audios;

            LandmarkDto dto = ConvertToDto(retrieved);

            return(dto);
        }
示例#3
0
        private ICollection <LandmarkDto> GetLandmarkDtos(ICollection <Landmark> retrievedLandmarks)
        {
            ICollection <LandmarkDto> result = new List <LandmarkDto>();

            foreach (Landmark current in retrievedLandmarks)
            {
                LandmarkDto dto = ConvertToDto(current);
                result.Add(dto);
            }
            return(result);
        }
        public void ShouldReturnLandmarkOfIdGivenFromRepository()
        {
            int         id        = 2;
            Landmark    fake      = GetFakeLandmarks().First(l => l.Id == id);
            LandmarkDto retrieved = service.GetLandmarkById(id);

            landmarks.Verify(l => l.GetById(id), Times.Once);
            Assert.AreEqual(fake.Title, retrieved.Title);
            Assert.AreEqual(fake.Description, retrieved.Description);
            Assert.AreEqual(fake.Audios.Count, retrieved.AudioFiles.Count);
        }
        public void ShouldReturnTheLandmarkWithTheIdInGET()
        {
            int id = 2;

            IActionResult  result   = controller.Get(id);
            OkObjectResult ok       = result as OkObjectResult;
            LandmarkDto    landmark = ok.Value as LandmarkDto;

            fakeLandmarksService.Verify(r => r.GetLandmarkById(id), Times.Once);
            Assert.IsNotNull(result);
            Assert.IsNotNull(ok);
            Assert.AreEqual(200, ok.StatusCode);
            Assert.IsNotNull(landmark);
        }
        public IActionResult Get(int id)
        {
            IActionResult result;

            try
            {
                LandmarkDto retrieved = landmarks.GetLandmarkById(id);
                result = Ok(retrieved);
            }
            catch (ServiceException e)
            {
                result = errorFactory.GenerateError(e);
            }
            return(result);
        }
        public void ShouldReturnTheDtosAsRetrieved()
        {
            double centerLat = -34.912127;
            double centerLng = -56.167283;

            IActionResult      result        = controller.Get(centerLat, centerLng, 2);
            OkObjectResult     ok            = result as OkObjectResult;
            List <LandmarkDto> landmarks     = ok.Value as List <LandmarkDto>;
            LandmarkDto        firstLandmark = landmarks[0];

            Assert.AreEqual(1, firstLandmark.Id);
            Assert.AreEqual("Landmark 1", firstLandmark.Title);
            Assert.AreEqual(-34.912126, firstLandmark.Latitude);
            Assert.AreEqual(-56.167282, firstLandmark.Longitude);
            Assert.AreEqual("image1", firstLandmark.ImageFiles.First());
        }
示例#8
0
        private LandmarkDto GetLandmark(string url)
        {
            var document = this.context.OpenAsync(url).GetAwaiter().GetResult();

            if (document.StatusCode == System.Net.HttpStatusCode.NotFound)
            {
                Console.WriteLine($"Not found url({url})");
                throw new InvalidOperationException();
            }

            var landmark = new LandmarkDto();

            // Get name
            var landmarkNames = document.QuerySelectorAll(".title > h1");

            foreach (var item in landmarkNames)
            {
                var landmarkName = item.TextContent;
                landmark.Name = landmarkName;
            }

            // Get landmark model elements
            var ladmarkModelElements = document.QuerySelectorAll(".list-table > ul > li > span");

            var categoryName = ladmarkModelElements[0].TextContent;

            landmark.CategoryName = categoryName;

            var regionName = ladmarkModelElements[1].TextContent;

            landmark.RegionName = regionName;

            var townName = ladmarkModelElements[2].TextContent;

            landmark.TownName = townName;

            var mountainName = ladmarkModelElements[3].TextContent;

            landmark.MountainName = mountainName;

            var    coordinates = ladmarkModelElements[4].TextContent.Split(", ");
            double latitude    = double.Parse(coordinates[0]);
            double longitude   = double.Parse(coordinates[1]);

            landmark.Latitude  = latitude;
            landmark.Longitute = longitude;

            var website = ladmarkModelElements[5].TextContent;

            landmark.Websate = website;

            var address = ladmarkModelElements[6].TextContent;

            landmark.Address = address;

            var phone = ladmarkModelElements[7].TextContent;

            landmark.PhoneNumber = phone;

            var workTime = ladmarkModelElements[8].TextContent;

            landmark.WorkTime = workTime;

            var daysOff = ladmarkModelElements[9].TextContent;

            landmark.DayOff = daysOff;

            var    entranceFeeAsString = ladmarkModelElements[10].TextContent.Split(' ');
            double entranceFee         = 0;
            bool   isThereFee          = double.TryParse(entranceFeeAsString[0], out entranceFee);

            landmark.EntranceFee = isThereFee ? entranceFee : 0;

            var accessibility = document.QuerySelectorAll(".list-table > ul > li > span > em.rating");

            foreach (var item in accessibility)
            {
                var currentAccessibility = int.Parse(item.GetAttribute("data-score"));
                landmark.Difficulty = 6 - currentAccessibility;
            }

            // Get description
            var landmarkDescription = document.QuerySelectorAll(".post > .entry > p");

            StringBuilder sb = new StringBuilder();

            foreach (var item in landmarkDescription)
            {
                sb.AppendLine(item.TextContent);
            }

            var allDescripition = sb.ToString().TrimEnd();

            landmark.Description = allDescripition;

            // Get images
            var imagesUrl = document.QuerySelectorAll(".gallery-slides div.gallery-slide");

            foreach (var imageUrl in imagesUrl)
            {
                var curentImageContent = imageUrl.GetAttribute("style");
                var curentImageUrl     = curentImageContent.Split("url(")[1];
                curentImageUrl = curentImageUrl.TrimEnd(')');
                LandmarkImage image = new LandmarkImage
                {
                    RemoteImageUrl = curentImageUrl,
                };
                landmark.Images.Add(image);
            }

            return(landmark);
        }