Ejemplo n.º 1
0
        public async Task <ActionResult> Comment(POIViewModel model)
        {
            CheckForReadOnly();

            var comment = model.NewComment;

            if (ModelState.IsValid)
            {
                try
                {
                    using (var userManager = new UserManager())
                    {
                        var user = userManager.GetUser((int)UserID);
                        if (comment.Rating == 0)
                        {
                            comment.Rating = null;
                        }

                        if (await new SubmissionManager().PerformSubmission(comment, user) > 0)
                        {
                            if (comment.ChargePointID > 0)
                            {
                                return(RedirectToAction("Details", "POI", new { id = comment.ChargePointID }));
                            }
                            else
                            {
                                return(RedirectToAction("Index"));
                            }
                        }
                    }
                }
                catch
                {
                    //return View(poi);
                }
            }
            else
            {
                foreach (var modelState in ViewData.ModelState.Values)
                {
                    foreach (var error in modelState.Errors)
                    {
                        System.Diagnostics.Debug.WriteLine(error.ToString());
                    }
                }
                return(View("AddComment", model));
            }
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 2
0
        public void buildPOIViewModel(POIViewModel poiModel, POI pOI, List <POI> poiList)
        {
            poiModel.poi = pOI;

            ConnectedPOIViewModel poiSelectedModel   = new ConnectedPOIViewModel();
            IEnumerable <int>     selectedItemsArray = pOI.ConnectedPOIs.Select(x => x.POIID).ToArray();

            ViewBag.Selected = selectedItemsArray;

            poiSelectedModel.SelectedItemIds = selectedItemsArray;

            poiSelectedModel.Items = poiList;

            poiModel.connectedPoi = poiSelectedModel;
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> Edit(int id, [Bind(Include = "POIID,Name,Description,OpenHour,CloseHour,VisitDuration,GPS_Lat,GPS_Long,Altitude,Creator,Approved,ConnectedPOIs,Hashtags")] POI pOI)
        {
            POIViewModel poiModel = new POIViewModel();
            List <POI>   poiList  = await getPOIList(null);

            POI poiAux = new POI();

            foreach (POI p in poiList)
            {
                if (p.POIID == pOI.POIID)
                {
                    poiAux = p;
                }
            }

            poiList.Remove(poiAux);

            var connectedForm = Request.Form["connectedPoi.SelectedItemIds"];

            parseConnectedPOIs(pOI, connectedForm);

            string openHour = Request.Form["poi.OpenHour"];

            pOI.OpenHour = Convert.ToDateTime(openHour);

            string closeHour = Request.Form["poi.CloseHour"];

            pOI.CloseHour = Convert.ToDateTime(closeHour);

            buildPOIViewModel(poiModel, pOI, poiList);

            pOI.Hashtags = poiAux.Hashtags;

            var responseHttp = await client.PutAsJsonAsync("api/POI/" + id, pOI);

            if (responseHttp.IsSuccessStatusCode)
            {
                return(RedirectToAction("Index"));
            }

            return(View(poiModel));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Add(POIViewModel poiVM)
        {
            try
            {
                var poi = POI.GetPOI(poiVM);
                poi.Activated    = false;
                poi.CreationDate = DateTime.Now;
                AddDefinedTag(poiVM.Segments, poi);
                AddDefinedTag(poiVM.Tecnologies, poi);
                await CreateImageAsync(poi);

                _context.POIs.Add(poi);
                await _context.SaveChangesAsync();

                return(Json(new { status = "OK" }));
            }
            catch (Exception e) {
                return(Json(new { status = "BAD", message = e.Message }));
            }
        }
Ejemplo n.º 5
0
        public ActionResult AddComment(int id)
        {
            var cpManager = new API.Common.POIManager();
            var poi       = cpManager.Get(id, true);

            POIViewModel viewModel = new POIViewModel();

            viewModel.NewComment = new UserComment()
            {
                ChargePointID = poi.ID, CommentType = new UserCommentType {
                    ID = 10
                }, CheckinStatusType = new CheckinStatusType {
                    ID = 0
                }
            };
            viewModel.POI = poi;

            ViewBag.ReferenceData = new POIBrowseModel();

            return(View(viewModel));
        }
Ejemplo n.º 6
0
        // GET: POI/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            POI pOI = await getPOIByID(id);

            if (pOI == null)
            {
                return(HttpNotFound());
            }

            POIViewModel poiModel = new POIViewModel();
            List <POI>   poiList  = await getPOIList(pOI.POIID);

            buildPOIViewModel(poiModel, pOI, poiList);

            return(View(poiModel));
        }
Ejemplo n.º 7
0
        public async Task <ActionResult> AddComment(int id)
        {
            ViewBag.IsReadOnlyMode = this.IsReadOnlyMode;

            var cpManager = new API.Common.POIManager();
            var poi       = await cpManager.Get(id, true);

            POIViewModel viewModel = new POIViewModel();

            viewModel.NewComment = new UserComment()
            {
                ChargePointID = poi.ID, CommentType = new UserCommentType {
                    ID = 10
                }, CheckinStatusType = new CheckinStatusType {
                    ID = 0
                }
            };
            viewModel.POI = poi;

            ViewBag.ReferenceData = new POIBrowseModel(GetCoreReferenceData());

            return(View(viewModel));
        }
Ejemplo n.º 8
0
        // GET: /POI/Details/5

        //[OutputCache(Duration=240, VaryByParam="id")]
        public async Task <ActionResult> Details(int id = 0, string layout = null, string status = null)
        {
            if (id <= 0)
            {
                return(RedirectToAction("Index"));
            }

            if (status != null)
            {
                ViewBag.Status = status;
            }

            OCM.API.Common.POIManager cpManager = new API.Common.POIManager();
            POIViewModel viewModel = new POIViewModel();

            var poi = await cpManager.Get(id, true, allowDiskCache : false, allowMirrorDB : true);

            if (poi != null)
            {
                ViewBag.FullTitle = "Location Details: OCM-" + poi.ID + " " + poi.AddressInfo.Title;

                List <LocationImage> imageList = null; // new OCM.MVC.App_Code.GeocodingHelper().GetGeneralLocationImages((double)poi.AddressInfo.Latitude, (double)poi.AddressInfo.Longitude);

                if (imageList != null)
                {
                    imageList         = imageList.Where(i => i.Width >= 500).ToList();
                    ViewBag.ImageList = imageList.ToList();
                }

                viewModel.POI = poi;

                if (!IsRequestByRobot)
                {
                    viewModel.NewComment = new UserComment()
                    {
                        ChargePointID = poi.ID, CommentType = new UserCommentType {
                            ID = 10
                        }, CheckinStatusType = new CheckinStatusType {
                            ID = 0
                        }
                    };

                    System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
                    sw.Start();
                    viewModel.POIListNearby = (await cpManager.GetPOIListAsync(new APIRequestParams {
                        MaxResults = 10, Latitude = poi.AddressInfo.Latitude, Longitude = poi.AddressInfo.Longitude, Distance = 15, DistanceUnit = DistanceUnit.Miles, AllowMirrorDB = true
                    })).ToList();
                    viewModel.POIListNearby.RemoveAll(p => p.ID == poi.ID); //don't include the current item in nearby POI list
                    sw.Stop();
                    System.Diagnostics.Debug.WriteLine(sw.ElapsedMilliseconds);

                    ViewBag.ReferenceData = new POIBrowseModel(await GetCoreReferenceDataAsync());

                    //get data quality report

                    //if (IsUserAdmin)
                    //{
                    viewModel.DataQualityReport = new DataAnalysisManager().GetDataQualityReport(poi);
                    //}

                    ViewBag.UserCanEditPOI = false;
                    if (IsUserSignedIn)
                    {
                        var user = new UserManager().GetUser((int)UserID);
                        if (POIManager.CanUserEditPOI(poi, user))
                        {
                            ViewBag.UserCanEditPOI = true;
                        }
                    }
                }
                else
                {
                    viewModel.POIListNearby = new List <ChargePoint>();
                }
            }

            return(View(viewModel));
        }
Ejemplo n.º 9
0
        //
        // GET: /POI/Details/5

        //[OutputCache(Duration=240, VaryByParam="id")]
        public ActionResult Details(int id = 0, string layout = null, string status = null)
        {
            if (id <= 0)
            {
                return(RedirectToAction("Index"));
            }

            if (status != null)
            {
                ViewBag.Status = status;
            }

            OCM.API.Common.POIManager cpManager = new API.Common.POIManager();

            var poi = cpManager.Get(id, true, allowDiskCache: false, allowMirrorDB: true);

            ViewBag.FullTitle = "Location Details: OCM-" + poi.ID + " " + poi.AddressInfo.Title;

            List <LocationImage> imageList = null; // new OCM.MVC.App_Code.GeocodingHelper().GetGeneralLocationImages((double)poi.AddressInfo.Latitude, (double)poi.AddressInfo.Longitude);

            if (imageList != null)
            {
                imageList         = imageList.Where(i => i.Width >= 500).ToList();
                ViewBag.ImageList = imageList.ToList();
            }

            POIViewModel viewModel = new POIViewModel();

            viewModel.POI = poi;

            if (!IsRequestByRobot)
            {
                viewModel.NewComment = new UserComment()
                {
                    ChargePointID = poi.ID, CommentType = new UserCommentType {
                        ID = 10
                    }, CheckinStatusType = new CheckinStatusType {
                        ID = 0
                    }
                };

                System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
                sw.Start();
                viewModel.POIListNearby = cpManager.GetChargePoints(new APIRequestSettings {
                    MaxResults = 10, Latitude = poi.AddressInfo.Latitude, Longitude = poi.AddressInfo.Longitude, Distance = 15, DistanceUnit = DistanceUnit.Miles, AllowMirrorDB = true
                });
                viewModel.POIListNearby.RemoveAll(p => p.ID == poi.ID); //don't include the current item in nearby POI list
                sw.Stop();
                System.Diagnostics.Debug.WriteLine(sw.ElapsedMilliseconds);

                ViewBag.ReferenceData = new POIBrowseModel();
            }
            else
            {
                viewModel.POIListNearby = new List <ChargePoint>();
            }

            if (layout == "simple")
            {
                ViewBag.EnableSimpleView = true;
                return(View("Details", "_SimpleLayout", viewModel));
            }
            else
            {
                return(View(viewModel));
            }
        }