Пример #1
0
        private void Application_Startup(object sender, StartupEventArgs _)
        {
            try
            {
                var savedRoutes     = new SavedRoute[0];
                var userDir         = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                var editorDir       = Path.Combine(userDir, Constants.IdleKingdomsUserFolder);
                var savedRoutesPath = Path.Combine(editorDir, Constants.SavedRoutesFileName);

                if (File.Exists(Constants.SavedRoutesFilePath))
                {
                    savedRoutes = JsonConvert.DeserializeObject <SavedRoute[]>(File.ReadAllText(Constants.SavedRoutesFilePath));
                }
                else if (File.Exists(savedRoutesPath))
                {
                    savedRoutes = JsonConvert.DeserializeObject <SavedRoute[]>(File.ReadAllText(savedRoutesPath));
                }

                var vm = new MainViewModel(savedRoutes);

                var w = new MainWindow
                {
                    DataContext = vm
                };

                w.ShowDialog();
            }
            catch (Exception e)
            {
                Logger.Error(e);
                MessageBox.Show(e.ToString());
            }
        }
Пример #2
0
        public async Task <IActionResult> PutSavedRoute([FromRoute] int id, [FromBody] SavedRoute savedRoute)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

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

            _context.Entry(savedRoute).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SavedRouteExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public ActionResult DeleteConfirmed(string id)
        {
            SavedRoute savedRoute = db.SavedRoutes.Find(id);

            db.SavedRoutes.Remove(savedRoute);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult SaveRoute(SavedRoute routeData)
        {
            SavedRoute newRoute = TempData["myRoute"] as SavedRoute;

            newRoute.name = routeData.name;
            db.SavedRoutes.Add(newRoute);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "SRID,Route,Timestamp,Username")] SavedRoute savedRoute)
 {
     if (ModelState.IsValid)
     {
         db.Entry(savedRoute).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(savedRoute));
 }
        public JsonResult SaveRoute(List <RLocation> rl)
        {
            StringBuilder sb         = new StringBuilder();
            SavedRoute    savedRoute = new SavedRoute();

            foreach (RLocation r in rl)
            {
                sb.AppendFormat("[Na]{0}[Na] [La]{1}[La] [Lo]{2}[Lo] [Id]{3}[Id] \n",
                                r.Name, r.Latitude, r.Longitude, r.Id);
            }

            if (!db.SavedRoutes.Any())
            {
                // savedRoute.SRID = 0;
            }

            //savedRoute.SRID = db.SavedRoutes.OrderByDescending(s => s.SRID).FirstOrDefault().SRID;

            if (Request.IsAuthenticated)
            {
                savedRoute.Username = User.Identity.Name;
            }
            else
            {
                savedRoute.Username = "******";
            }
            savedRoute.Timestamp = DateTime.UtcNow;
            savedRoute.Route     = sb.ToString();

            db.SavedRoutes.Add(savedRoute);

            try
            {
                db.SaveChanges();
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
            {
                Exception raise = dbEx;
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        string message = string.Format("{0}:{1}",
                                                       validationErrors.Entry.Entity.ToString(),
                                                       validationError.ErrorMessage);
                        // raise a new exception nesting
                        // the current instance as InnerException
                        raise = new InvalidOperationException(message, raise);
                    }
                }
                throw raise;
            }

            return(Json(new { result = "Redirect", url = Url.Action("/Details/" + savedRoute.SRID) }));
        }
        public ActionResult Create([Bind(Include = "SRID,Route,Timestamp,Username")] SavedRoute savedRoute)
        {
            if (ModelState.IsValid)
            {
                db.SavedRoutes.Add(savedRoute);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(savedRoute));
        }
Пример #8
0
        public async Task <IActionResult> PostSavedRoute([FromBody] SavedRoute savedRoute)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.SavedRoute.Add(savedRoute);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetSavedRoute", new { id = savedRoute.Id }, savedRoute));
        }
        // GET: SavedRoutes/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SavedRoute savedRoute = db.SavedRoutes.Find(id);

            if (savedRoute == null)
            {
                return(HttpNotFound());
            }
            return(View(savedRoute));
        }
        public ActionResult SaveRoute()
        {
            ShowRouteViewModel routeData = TempData["myModel"] as ShowRouteViewModel;
            SavedRoute         newRoute  = new SavedRoute();

            newRoute.ObserveeId      = routeData.observee.id;
            newRoute.start_latitude  = routeData.route.waypoint[0].mappedPosition.latitude.ToString();
            newRoute.start_longitude = routeData.route.waypoint[0].mappedPosition.longitude.ToString();
            newRoute.end_latitude    = routeData.route.waypoint[1].mappedPosition.latitude.ToString();
            newRoute.end_logitude    = routeData.route.waypoint[1].mappedPosition.longitude.ToString();
            newRoute.waypoint1       = newRoute.start_latitude + "," + newRoute.start_longitude;
            newRoute.waypoint2       = newRoute.end_latitude + "," + newRoute.end_logitude;
            newRoute.avoidstring     = routeData.avoid;
            newRoute.routeRequest    = "https://route.api.here.com/routing/7.2/calculateroute.json?app_id=" + Keys.HEREAppID + "&app_code=" + Keys.HEREAppCode + "&waypoint0=" + newRoute.waypoint1 + "&waypoint1=" + newRoute.waypoint2 + "&mode=fastest;pedestrian;traffic:disabled&avoidareas=" + newRoute.avoidstring;
            TempData["myRoute"]      = newRoute;
            return(View(newRoute));
        }
        public ActionResult ViewRoute(int id)
        {
            SavedRoute route = db.SavedRoutes.Where(e => e.id == id).FirstOrDefault();

            return(View(route));
        }
