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); }
public IHttpActionResult AddLine(NetworkLineViewModel model) { NetworkLine networkLine = AdaptNetworkLine(model, 0); UnitOfWork.NetworkLines.Add(networkLine); UnitOfWork.Complete(); return(Ok($"Line {model.LineNumber} successfully added!")); }
public IHttpActionResult DeleteLine(NetworkLine model) { try { UnitOfWork.NetworkLines.Remove(model); UnitOfWork.Complete(); return(Ok($"Line {model.LineNumber} deleted!")); } catch (Exception ex) { return(InternalServerError(ex)); } }
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)); } }
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)); } }
//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); }