示例#1
0
        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());
        }
示例#2
0
        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());
        }
示例#3
0
        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);
        }