Пример #1
0
        public void AddLineStation(DO.LineStation lineStation)
        {
            var lineStationList = XmlTools.LoadListFromXMLSerializer <DO.LineStation>(lineStationsPath);
            var ls = lineStationList.FirstOrDefault(s =>
                                                    s.Station == lineStation.Station && s.LineId == lineStation.LineId);

            if (ls != null && !ls.IsDeleted)
            {
                throw new DO.BadLineStationException(lineStation.Station, lineStation.LineId,
                                                     "Duplicate line station");
            }

            var line = GetLine(lineStation.LineId);

            foreach (var s in lineStationList)
            {
                if (s.LineId == line.Id)
                {
                    if (lineStation.PrevStation == s.Station)
                    {
                        lineStation.LineStationIndex = s.LineStationIndex + 1;
                        continue;
                    }
                    if (lineStation.LineStationIndex != -1)
                    {
                        s.LineStationIndex += 1;
                        UpdateLineStation(s);
                    }
                }
            }

            lineStationList.Add(lineStation);
            XmlTools.SaveListToXMLSerializer(lineStationList, lineStationsPath);
        }
Пример #2
0
        public IEnumerable <DO.LineTrip> GetAllLineTrips()
        {
            var lineTripList = XmlTools.LoadListFromXMLSerializer <DO.LineTrip>(linesTripPath);

            return(from lineTrip in lineTripList
                   select lineTrip);
        }
Пример #3
0
        public IEnumerable <DO.LineTrip> GetAllLineTripsBy(Predicate <DO.LineTrip> predicate)
        {
            var lineTripList = XmlTools.LoadListFromXMLSerializer <DO.LineTrip>(linesTripPath);

            return(from lineTrip in lineTripList
                   where predicate(lineTrip)
                   select lineTrip);
        }
Пример #4
0
        public IEnumerable <DO.Line> GetAllLinesBy(Predicate <DO.Line> predicate)
        {
            var lineList = XmlTools.LoadListFromXMLSerializer <DO.Line>(linesPath);

            return(from line in lineList
                   where predicate(line) && !line.IsDeleted
                   select line);
        }
Пример #5
0
        public IEnumerable <DO.Station> GetAllStationsBy(Predicate <DO.Station> predicate)
        {
            var stationList = XmlTools.LoadListFromXMLSerializer <DO.Station>(stationPath);

            return(from station in stationList
                   where predicate(station) && !station.IsDeleted
                   select station);
        }
Пример #6
0
        public IEnumerable <DO.User> GetAllUsersBy(Predicate <DO.User> predicate)
        {
            var userList = XmlTools.LoadListFromXMLSerializer <DO.User>(usersPath);

            return(from user in userList
                   where predicate(user) && !user.IsDeleted
                   select user);
        }
Пример #7
0
        public IEnumerable <DO.LineStation> GetAllLineStation()
        {
            var lineStationList = XmlTools.LoadListFromXMLSerializer <DO.LineStation>(lineStationsPath);

            return(from lineStation in lineStationList
                   where !lineStation.IsDeleted
                   select lineStation);
        }
Пример #8
0
        public IEnumerable <DO.AdjacentStations> GetAllAdjacentStationsBy(Predicate <DO.AdjacentStations> predicate)
        {
            var adjacentStationsList = XmlTools.LoadListFromXMLSerializer <DO.AdjacentStations>(adjacentStationsPath);

            return(from adst in adjacentStationsList
                   where !adst.IsDeleted && predicate(adst)
                   select adst);
        }
Пример #9
0
        public IEnumerable <DO.LineStation> GetAllLineStationBy(Predicate <DO.LineStation> predicate)
        {
            var lineStationList = XmlTools.LoadListFromXMLSerializer <DO.LineStation>(lineStationsPath);

            return(from lineStation in lineStationList
                   where predicate(lineStation) && !lineStation.IsDeleted
                   orderby lineStation.LineId, lineStation.LineStationIndex
                   select lineStation);
        }
Пример #10
0
        public void AddStation(DO.Station station)
        {
            var stationList = XmlTools.LoadListFromXMLSerializer <DO.Station>(stationPath);
            var st          = stationList.Find(s => s.Code == station.Code);

            if (st != null && !station.IsDeleted)
            {
                throw new DO.BadStationException(station.Code, "Duplicate Station");
            }

            stationList.Add(station);
            XmlTools.SaveListToXMLSerializer(stationList, stationPath);
        }
Пример #11
0
        public void AddUser(DO.User newUser)
        {
            var userList = XmlTools.LoadListFromXMLSerializer <DO.User>(usersPath);
            var user     = userList.FirstOrDefault(u => u.UserName == newUser.UserName);

            if (user != null && !newUser.IsDeleted)
            {
                throw new DO.BadUsernameException(newUser.UserName, "Duplicate user username");
            }

            userList.Add(newUser);
            XmlTools.SaveListToXMLSerializer(userList, usersPath);
        }
