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)); }
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)); }
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)); }
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)); }
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); }
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)); }
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)); }
private PointOfInterest DtoToEntityMapper(PoiViewModel poiViewModel) { var pointOfInterest = _config.CreateMapper().Map <PointOfInterest>(poiViewModel); return(pointOfInterest); }