Esempio n. 1
0
 private void CopyProperties(NaviLink naviLink, EditNaviLinkModel editNaviLink)
 {
     editNaviLink.Url           = naviLink.Url;
     editNaviLink.Description   = naviLink.Description;
     editNaviLink.LinkOrder     = editNaviLink.LinkOrder;
     editNaviLink.NaviHeadingId = naviLink.NaviHeading.Id;
 }
Esempio n. 2
0
 private void CopyProperties(EditNaviLinkModel editNaviLink, NaviLink naviLink)
 {
     naviLink.Url         = editNaviLink.Url;
     naviLink.Description = editNaviLink.Description;
     naviLink.LinkOrder   = editNaviLink.LinkOrder;
     naviLink.NaviHeading = db.Set <NaviHeading>().SingleOrDefault(e => e.Id == editNaviLink.NaviHeadingId);
 }
Esempio n. 3
0
        public ActionResult DeleteConfirmed(int id)
        {
            NaviLink navilink = db.Set <NaviLink>().Find(id);
            int      parentId = navilink.NaviHeading.NaviNode.Id;

            db.Set <NaviLink>().Remove(navilink);
            db.SaveChanges();
            return(RedirectToAction("Navi", "Section", new { id = parentId }));
        }
Esempio n. 4
0
        public ActionResult Edit(EditNaviLinkModel editNaviLink)
        {
            if (ModelState.IsValid)
            {
                NaviLink naviLink = db.Set <NaviLink>().Single(e => e.Id == editNaviLink.Id);
                CopyProperties(editNaviLink, naviLink);

                ((DbContext)db).Entry(naviLink).State = EntityState.Modified;
                db.SaveChanges();

                return(RedirectToAction("Navi", "Section", new { id = naviLink.NaviHeading.NaviNode.Id }));
            }
            return(View(editNaviLink));
        }
Esempio n. 5
0
        public ActionResult Create(EditNaviLinkModel editNaviLink)
        {
            if (ModelState.IsValid)
            {
                NaviLink naviLink = new NaviLink();

                CopyProperties(editNaviLink, naviLink);

                db.Set <NaviLink>().Add(naviLink);
                db.SaveChanges();
                return(RedirectToAction("Navi", "Section", new { id = naviLink.NaviHeading.NaviNode.Id }));
            }

            return(View(editNaviLink));
        }
Esempio n. 6
0
        //
        // GET: /NaviLink/Edit/5

        public ActionResult Edit(int id)
        {
            NaviLink naviLink = db.Set <NaviLink>().Single(e => e.Id == id);

            ViewBag.NaviNode = naviLink.NaviHeading.NaviNode;

            EditNaviLinkModel editNaviLink = new EditNaviLinkModel();

            CopyProperties(naviLink, editNaviLink);

            ViewBag.Headings = naviLink.NaviHeading.NaviNode.NaviHeadings.Select(c => new SelectListItem
            {
                Value = c.Id.ToString(),
                Text  = c.Description
            });

            return(View(editNaviLink));
        }
