internal static MetadataTableHaveEntryWrapper GetInstance()
        {
            MetadataTableHaveEntry real = default(MetadataTableHaveEntry);

            RealInstanceFactory(ref real);
            MetadataTableHaveEntryWrapper instance = MetadataTableHaveEntryWrapper.GetWrapper(real);

            InstanceFactory(ref instance);
            return(instance);
        }
コード例 #2
0
        static partial void RealInstanceFactory(ref IMetadataRowSets real, string callerName)
        {
            CredentialsStore credentials = CredentialsProvider.Read(@"..\..\..\RestCredentials.xml");
            var uri = new Uri(credentials.VsoCollection);
            var tpc = new TfsTeamProjectCollection(uri);

            var workitemserver = tpc.GetService <WorkItemServer>();
            var workitemstore  = tpc.GetService <WorkItemStore>();
            var id             = 1;
            var workitem       = workitemstore.GetWorkItem(id);


            // When you call update you need to pass the revision number that you want to update.
            // Most of the time ist t makes sense to use the latest revision, which is stored in the Rev property
            var revision = workitem.Rev.ToString();
            var date     = DateTime.Today;

            // Create the xml package that is needed when calling the server to update a readonly field.
            // Make sure you pass in the date using XmlConvert.ToString(date, XmlDateTimeSerializationMode.Local)
            // You won't get the correct date if you just call date.ToString()
            var sb = new StringBuilder();

            sb.Append("<Package>");
            sb.AppendFormat("<UpdateWorkItem ObjectType='WorkItem' BypassRules='1' WorkItemID='{0}' Revision='{1}'>", id, revision);
            sb.Append("<Columns>");
            sb.AppendFormat("<Column Column='System.CreatedDate' Type='DateTime'><Value>{0}</Value></Column>",
                            XmlConvert.ToString(date, XmlDateTimeSerializationMode.Local));
            sb.Append("</Columns></UpdateWorkItem></Package>");

            /* This is what the XML looks like
             *  <Package>
             *    <UpdateWorkItem ObjectType='WorkItem' BypassRules='1' WorkItemID='1279424' Revision='11'>
             *      <Columns>
             *         <Column Column='System.CreatedDate' Type='DateTime'><Value>1/1/2012 1:01:01 AM</Value></Column>
             *      </Columns>
             *    </UpdateWorkItem>
             *  </Package>
             */


            // Initialize the params that are needed for the service call
            var mthe = new MetadataTableHaveEntry[0];

            // Load the xml string into an XmlDocument so you can pull the document Element that
            // the service call needs
            var x = new XmlDocument();

            x.LoadXml(sb.ToString());


            IMetadataRowSets metadata;
            string           dbStamp;
            int        count;
            DateTime   asOfDate;
            string     requestId = "";
            XmlElement psQuery   = (XmlElement)x.FirstChild;
            bool       useMaster = true;

            workitemserver.QueryWorkitemCount(requestId, psQuery, useMaster, out count, out asOfDate, new MetadataTableHaveEntry[] {}, out dbStamp, out metadata);

            real = metadata;
        }
コード例 #3
0
 private MetadataTableHaveEntryWrapper(MetadataTableHaveEntry instance)
 {
     r_Instance = instance;
 }
コード例 #4
0
 public static MetadataTableHaveEntryWrapper GetWrapper(MetadataTableHaveEntry src)
 {
     return(default(MetadataTableHaveEntryWrapper));
 }
コード例 #5
0
        /// <summary>
        /// Submits items from the given range.
        /// </summary>
        /// <param name="firstItem">First item in the range</param>
        /// <param name="lastItem">Last item in the range</param>
        private void Submit(
            int firstItem,
            int lastItem)
        {
            Debug.Assert(firstItem <= lastItem, "Invalid range!");
            XmlDocument doc            = new XmlDocument();
            XmlElement  packageElement = doc.CreateElement("Package");

            packageElement.SetAttribute("Product", m_core.WorkItemTrackingUrl);
            doc.AppendChild(packageElement);

            for (int i = firstItem; i <= lastItem; i++)
            {
                XmlDocument u = m_updates[i];
                SubmitData(doc, u);
            }

            // Submit the update package
            XmlElement outElement   = null;
            Exception  resException = null;

            try
            {
                MetadataTableHaveEntry[] metadataHave = new MetadataTableHaveEntry[0];
                string           dbStamp;
                IMetadataRowSets rowsets;

                m_svc.Update(
                    m_svc.NewRequestId(),
                    packageElement,
                    out outElement,
                    metadataHave,
                    out dbStamp,
                    out rowsets);
            }
            catch (Exception e)
            {
                resException = e;
            }

            if (resException != null)
            {
                //$TODO_VNEXT: extract more information from SOAP exceptions
                if (firstItem == lastItem)
                {
                    m_results[firstItem] = new UpdateResult(resException);
                }
                else
                {
                    int mid = firstItem + (lastItem - firstItem) / 2;
                    Submit(firstItem, mid);
                    Submit(mid + 1, lastItem);
                }
            }
            else
            {
                // Process results
                foreach (XmlElement resElement in outElement.ChildNodes)
                {
                    int revision = 0;
                    if (resElement.Name == "InsertWorkItem" || resElement.Name == "UpdateWorkItem")
                    {
                        revision = XmlConvert.ToInt32(resElement.GetAttribute("Revision"));
                    }

                    Watermark wm = new Watermark(resElement.GetAttribute("ID"), revision);
                    m_results[firstItem++] = new UpdateResult(wm);
                }
            }
        }
 static partial void RealInstanceFactory(ref MetadataTableHaveEntry real, [CallerMemberName] string callerName = "");