Пример #12
0
        public ActionResult CreateRoutes(ObserverSaveRouteModel navData)
        {
            ShowRouteViewModel model = new ShowRouteViewModel();
            string             id    = User.Identity.GetUserId();

            if (navData.nav.StartAddress != null && navData.nav.EndAddress != null)
            {
                GeoCode  geo        = new GeoCode();
                string   startcoord = geo.Retrieve(navData.nav.StartAddress);
                string[] waypoint1;
                string   stopcoord;
                string[] waypoint2;
                List <AvoidanceRoute> avoidMarks;
                //try
                //{
                //    waypoint1 = startcoord.Split(',');
                //    stopcoord = geo.Retrieve(navData.nav.EndAddress);
                //    waypoint2 = stopcoord.Split(',');
                //    model.observee = db.Observees.Where(e => e.id == int.Parse(navData.observeeId)).FirstOrDefault();
                //    model.avoid = GetCrimeData(Double.Parse(waypoint1[0]), Double.Parse(waypoint1[1]), Double.Parse(waypoint2[0]), Double.Parse(waypoint2[1]));
                //    avoidMarks = db.AvoidanceRoutes.Where(e => e.ObserveeId == int.Parse(navData.observeeId) || e.ObserveeId == null).ToList();
                //}
                //catch
                //{
                //    return RedirectToAction("CreateRoutes");
                //}
                waypoint1 = startcoord.Split(',');
                stopcoord = geo.Retrieve(navData.nav.EndAddress);
                waypoint2 = stopcoord.Split(',');
                int temp = int.Parse(navData.observeeId);
                model.observee = db.Observees.Where(e => e.id == temp).FirstOrDefault();
                model.avoid    = GetCrimeData(Double.Parse(waypoint1[0]), Double.Parse(waypoint1[1]), Double.Parse(waypoint2[0]), Double.Parse(waypoint2[1]));
                temp           = int.Parse(navData.observeeId);
                avoidMarks     = db.AvoidanceRoutes.Where(e => e.ObserveeId == temp || e.ObserveeId == null).ToList();



                List <string> avoidCoords = new List <string>();
                foreach (AvoidanceRoute x in avoidMarks)
                {
                    avoidCoords.Add(x.TopLeftLatitude + "," + x.TopLeftLongitude + ";" + x.BottomRightLatitude + "," + x.BottomRightLongitude);
                    if (model.avoid != "")
                    {
                        model.avoid += "!";
                    }
                    model.avoid += (x.TopLeftLatitude + "," + x.TopLeftLongitude + ";" + x.BottomRightLatitude + "," + x.BottomRightLongitude);
                }
                model.route = CreateRoute.Retrieve(startcoord, stopcoord, model.avoid);

                try
                {
                    SavedRoute newRoute = new SavedRoute();
                    newRoute.name            = navData.route.name;
                    newRoute.ObserveeId      = int.Parse(navData.observeeId);
                    newRoute.start_latitude  = model.route.waypoint[0].mappedPosition.latitude.ToString();
                    newRoute.start_longitude = model.route.waypoint[0].mappedPosition.longitude.ToString();
                    newRoute.end_latitude    = model.route.waypoint[1].mappedPosition.latitude.ToString();
                    newRoute.end_logitude    = model.route.waypoint[1].mappedPosition.longitude.ToString();
                    newRoute.waypoint1       = newRoute.start_latitude + "," + newRoute.start_longitude;
                    newRoute.waypoint2       = newRoute.end_latitude + "," + newRoute.end_logitude;
                    newRoute.avoidstring     = model.avoid;
                    newRoute.routeRequest    = "https://route.api.here.com/routing/7.2/calculateroute.json?app_id=" + Keys.HEREAppID + "&app_code=" + Keys.HEREAppCode + "&waypoint0=" + newRoute.waypoint1 + "&waypoint1=" + newRoute.waypoint2 + "&mode=fastest;pedestrian;traffic:disabled&avoidareas=" + newRoute.avoidstring;

                    db.SavedRoutes.Add(newRoute);
                    db.SaveChanges();
                }
                catch
                {
                    return(RedirectToAction("CreateRoutes"));
                }
            }
            else
            {
                return(RedirectToAction("CreateRoutes"));
            }


            return(RedirectToAction("Index"));
        }