Esempio n. 7
0
        public static void Extract(string path, int index)
        {
            try
            {
                string filename = path + "\\NODES" + index + ".DAT";
                using (FileStream fs = File.Open(filename, FileMode.Open, FileAccess.Read))
                {
                    Header header = new Header();
                    byte[] buffer = new byte[20];
                    for (int i = 0; i < 20; i++)
                    {
                        fs.Read(buffer, i, 1);
                    }
                    header.nodes         = GetLittleEndianInt32FromByteArray(buffer, 0);
                    header.vehiclesNodes = GetLittleEndianInt32FromByteArray(buffer, 4);
                    header.pedNodes      = GetLittleEndianInt32FromByteArray(buffer, 8);
                    header.naviNodes     = GetLittleEndianInt32FromByteArray(buffer, 12);
                    header.links         = GetLittleEndianInt32FromByteArray(buffer, 16);
                    //Console.WriteLine("== Header == \r\n" + header.ToString());

                    tmpPathPoints = new Vector3[header.naviNodes];

                    PathNode tmpPathNode;
                    pathNodes[index] = new List <PathNode>();

                    for (int j = 0; j < header.nodes; j++)
                    {
                        buffer = new byte[28];
                        for (int i = 0; i < 28; i++)
                        {
                            fs.Read(buffer, i, 1);
                        }
                        tmpPathNode           = new PathNode();
                        tmpPathNode.position  = new Vector3(GetLittleEndianInt16FromByteArray(buffer, 8) / 8, GetLittleEndianInt16FromByteArray(buffer, 10) / 8, GetLittleEndianInt16FromByteArray(buffer, 12) / 8);
                        tmpPathNode.linkID    = (ushort)GetLittleEndianInt16FromByteArray(buffer, 16);
                        tmpPathNode.areaID    = (ushort)GetLittleEndianInt16FromByteArray(buffer, 18);
                        tmpPathNode.nodeID    = (ushort)GetLittleEndianInt16FromByteArray(buffer, 20);
                        tmpPathNode.pathWidth = buffer[22];
                        tmpPathNode.nodeType  = buffer[23];
                        tmpPathNode.flags     = GetLittleEndianInt32FromByteArray(buffer, 24);
                        pathNodes[index].Add(tmpPathNode);
                        //Console.WriteLine("== PathNode " + j + " == \r\n" + tmpPathNode.ToString());
                    }

                    NaviNode tmpNaviNode;
                    naviNodes[index] = new List <NaviNode>();

                    for (int j = 0; j < header.naviNodes; j++)
                    {
                        buffer = new byte[14];
                        for (int i = 0; i < 14; i++)
                        {
                            fs.Read(buffer, i, 1);
                            //Console.WriteLine("buffer[" + i + "] {0:X}", buffer[i]);
                        }

                        tmpNaviNode           = new NaviNode();
                        tmpNaviNode.position  = new Vector2(GetLittleEndianInt16FromByteArray(buffer, 0) / 8, GetLittleEndianInt16FromByteArray(buffer, 2) / 8);
                        tmpNaviNode.areaID    = (ushort)GetLittleEndianInt16FromByteArray(buffer, 4);
                        tmpNaviNode.nodeID    = (ushort)GetLittleEndianInt16FromByteArray(buffer, 6);
                        tmpNaviNode.direction = new Vector2(sbyte.Parse(buffer[8].ToString("X"), System.Globalization.NumberStyles.HexNumber), sbyte.Parse(buffer[9].ToString("X"), System.Globalization.NumberStyles.HexNumber));
                        tmpNaviNode.flags     = GetLittleEndianInt32FromByteArray(buffer, 10);
                        naviNodes[index].Add(tmpNaviNode);
                        //Console.WriteLine("== NaviNode " + j + " == \r\n" + tmpNaviNode.ToString());
                        pathPoints.Add(new Vector3(tmpNaviNode.position.X, tmpNaviNode.position.Y, GetAverageZ(tmpNaviNode.position.X, tmpNaviNode.position.Y) + 20.0));
                    }

                    Link[] links = new Link[header.links];
                    Link   tmpLink;

                    for (int j = 0; j < header.links; j++)
                    {
                        buffer = new byte[4];
                        for (int i = 0; i < 4; i++)
                        {
                            fs.Read(buffer, i, 1);
                            //Console.WriteLine("buffer[" + i + "] {0:X}", buffer[i]);
                        }

                        tmpLink        = new Link();
                        tmpLink.areaID = (ushort)GetLittleEndianInt16FromByteArray(buffer, 0);
                        tmpLink.nodeID = (ushort)GetLittleEndianInt16FromByteArray(buffer, 2);
                        links[j]       = tmpLink;
                        //Console.WriteLine("== Link " + j + " == \r\n" + tmpLink.ToString());
                    }

                    for (int i = 0; i < 768; i++)
                    {
                        fs.ReadByte();
                    }

                    NaviLink[] naviLinks = new NaviLink[512];
                    NaviLink   tmpNaviLink;

                    for (int j = 0; j < 512; j++)
                    {
                        buffer = new byte[2];
                        for (int i = 0; i < 2; i++)
                        {
                            fs.Read(buffer, i, 1);
                            //Console.WriteLine("buffer[" + i + "] {0:X}", buffer[i]);
                        }

                        tmpNaviLink = new NaviLink();
                        UInt16 tmp = (ushort)GetLittleEndianInt16FromByteArray(buffer, 0);

                        tmpNaviLink.areaID     = (ushort)Convert.ToInt16(tmp >> 6);
                        tmpNaviLink.naviNodeID = (ushort)Convert.ToInt16(tmp & 0b0000000000111111);
                        naviLinks[j]           = tmpNaviLink;
                        //Console.WriteLine("== NaviLink " + j + " == \r\n" + tmpNaviLink.ToString());
                    }

                    //Console.WriteLine("PathExtractor.cs - PathExtractor.Extract:I: Path loaded from " + fs.Name);
                    //Console.WriteLine("PathExtractor.cs - PathExtractor.Extract:I: Path points: " + tmpPathPoints.Length);
                    fs.Close();
                }
            }
            catch (IOException e)
            {
                Console.WriteLine("PathExtractor.cs - PathExtractor.Extract:E: " + e);
            }
        }
Esempio n. 8
0
        //
        // GET: /NaviLink/Details/5

        public ViewResult Details(int id)
        {
            NaviLink navilink = db.Set <NaviLink>().Find(id);

            return(View(navilink));
        }
Esempio n. 9
0
        //
        // GET: /NaviLink/Delete/5

        public ActionResult Delete(int id)
        {
            NaviLink navilink = db.Set <NaviLink>().Find(id);

            return(View(navilink));
        }