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); }
/// <summary> /// manual tester serialize /// </summary> /// <param name="tester"></param> public void AddTester(Tester tester) { XElement ID = new XElement("id", tester.ID); XElement FirstName = new XElement("firstName", tester.Name.first); XElement LastName = new XElement("lastName", tester.Name.last); XElement Name = new XElement("name", LastName, FirstName); XElement Street = new XElement("street", tester.Address.street); XElement BuildingNumber = new XElement("bldNumber", tester.Address.buildingNumber); XElement City = new XElement("City", tester.Address.city); XElement Address = new XElement("Address", BuildingNumber, Street, City); XElement phone = new XElement("Phone", tester.PhoneNumber); XElement email = new XElement("Email", tester.Email); XElement BirthDay = new XElement("BirthDay", tester.BirthDay); XElement sex = new XElement("Gender", tester.Sex); XElement CheckEmail = new XElement("CheckEmail", tester.CheckEmail); XElement AwaitingAdminReset = new XElement("AwaitingAdminReset", tester.AwaitingAdminReset); XElement firstLogin = new XElement("FirstLogin", tester.FirstLogIn); XElement testingCarType = new XElement("VehicleType", tester.testingCarType); XElement MaxDistance = new XElement("MaxDistance", tester.MaxDistance); XElement ExpYears = new XElement("ExpYears", tester.ExpYears); XElement MaxWeeklyTests = new XElement("MaxWeeklyTests", tester.MaxWeeklyTests); List <XElement> Days = new List <XElement>(); foreach (var item in tester.schedule.week) { string HourString = ""; for (int i = 9; i < 15; i++) { if (item.Value[i]) { HourString += i.ToString() + ","; } } if (HourString.Length > 0) { HourString = HourString.Substring(0, HourString.Length - 1); } Days.Add(new XElement(item.Key.ToString(), HourString)); } List <XElement> Notifications = new List <XElement>(); foreach (var item in tester.notifications) { XElement Icon = new XElement("Icon", item.Icon); XElement Time = new XElement("Time", item.time); XElement Message = new XElement("Message", item.message); Notifications.Add(new XElement("Notification", Icon, Message, Time)); } XElement Schedule = new XElement("Schedule", Days); XElement Tester = new XElement("Tester", ID, Name, sex, phone, email, BirthDay, Address, CheckEmail, AwaitingAdminReset, firstLogin, testingCarType, MaxDistance, ExpYears, MaxWeeklyTests, Schedule, new XElement("Notifications", Notifications)); TesterRoot.Add(Tester); 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); }