public async Task <IActionResult> AddImage(int?id, IFormFile uploads)
        {
            if (id != null)
            {
                if (uploads != null)
                {
                    MetroStation station = await _context.MetroStations.Where(x => x.id == id).FirstOrDefaultAsync();

                    byte[] p1 = null;
                    using (var fs1 = uploads.OpenReadStream())
                        using (var ms1 = new MemoryStream())
                        {
                            fs1.CopyTo(ms1);
                            p1 = ms1.ToArray();
                        }
                    station.ImageMimeTypeOfData = uploads.ContentType;
                    station.Image = p1;
                    _context.MetroStations.Update(station);
                    _context.SaveChanges();
                    return(RedirectToAction(nameof(IndexAll)));
                }
            }

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> Edit(int id, [Bind("id,Name,Image,ImageMimeTypeOfData,MetroID, MetroLine")] MetroStation metroStation)
        {
            if (id != metroStation.id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(metroStation);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MetroStationExists(metroStation.id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(metroStation));
        }
示例#3
0
    public void DrawOneMetroStation(int x, int y, bool redraw)
    {
        Transform    traf;
        MetroStation metroStation = map.GetMetroStationInTileIfExistsInTile(x, y);

        //TODO DRAW CONNECTIONS

        if (metroStation != null)
        {
            if (y % 2 == 0)
            {
                traf = Instantiate(map.metroStation, new Vector3(x * tileWidth, y * tileHeight, 0), Quaternion.identity);
            }
            else
            {
                traf = Instantiate(map.metroStation, new Vector3(x * tileWidth + tileWidth / 2, y * tileHeight, 0), Quaternion.identity);
            }

            if (redraw)
            {
                if (drawnObjects[x, y, 4] != null && drawnObjects[x, y, 4].gameObject)
                {
                    GameObject.Destroy(drawnObjects[x, y, 4].gameObject);
                }
            }

            traf.SetParent(transform);
            drawnObjects[x, y, 4] = traf;
        }
    }
示例#4
0
    public void MouseLeftClicked(int x, int y)
    {
        MetroStation metroStationInCurrTile = mapScript.map.GetMetroStationInTileIfExistsInTile(x, y);

        if (UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject())
        {
            return;
        }


        if (currentCursorTool == CursorTools.Rail)
        {
            PlaceRailTile(x, y, currentPrefabIndex);
        }
        else if (currentCursorTool == CursorTools.Bulldozer)
        {
            BulldozeDistrictAndRoad(x, y);
        }
        else if (currentCursorTool == CursorTools.MetroStation)
        {
            PlaceMetroStation(x, y);
        }
        else if (transportManager.selectedLine == TransportManager.Lines.Metro && metroStationInCurrTile != null)
        {
            if (transportManager.selectedMetroStation != metroStationInCurrTile)
            {
                metroStationInCurrTile.ConnectToMetroStation(transportManager.selectedMetroStation);
                BuySomething(80000, x, y);
                transportManager.SetSelectedLineToNone();
            }
        }
    }
        public StationParsingResult Parse(string str)
        {
            var values = str.Split(',');

            ThrowOnInvalidValuesCount(values, str);

            double lon, lat;

            var lonParsed = double.TryParse(values[MetroStationStringIndices.Lon],
                                            NumberStyles.Number, CultureInfo.InvariantCulture, out lon);

            var latParsed = double.TryParse(values[MetroStationStringIndices.Lat],
                                            NumberStyles.Number, CultureInfo.InvariantCulture, out lat);

            ThrowOnNotParsedCoordinates(lonParsed, latParsed, str);

            var parsed = new MetroStation
            {
                Id            = values[MetroStationStringIndices.Id],
                Name          = values[MetroStationStringIndices.Name].Trim('\"'),
                Description   = values[MetroStationStringIndices.Descr],
                Latitude      = lat,
                Longitude     = lon,
                ZoneId        = values[MetroStationStringIndices.Zone],
                StopUrl       = values[MetroStationStringIndices.Url],
                LocationType  = values[MetroStationStringIndices.Type],
                ParentStation = values[MetroStationStringIndices.Parent]
            };

            return(new StationParsingResult(parsed));
        }
        public FileContentResult GetImage(int id)
        {
            MetroStation station = _context.MetroStations
                                   .FirstOrDefault(g => g.id == id);

            if (station != null)
            {
                var file = File(station.Image, station.ImageMimeTypeOfData);
                return(file);
            }
            else
            {
                return(null);
            }
        }
        public async Task <IActionResult> Create([Bind("id,Name,Image,ImageMimeTypeOfData, MetroID, MetroLine")] MetroStation metroStation, string?MetroName)
        {
            if (ModelState.IsValid)
            {
                int metroid = _context.Metros.Where(x => x.Name == MetroName).Select(x => x.id).FirstOrDefault();
                metroStation.MetroID = metroid;
                int metrolineid = _context.Metros.Where(x => x.Name == MetroName).Select(x => x.id).FirstOrDefault();
                metroStation.MetroLineId = metrolineid;
                _context.Add(metroStation);
                await _context.SaveChangesAsync();

                TempData["StationName"] = metroStation.Name;
                return(RedirectToAction(nameof(AddImageForm)));
            }
            return(View(metroStation));
        }
示例#8
0
    public void DisconnectFromMetroStation(MetroStation metroStation)
    {
        //REMOVE THE OTHER STATION FROM THIS STATION
        if (this.metroConnections.Contains(metroStation))
        {
            this.metroConnections.Remove(metroStation);
        }

        //REMOVE THIS STATION FROM THE OTHER STATION
        if (metroStation.metroConnections.Contains(metroStation))
        {
            metroStation.metroConnections.Remove(this);
        }

        GameObject.FindGameObjectWithTag("MapTiles").GetComponent <MapScript>().ReDrawMetroConnections();
    }
示例#9
0
    public void ConnectToMetroStation(MetroStation metroStation)
    {
        if (!metroConnections.Contains(metroStation) && !metroStation.metroConnections.Contains(this))
        {
            Debug.Log("METRO STATIONS: " + metroStation.GetHashCode() + " AND " + this.GetHashCode() + " ARE NOW CONNECTED!");
            //ADD CONNECTIONS TO BOTH STATIONS
            this.metroConnections.Add(metroStation);
            metroStation.metroConnections.Add(this);
        }
        else
        {
            GameObject.FindGameObjectWithTag("_Manager").GetComponent <Cursor>().TextAtCoordinates("Already Connected!", metroStation.x, metroStation.y);
            Debug.Log("METRO STATIONS: " + metroStation.GetHashCode() + " AND " + this.GetHashCode() + " ARE ALREADY CONNECTED!");
        }

        GameObject.FindGameObjectWithTag("MapTiles").GetComponent <MapScript>().ReDrawMetroConnections();
    }
示例#10
0
    public void MouseRightClicked(int x, int y)
    {
        if (UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject())
        {
            return;
        }

        transportManager.SetSelectedLineToNone();

        MetroStation metroStation = mapScript.map.GetMetroStationInTileIfExistsInTile(x, y);

        if (metroStation != null)
        {
            GameObject.FindGameObjectWithTag("_Manager").GetComponent <TransportManager>().selectedMetroStation = metroStation;
        }
        else
        {
            GameObject.FindGameObjectWithTag("_Manager").GetComponent <TransportManager>().selectedMetroStation = null;
        }
    }
 public IActionResult CreateMetroStation([FromBody] MetroStation newMetroStation)
 {
     try
     {
         if (ModelState.IsValid)
         {
             var addNewMetroStationResult = MetroStationRepo.CreateMetroStation(newMetroStation);
             if (addNewMetroStationResult.GetType() == typeof(Guid))
             {
                 return(Ok(addNewMetroStationResult)); //if the creation is successful return the id of the new metro station...
             }
             return(BadRequest());                     //if not... return bad request...
         }
         return(BadRequest(ModelState));
     }
     catch (Exception e)
     {
         if (((System.Data.SqlClient.SqlException)e.InnerException).Number == 2627) // unique key violation from sql server...
         {
             return(StatusCode(400, _config["StatusCodesText:GeneralInputError"]));
         }
         return(StatusCode(500, _config["StatusCodesText:ServerErr"]));
     }
 }
 public dynamic CreateMetroStation(MetroStation newMetroStation)
 {
     try
     {
         var metroStationToAdd = new MetroStation()
         {
             StationId    = new Guid(),
             StationName  = newMetroStation.StationName,
             IsOnLine     = newMetroStation.IsOnLine,
             IsAlsoOnLine = newMetroStation.IsAlsoOnLine
         };
         db.Add(metroStationToAdd);
         var savingRes = db.SaveChanges();
         if (savingRes > 0)
         {
             return(metroStationToAdd.StationId);
         }
         return(false);
     }
     catch (Exception e)
     {
         throw e;
     }
 }