Example #1
0
        public ActionResult Poi(int?id, int?elementoID)
        {
            var viewModel = new PoiViewModel();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (id != null)
            {
                ViewBag.PoiID       = id.Value;
                viewModel.Poi       = db.Poi.Find(id);
                viewModel.Elementos = viewModel.Poi.elementos;
            }

            if (elementoID != null)
            {
                ViewBag.ElementoID            = elementoID.Value;
                viewModel.ElementoSelecionado = db.Elemento.Find(elementoID);
            }

            if (viewModel == null)
            {
                return(HttpNotFound());
            }
            return(View(viewModel));
        }
        public IActionResult Edit(Guid id, [Bind("Name,Description,Lat,Long")] PoiViewModel poi)
        {
            var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <PoiViewModel, Poi>();
            });
            IMapper mapper = config.CreateMapper();

            var concretePoi = _poiRepository.GetById(id);

            mapper.Map(poi, concretePoi);
            if (ModelState.IsValid)
            {
                try
                {
                    _poiRepository.Update(concretePoi);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PoiExists(id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(concretePoi));
        }
Example #3
0
        public ActionResult Create(PoiViewModel poiViewModel)
        {
            var lePoi        = poiViewModel.PoiVm;
            var fileName     = "";
            var fileSavePath = "";
            var uploadedFile = poiViewModel.file;

            fileName     = Path.GetFileName(uploadedFile.FileName).Replace(uploadedFile.FileName, lePoi.Description);
            fileName     = fileName + ".css";
            fileSavePath = Server.MapPath("/Content/GPX/" + fileName);

            if (ModelState.IsValid)
            {
                //on ajoute la description du Pois en BDD
                db.Pois.Add(lePoi);
                db.SaveChanges();
                // si la sauvegarde en bdd est bonne on retourne le dernier id
                if (poiViewModel.PoiVm.Id > 0)
                {
                    //on enregistre le fichier
                    uploadedFile.SaveAs(fileSavePath);
                }
                return(RedirectToAction("Index"));
            }

            return(View(poiViewModel.PoiVm));
        }
        public ActionResult Details(int id)
        {
            PointOfInterest poi = unitOfWork.PoiRepository.Find(x => x.Id == id, null, "Location,User, Location.Coordinates").FirstOrDefault();

            if (poi == null || (poi.Status != Status.Approved && !Request.IsAuthenticated))
            {
                return(View("NotFound"));
            }

            IEnumerable <Hashtag> hashtags;

            PoiViewModel result = Mapper.Map <PoiViewModel>(poi);

            if (Request.IsAuthenticated)
            {
                var userId = identity.GetUserId();
                result.IsOwner = poi.IsOwner(userId);
                //so vamos mostrar as hashtags criadas pelo user
                hashtags = unitOfWork.HashtagRepository.Find(x => x.PointOfInterestId == poi.Id && x.UserId == userId);
            }
            else
            {
                hashtags = unitOfWork.HashtagRepository.GetAll();
            }

            List <HashtagViewModel> tagResult = Mapper.Map <List <HashtagViewModel> >(hashtags);

            result.Hashtags = tagResult;

            return(View("Details", result));
        }
        public ActionResult Edit(int id)
        {
            PointOfInterest poi = unitOfWork.PoiRepository.Find(x => x.Id == id, null, "Location,User, Location.Coordinates").FirstOrDefault();

            if (poi.UserId != identity.GetUserId())
            {
                return(View("NotFound"));
            }

            if (poi == null)
            {
                return(View("NotFound"));
            }

            var userId = identity.GetUserId();
            //so vamos mostrar as hashtags criadas pelo user
            var hashtags = unitOfWork.HashtagRepository.Find(x => x.PointOfInterestId == poi.Id && x.UserId == userId);

            PoiViewModel            result    = Mapper.Map <PoiViewModel>(poi);
            List <HashtagViewModel> tagResult = Mapper.Map <List <HashtagViewModel> >(hashtags);

            result.Hashtags = tagResult;

            return(View(result));
        }
        public IHttpActionResult Put(int id, PoiViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != viewModel.Id)
            {
                return(BadRequest());
            }

            PointOfInterest p = Mapper.Map <PointOfInterest>(viewModel);

            try
            {
                unitOfWork.PoiRepository.Update(p);
                unitOfWork.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (unitOfWork.PoiRepository.Get(id) == null)
                {
                    return(NotFound());
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Example #7
0
        public async Task <IActionResult> Edit(Guid id, [Bind("Id,Name,Description")] PoiViewModel poiModel)
        {
            if (id != poiModel.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                var poi = new Poi
                {
                    Id          = poiModel.Id,
                    Name        = poiModel.Name,
                    Description = poiModel.Description
                };

                try
                {
                    _repo.Update(poi);
                    _repo.Save();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!(await PoiExists(poiModel.Id)))
                    {
                        return(NotFound());
                    }

                    throw;
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(poiModel));
        }
Example #8
0
        public async Task <IActionResult> Edit(Guid id, [Bind("Id,Name,Description,Latitude,Longitude,City")] PoiViewModel poiViewModel)
        {
            if (id != poiViewModel.Id)
            {
                return(NotFound());
            }

            var pointOfInterest = DtoToEntityMapper(poiViewModel);

            if (ModelState.IsValid)
            {
                try
                {
                    await _repository.Update(pointOfInterest);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PointOfInterestExists(pointOfInterest.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(poiViewModel));
        }
 public IActionResult Create([Bind("Name,Description,Lat,Long")] PoiViewModel poi)
 {
     if (ModelState.IsValid)
     {
         Poi concretePoi = new Poi(poi.Name, poi.Description, poi.Lat, poi.Long);
         _poiRepository.Create(concretePoi);
         return(RedirectToAction(nameof(Index)));
     }
     return(NoContent());
 }
        public IHttpActionResult Get(int id)
        {
            PointOfInterest p = unitOfWork.PoiRepository.Find(x => x.Id == id, null, "Location,Location.Coordinates,Hashtags").FirstOrDefault();

            if (p == null)
            {
                return(NotFound());
            }

            PoiViewModel result = Mapper.Map <PoiViewModel>(p);

            return(Ok(result));
        }
Example #11
0
        public async Task <IActionResult> Create([Bind("Name,Description,Latitude,Longitude,City")] PoiViewModel poiViewModel)
        {
            if (ModelState.IsValid)
            {
                var pointOfInterest = DtoToEntityMapper(poiViewModel);

                await _repository.Create(pointOfInterest);

                return(RedirectToAction(nameof(Index)));
            }

            return(View(poiViewModel));
        }
        public ActionResult Edit(PoiViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                PointOfInterest poi = unitOfWork.PoiRepository.Find(x => x.Id == viewModel.Id, null, "Hashtags").FirstOrDefault();

                string userId = identity.GetUserId();

                var entityTags = poi.Hashtags.Where(x => x.UserId == userId).ToList();

                foreach (var item in entityTags)
                {
                    unitOfWork.HashtagRepository.Delete(item);
                }

                if (!string.IsNullOrEmpty(viewModel.HashtagString))
                {
                    string[] vmTags = viewModel.HashtagString.Split(',');

                    foreach (var tag in vmTags)
                    {
                        unitOfWork.HashtagRepository.Insert(new Hashtag(tag, poi.Id, userId));
                    }
                }

                poi.Description = viewModel.Description;

                if (viewModel.BusinessHoursFromHour.HasValue)
                {
                    poi.BusinessHours.FromHour = viewModel.BusinessHoursFromHour.Value;
                }
                if (viewModel.BusinessHoursToHour.HasValue)
                {
                    poi.BusinessHours.ToHour = viewModel.BusinessHoursToHour.Value;
                }

                //TODO: alterar a location
                if (viewModel.TimeTovisit.HasValue)
                {
                    poi.TimeTovisit = viewModel.TimeTovisit.Value;
                }

                unitOfWork.SaveChanges();

                return(RedirectToAction("Index"));
            }

            return(View(viewModel));
        }
        private PoiViewModel GetDemoPoi(int id)
        {
            var poi = this.uow.PoiRepository.Get(id);

            var vm = new PoiViewModel
            {
                Id            = poi.Id,
                BusinessHours = poi.BusinessHours,
                Description   = poi.Description,
                Location      = null,
                Status        = poi.Status,
                TimeTovisit   = poi.TimeTovisit
            };

            return(vm);
        }
Example #14
0
 public IActionResult Create([Bind("Id,Name,Description")] PoiViewModel poiModel)
 {
     if (ModelState.IsValid)
     {
         var poi = new Poi
         {
             Id          = Guid.NewGuid(),
             Name        = poiModel.Name,
             Description = poiModel.Description
         };
         _repo.Create(poi);
         _repo.Save();
         return(RedirectToAction(nameof(Index)));
     }
     return(View(poiModel));
 }
        public IHttpActionResult Delete(int id)
        {
            PointOfInterest p = unitOfWork.PoiRepository.Find(x => x.Id == id, null, "Location,Location.Coordinates").FirstOrDefault();

            if (p == null)
            {
                return(NotFound());
            }

            PoiViewModel vm = Mapper.Map <PoiViewModel>(p);

            unitOfWork.PoiRepository.Delete(p);
            unitOfWork.SaveChanges();

            return(Ok(vm));
        }
Example #16
0
        public async Task <IActionResult> Edit(Guid id)
        {
            var poi = await _repo.GetById <Poi>(id);

            if (poi == null)
            {
                return(NotFound());
            }

            PoiViewModel poiModel = new PoiViewModel
            {
                Description = poi.Description,
                Name        = poi.Name
            };

            return(View(poiModel));
        }
        public ActionResult Delete(int id)
        {
            PointOfInterest poi = unitOfWork.PoiRepository.Find(x => x.Id == id, null, "Location,User, Location.Coordinates").FirstOrDefault();

            if (poi == null)
            {
                ViewBag.Id = id;

                return(View("NotFound"));
            }

            if (!poi.IsOwner(identity.GetUserId()))
            {
                return(View("NotFound"));
            }

            PoiViewModel result = Mapper.Map <PoiViewModel>(poi);

            return(View(result));
        }
        public IHttpActionResult Post(PoiViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (viewModel == null)
            {
                return(BadRequest(ModelState));
            }

            PointOfInterest p = new PointOfInterest(viewModel.Location.Id, viewModel.Description, viewModel.BusinessHours, viewModel.TimeTovisit, RequestContext.Principal.Identity.GetUserId());

            //p.UserId = RequestContext.Principal.Identity.GetUserId();

            unitOfWork.PoiRepository.Insert(p);
            unitOfWork.SaveChanges();

            viewModel.Id = p.Id;

            return(CreatedAtRoute("DefaultApi", new { id = viewModel.Id }, viewModel));
        }
        public IHttpActionResult Reject(int id)
        {
            PointOfInterest p = unitOfWork.PoiRepository.Find(x => x.Id == id, null, "Location,Location.Coordinates").FirstOrDefault();

            if (p == null)
            {
                return(NotFound());
            }

            if (p.Status != Status.Pending)
            {
                return(StatusCode(HttpStatusCode.NoContent));
            }

            p.Reject();

            unitOfWork.PoiRepository.Update(p);
            unitOfWork.SaveChanges();

            PoiViewModel vm = Mapper.Map <PoiViewModel>(p);

            return(Ok(vm));
        }
Example #20
0
        private PointOfInterest DtoToEntityMapper(PoiViewModel poiViewModel)
        {
            var pointOfInterest = _config.CreateMapper().Map <PointOfInterest>(poiViewModel);

            return(pointOfInterest);
        }