public List <Activity> GetInternalActivities() { var client = new TimeWSSoapClient(); XmlNode result; client.GetActiveActivities(new ICERequestHeader(), out result); var s = new XmlSerializer(typeof(Activity)); return((from XmlNode node in result.ChildNodes select s.Deserialize(new StringReader(node.OuterXml)) as Activity).ToList()); }
public List <Time> GetChargesBetween(DateTime fromDate, DateTime toDate) { var client = new TimeWSSoapClient(); XmlNode result; client.GetAllTimeEntries(new ICERequestHeader(), ResourceId, fromDate, toDate, fromDate, toDate, out result); var s = new XmlSerializer(typeof(Time)); return((from XmlNode node in result.ChildNodes select(Time) s.Deserialize(new StringReader(node.OuterXml))).ToList()); }
public void SaveTimes(IEnumerable times, TimeStates state) { var client = new TimeWSSoapClient(); const string etcDoc = "<TimeTaskETCForProject useActionHints=\"true\"/>"; var timeList = new StringBuilder("<TimeList ProxyResourceId=\"\" useActionHints=\"true\">"); var s = new XmlSerializer(typeof(Time)); var settings = new XmlWriterSettings { OmitXmlDeclaration = true }; var namespaces = new XmlSerializerNamespaces(); namespaces.Add("", ""); var modifiedTimes = new List <Time>(); if (state == TimeStates.New) { modifiedTimes = ModifyTimesForNew(times); } else if (state == TimeStates.Modified) { modifiedTimes = ModifyTimesForApproval(times); } else if (state == TimeStates.Deleted) { modifiedTimes = ModifyTimesForDelete(times); } foreach (var time in modifiedTimes) { var ms = new MemoryStream(); using (var writer = XmlWriter.Create(ms, settings)) { s.Serialize(writer, time, namespaces); } ms.Seek(0, SeekOrigin.Begin); var xmlStr = new StreamReader(ms).ReadToEnd(); timeList.Append(xmlStr); } timeList.Append("</TimeList>"); bool result; XmlNode failResult; client.UpdateTimeAndTaskETCForTimeEntry(new ICERequestHeader(), timeList.ToString(), etcDoc, out result, out failResult); if (result && string.IsNullOrEmpty(failResult.InnerText)) { return; } var msg = "Failed to save times"; if (!string.IsNullOrEmpty(failResult.InnerText)) { msg += ":\n" + failResult.InnerText; } throw new Exception(msg); }