Пример #12
0
        public DO.AdjacentStations GetAdjacentStations(int station1, int station2)
        {
            var adjacentStationsList = XmlTools.LoadListFromXMLSerializer <DO.AdjacentStations>(adjacentStationsPath);
            var adst = adjacentStationsList.Find(s =>
                                                 s.Station1 == station1 && s.Station2 == station2);

            if (adst != null && !adst.IsDeleted)
            {
                return(adst);
            }
            throw new DO.BadAdjacentStationsException(station1, station2,
                                                      "Adjacent stations not found");
        }
Пример #13
0
        public DO.User GetUser(string userName)
        {
            var userList = XmlTools.LoadListFromXMLSerializer <DO.User>(usersPath);
            var user     = userList.Find(u => u.UserName == userName);

            if (user != null && !user.IsDeleted)
            {
                return(user);
            }
            else
            {
                throw new DO.BadUsernameException(userName, $"User not found {userName}");
            }
        }
Пример #14
0
        public void RemoveLineStationOnRemoveline(DO.LineStation lineStation)
        {
            var lineStationList = XmlTools.LoadListFromXMLSerializer <DO.LineStation>(lineStationsPath);
            var ls = lineStationList.Find(s => s.Station == lineStation.Station &&
                                          s.LineId == lineStation.LineId);

            if (ls != null && !ls.IsDeleted)
            {
                lineStationList.Remove(ls);
                ls.IsDeleted = true;
                lineStationList.Add(ls);
                XmlTools.SaveListToXMLSerializer(lineStationList, lineStationsPath);
            }
        }
Пример #15
0
        public DO.Line GetLine(int lineId)
        {
            var lineList = XmlTools.LoadListFromXMLSerializer <DO.Line>(linesPath);
            var line     = lineList.Find(l => l.Id == lineId);

            if (line != null && !line.IsDeleted)
            {
                return(line);
            }
            else
            {
                throw new DO.BadLineException(lineId, "Line not found");
            }
        }
Пример #16
0
        public DO.LineTrip GetLineTrip(int id)
        {
            var lineTripList = XmlTools.LoadListFromXMLSerializer <DO.LineTrip>(linesTripPath);
            var lineTrip     = lineTripList.Find(b => b.Id == id);

            if (lineTrip != null)
            {
                return(lineTrip);
            }
            else
            {
                throw new DO.BadLineTripException(id, "line trip not found");
            }
        }
Пример #17
0
        public DO.Station GetStation(int code)
        {
            var stationList = XmlTools.LoadListFromXMLSerializer <DO.Station>(stationPath);

            var station = stationList.Find(s => s.Code == code);

            if (station != null && !station.IsDeleted)
            {
                return(station);
            }
            else
            {
                throw new DO.BadStationException(code, "Station not found");
            }
        }
Пример #18
0
        public DO.LineStation GetLineStation(int stationCode, int lineId)
        {
            var lineStationList = XmlTools.LoadListFromXMLSerializer <DO.LineStation>(lineStationsPath);
            var lineStation     =
                lineStationList.Find(s => s.Station == stationCode && s.LineId == lineId);

            if (lineStation != null && !lineStation.IsDeleted)
            {
                return(lineStation);
            }
            else
            {
                throw new DO.BadLineStationException(stationCode, lineId, "Station Line not found");
            }
        }
Пример #19
0
        public void UpdateLine(DO.Line line)
        {
            var lineList = XmlTools.LoadListFromXMLSerializer <DO.Line>(linesPath);
            var lineToUp = lineList.Find(l => l.Id == line.Id);

            if (lineToUp != null && !lineToUp.IsDeleted)
            {
                lineList.Remove(lineToUp);
                lineList.Add(line);
                XmlTools.SaveListToXMLSerializer(lineList, linesPath);
            }
            else
            {
                throw new DO.BadLineException(line.Id, "Line not found");
            }
        }
Пример #20
0
        public void UpdateStation(DO.Station station)
        {
            var stationList = XmlTools.LoadListFromXMLSerializer <DO.Station>(stationPath);
            var stationToUp = stationList.Find(s => s.Code == station.Code);

            if (stationToUp != null && !stationToUp.IsDeleted)
            {
                stationList.Remove(stationToUp);
                stationList.Add(station);
                XmlTools.SaveListToXMLSerializer(stationList, stationPath);
            }
            else
            {
                throw new DO.BadStationException(station.Code, "Station not found");
            }
        }
Пример #21
0
        public void UpdateUser(DO.User user)
        {
            var userList = XmlTools.LoadListFromXMLSerializer <DO.User>(usersPath);
            var findUser = userList.Find(u => u.UserName == user.UserName);

            if (findUser != null && !findUser.IsDeleted)
            {
                userList.Remove(findUser);
                userList.Add(user);
                XmlTools.SaveListToXMLSerializer(userList, usersPath);
            }
            else
            {
                throw new DO.BadUsernameException(user.UserName, $"User not found {user.UserName}");
            }
        }
