Example #1
0
        private static NetworkLineViewModel AdaptNetworkLineViewModel(NetworkLine line)
        {
            NetworkLineViewModel model = new NetworkLineViewModel();

            model.LineNumber = line.LineNumber;

            switch (model.Type)
            {
            case "Gradska":
            {
                model.Type = "Gradska";
                break;
            }

            case "Prigradska":
            {
                model.Type = "Prigradska";
                break;
            }

            default:
            {
                model.Type = "Gradska";
                break;
            }
            }

            if (line.Departures == null)
            {
                line.Departures = new List <Departures>();
            }

            foreach (var d in line.Departures)
            {
                model.Departures.Add(d.Time);
            }

            if (line.Stations == null)
            {
                line.Stations = new List <Station>();
            }

            foreach (var s in line.Stations)
            {
                model.Stations.Add(Convert.ToInt32(s.Name));
            }

            if (line.ScheduleDays == null)
            {
                line.ScheduleDays = new List <Schedule>();
            }

            foreach (var s in line.ScheduleDays)
            {
                model.ScheduleDays.Add(s.ToString());
            }

            return(model);
        }
Example #2
0
        public IHttpActionResult AddLine(NetworkLineViewModel model)
        {
            NetworkLine networkLine = AdaptNetworkLine(model, 0);

            UnitOfWork.NetworkLines.Add(networkLine);
            UnitOfWork.Complete();

            return(Ok($"Line {model.LineNumber} successfully added!"));
        }
Example #3
0
 public IHttpActionResult DeleteLine(NetworkLine model)
 {
     try
     {
         UnitOfWork.NetworkLines.Remove(model);
         UnitOfWork.Complete();
         return(Ok($"Line {model.LineNumber} deleted!"));
     }
     catch (Exception ex)
     {
         return(InternalServerError(ex));
     }
 }
Example #4
0
        public IHttpActionResult UpdateLine(NetworkLineViewModel model)
        {//model is null fix it
            try
            {
                NetworkLine line = AdaptNetworkLine(model, 1);

                UnitOfWork.NetworkLines.Update(line);
                UnitOfWork.Complete();
                return(Ok($"Line {model.LineNumber} successfully updated!"));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Example #5
0
        public IHttpActionResult GetFullInfo(int id)
        {
            try
            {
                EditLineInfoModel model = new EditLineInfoModel();
                NetworkLine       line  = UnitOfWork.NetworkLines.Find(x => x.LineNumber == id).First();

                model.Id         = line.Id;
                model.LineNumber = line.LineNumber;
                var departures = UnitOfWork.Departures.GetAll();
                List <DeparturesViewModel> newmodel = new List <DeparturesViewModel>();
                foreach (var node in departures)
                {
                    newmodel.Add(new DeparturesViewModel()
                    {
                        Id   = node.Id,
                        Time = node.Time.ToUniversalTime()
                    });
                }
                model.Departures   = newmodel;
                model.SelectedType = line.Type.ToString();
                model.AllTypes     = Enum.GetNames(typeof(LineType)).ToList();
                foreach (var node in line.Stations)
                {
                    model.SelectedStations.Add(AdaptStationViewModel(node));
                }
                foreach (var node in UnitOfWork.Stations.GetAll())
                {
                    model.AllStations.Add(AdaptStationViewModel(node));
                }
                foreach (var node in line.ScheduleDays)
                {
                    model.SelectedSchedule.Add(node.Type.ToString());
                }
                model.AllSchedule = Enum.GetNames(typeof(TimetableType)).ToList();
                return(Ok(model));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Example #6
0
        //COMMAND - add == 0, update == 1
        private NetworkLine AdaptNetworkLine(NetworkLineViewModel model, int command)
        {
            NetworkLine networkLine;

            if (command == 0)
            {
                networkLine = new NetworkLine();
            }

            else
            {
                networkLine = UnitOfWork.NetworkLines.Get(model.Id);

                int cntDepartures = networkLine.Departures.Count;
                for (int item = 0; item < cntDepartures; item++)
                {
                    UnitOfWork.Departures.Remove(networkLine.Departures.ToList()[0]);
                }

                int cntSchedule = networkLine.ScheduleDays.Count;
                for (int item = 0; item < cntSchedule; item++)
                {
                    UnitOfWork.Schedules.Remove(networkLine.ScheduleDays.ToList()[0]);
                    //networkLine.ScheduleDays.Remove(networkLine.ScheduleDays.ToList()[item]);
                }

                int cntStations = networkLine.Stations.Count;
                for (int item = 0; item < cntStations; item++)
                {
                    var station = networkLine.Stations.ToList()[0];
                    station.NLine.Remove(networkLine);
                    networkLine.Stations.Remove(station);
                }

                UnitOfWork.Complete();
            }

            if (UnitOfWork.NetworkLines.GetAll().ToList().Exists(x => x.LineNumber == model.LineNumber) &&
                networkLine.LineNumber != model.LineNumber)
            {
                return(null);
            }

            networkLine.LineNumber = model.LineNumber;

            switch (model.Type)
            {
            case "Gradska":
            {
                networkLine.Type = LineType.Gradska;
                break;
            }

            case "Prigradska":
            {
                networkLine.Type = LineType.Prigradska;
                break;
            }

            default:
            {
                networkLine.Type = LineType.Gradska;
                break;
            }
            }


            if (model.Departures == null)
            {
                model.Departures = new List <DateTime>();
            }

            foreach (var d in model.Departures)
            {
                networkLine.Departures.Add(new Departures()
                {
                    Time = d, NetworkLine = networkLine
                });
            }

            if (model.Stations == null)
            {
                model.Stations = new List <int>();
            }

            foreach (var s in model.Stations)
            {
                var station = UnitOfWork.Stations.Find(
                    x => x.Name == s.ToString()).First();
                station.NLine.Add(networkLine);
                networkLine.Stations.Add(station);
            }

            if (model.ScheduleDays == null)
            {
                model.ScheduleDays = new List <string>();
            }

            foreach (var s in model.ScheduleDays)
            {
                if (s == "RadniDan")
                {
                    networkLine.ScheduleDays.Add(new Schedule()
                    {
                        Type = TimetableType.RadniDan, NetworkLine = networkLine
                    });
                }
                else if (s == "Praznik")
                {
                    networkLine.ScheduleDays.Add(new Schedule()
                    {
                        Type = TimetableType.Praznik, NetworkLine = networkLine
                    });
                }
                else if (s == "Vikend")
                {
                    networkLine.ScheduleDays.Add(new Schedule()
                    {
                        Type = TimetableType.Vikend, NetworkLine = networkLine
                    });
                }
            }

            return(networkLine);
        }