void IDL.updateTester(int id, Tester updatedTester, bool[,] updatedSchedule) { XElement testerElement = (from item in TesterRoot.Elements() where int.Parse(item.Element("ID").Value) == id select item).FirstOrDefault(); if (testerElement == null) { throw new TestersIdNotFoundException(id); } testerElement.Remove(); TesterRoot.Add(updatedTester.ToXmlTester()); TesterRoot.Save(TesterPath); XElement scheduleXelement = ScheduleRoot.Elements() .Where(item => item.Element("ID").Value == id.ToString()) .FirstOrDefault(); if (scheduleXelement != null) { scheduleXelement.Remove(); } XElement testersId = new XElement("ID", id.ToString()); ScheduleRoot.Add(new XElement("TesterSchedule", testersId, updatedSchedule.ToXmlSchedule())); ScheduleRoot.Save(SchedulePath); }
List <Tester> IDL.getTesterList() { List <Tester> testersList = (from XElement testerElement in TesterRoot.Elements() select testerElement.XmlToDOTester()).ToList(); return(testersList); }
/// <summary> /// remove tester from the root /// </summary> /// <param name="id"></param> public void RemoveTester(string id) { var toRemove = (from tester in TesterRoot.Elements() where tester.Element("id").Value == id select tester).FirstOrDefault(); toRemove.Remove(); TesterRoot.Save(TesterPath); }
List <Tester> IDL.getCertainTestersList(Predicate <Tester> pred) { List <Tester> testerList = (from XElement testerElement in TesterRoot.Elements() select testerElement.XmlToDOTester()).ToList(); List <Tester> certainTestersList = (from Tester tester in testerList where pred(tester) select tester).ToList(); return(certainTestersList); }
Tester IDL.getTester(int id) { XElement foundTester = (from XElement testerElement in TesterRoot.Elements() where testerElement.Element("ID").Value.Equals(id.ToString()) select testerElement).FirstOrDefault(); if (foundTester == null) { throw new TestersIdNotFoundException(id); } return(foundTester.XmlToDOTester()); }
void IDL.removeTester(int id) { XElement testerElement = (from tester in TesterRoot.Elements() where int.Parse(tester.Element("ID").Value) == id select tester).FirstOrDefault(); if (testerElement == null) { throw new TestNumberNotFoundException("thrown from: DL.Dal_XML_imp.removeTester"); } testerElement.Remove(); TesterRoot.Save(TesterPath); }
void IDL.addTester(Tester tester, bool[,] schedule) { int id = (from item in TesterRoot.Elements() where (int.Parse(item.Element("ID").Value) == tester.ID) select(int.Parse(item.Element("ID").Value))).FirstOrDefault(); if (id != 0) { throw new TestersIdAlreadyExistsException(tester.ID, tester.FirstName + " " + tester.LastName); } TesterRoot.Add(tester.ToXmlTester()); TesterRoot.Save(TesterPath); XElement testersId = new XElement("ID", tester.ID.ToString()); ScheduleRoot.Add(new XElement("TesterSchedule", testersId, schedule.ToXmlSchedule())); ScheduleRoot.Save(SchedulePath); }
/// <summary> /// manual tester list deserialize /// </summary> /// <returns></returns> public List <Tester> GetTesters() { return((from tester in TesterRoot.Elements() where GetTester(tester.Element("id").Value) != null select GetTester(tester.Element("id").Value)).ToList()); }
/// <summary> /// manual tester deserialize /// </summary> /// <param name="id"></param> /// <returns></returns> public Tester GetTester(string id) { Tester toReturn; try { toReturn = (from tester in TesterRoot.Elements() where tester.Element("id").Value == id select new Tester() { ID = tester.Element("id").Value, Email = tester.Element("Email").Value, PhoneNumber = tester.Element("Phone").Value, Name = new Name(tester.Element("name").Element("firstName").Value, tester.Element("name").Element("lastName").Value), Address = new Address(tester.Element("Address").Element("City").Value, tester.Element("Address").Element("street").Value, tester.Element("Address").Element("bldNumber").Value), BirthDay = DateTime.Parse(tester.Element("BirthDay").Value), Sex = (from sex in (Gender[])Enum.GetValues(typeof(Gender)) where sex.ToString() == tester.Element("Gender").Value select sex).FirstOrDefault(), CheckEmail = bool.Parse(tester.Element("CheckEmail").Value), AwaitingAdminReset = bool.Parse(tester.Element("AwaitingAdminReset").Value), FirstLogIn = bool.Parse(tester.Element("FirstLogin").Value), testingCarType = (from type in (VehicleType[])Enum.GetValues(typeof(VehicleType)) where type.ToString() == tester.Element("VehicleType").Value select type).FirstOrDefault(), MaxDistance = uint.Parse(tester.Element("MaxDistance").Value), ExpYears = uint.Parse(tester.Element("ExpYears").Value), MaxWeeklyTests = uint.Parse(tester.Element("MaxWeeklyTests").Value), }).FirstOrDefault(); foreach (var item in toReturn.schedule.week) { var DayElement = TesterRoot.Elements().FirstOrDefault(T => T.Element("id").Value == id).Element("Schedule").Element(item.Key.ToString()); var stringArray = DayElement.Value.Split(','); foreach (var hour in stringArray) { int h; if (int.TryParse(hour, out h)) { toReturn.schedule[item.Key, h] = true; } } } var testerElement = (from tester in TesterRoot.Elements() where tester.Element("id").Value == id select tester).FirstOrDefault(); toReturn.notifications = (from Notification in testerElement.Elements("Notification").Elements() select new Notification { Icon = (from icon in (MessageIcon[])Enum.GetValues(typeof(MessageIcon)) where icon.ToString() == Notification.Element("Icon").Value select icon).FirstOrDefault(), message = Notification.Element("Message").Value, time = DateTime.Parse(Notification.Element("Time").Value) }).ToList(); } catch { toReturn = null; } return(toReturn); }