Пример #22
0
        public int AddLineTrip(DO.LineTrip lineTrip)
        {
            var counters = XmlTools.LoadListFromXMLSerializer <int>(countersPath);

            DalApi.Counters.LineTripCounter = counters[1];

            lineTrip.Id = DalApi.Counters.LineTripCounter;

            counters[1] = lineTrip.Id;
            XmlTools.SaveListToXMLSerializer(counters, countersPath);

            var lineTripList = XmlTools.LoadListFromXMLSerializer <DO.LineTrip>(linesTripPath);

            lineTripList.Add(lineTrip);
            XmlTools.SaveListToXMLSerializer(lineTripList, linesTripPath);
            return(lineTrip.Id);
        }
Пример #23
0
        public void AddAdjacentStations(DO.AdjacentStations adjacentStations)
        {
            var adjacentStationsList = XmlTools.LoadListFromXMLSerializer <DO.AdjacentStations>(adjacentStationsPath);
            var adst = adjacentStationsList.Find(s =>
                                                 s.Station1 == adjacentStations.Station1 && s.Station2 == adjacentStations.Station2);

            if (adst != null)
            {
                if (!adst.IsDeleted)
                {
                    throw new DO.BadAdjacentStationsException(adjacentStations.Station1, adjacentStations.Station2,
                                                              "Duplicate adjacent stations");
                }
            }
            adjacentStationsList.Add(adjacentStations);
            XmlTools.SaveListToXMLSerializer(adjacentStationsList, adjacentStationsPath);
        }
Пример #24
0
        public void UpdateLineStation(DO.LineStation lineStation)
        {
            var lineStationList = XmlTools.LoadListFromXMLSerializer <DO.LineStation>(lineStationsPath);
            var ls = lineStationList.Find(s => s.Station == lineStation.Station &&
                                          s.LineId == lineStation.LineId);

            if (ls != null && !ls.IsDeleted)
            {
                lineStationList.Remove(ls);
                lineStationList.Add(lineStation);
                XmlTools.SaveListToXMLSerializer(lineStationList, lineStationsPath);
            }
            else
            {
                throw new DO.BadLineStationException(lineStation.Station,
                                                     lineStation.LineId, "Station line not found");
            }
        }
Пример #25
0
        public void RemoveLine(DO.Line line)
        {
            var lineList  = XmlTools.LoadListFromXMLSerializer <DO.Line>(linesPath);
            var lineToRem = lineList.Find(l => l.Id == line.Id);

            if (lineToRem != null && !lineToRem.IsDeleted)
            {
                GetAllLineStationBy(ls => ls.LineId == lineToRem.Id).ToList().ForEach(RemoveLineStationOnRemoveline);
                lineList.Remove(lineToRem);
                lineToRem.IsDeleted = true;
                lineList.Add(lineToRem);
                XmlTools.SaveListToXMLSerializer(lineList, linesPath);
            }
            else
            {
                throw new DO.BadLineException(line.Id, "Line not found");
            }
        }
Пример #26
0
        public int AddLine(DO.Line line)
        {
            var counters = XmlTools.LoadListFromXMLSerializer <int>(countersPath);

            DalApi.Counters.LineCounter = counters[0];

            line.Id = DalApi.Counters.LineCounter;

            counters[0] = line.Id;
            XmlTools.SaveListToXMLSerializer(counters, countersPath);

            var lineList = XmlTools.LoadListFromXMLSerializer <DO.Line>(linesPath);

            lineList.Add(line);
            XmlTools.SaveListToXMLSerializer(lineList, linesPath);

            return(line.Id);
        }
Пример #27
0
        public void UpdateAdjacentStations(DO.AdjacentStations adjacentStations)
        {
            var adjacentStationsList = XmlTools.LoadListFromXMLSerializer <DO.AdjacentStations>(adjacentStationsPath);
            var adst =
                adjacentStationsList.Find(s => s.Station1 == adjacentStations.Station1 &&
                                          s.Station2 == adjacentStations.Station2);

            if (adst != null && !adst.IsDeleted)
            {
                adjacentStationsList.Remove(adst);
                adjacentStationsList.Add(adjacentStations);
                XmlTools.SaveListToXMLSerializer(adjacentStationsList, adjacentStationsPath);
            }
            else
            {
                throw new DO.BadAdjacentStationsException(adjacentStations.Station1, adjacentStations.Station2
                                                          , "Adjacent Stations not found");
            }
        }
Пример #28
0
        public void RemoveStation(DO.Station station)
        {
            var stationList  = XmlTools.LoadListFromXMLSerializer <DO.Station>(stationPath);
            var stationToRem = stationList.Find(s => s.Code == station.Code);

            if (stationToRem != null && !stationToRem.IsDeleted)
            {
                GetAllLineStationBy(s => s.Station == stationToRem.Code).ToList().ForEach(RemoveLineStation);
                GetAllAdjacentStationsBy(s => s.Station1 == stationToRem.Code ||
                                         s.Station2 == stationToRem.Code).ToList().ForEach(RemoveAdjacentStations);

                stationList.Remove(stationToRem);
                stationToRem.IsDeleted = true;
                stationList.Add(stationToRem);
                XmlTools.SaveListToXMLSerializer(stationList, stationPath);
            }
            else
            {
                throw new DO.BadStationException(station.Code, "Station not found");
            }
        }