internal static MetadataTableHaveEntryWrapper GetInstance() { MetadataTableHaveEntry real = default(MetadataTableHaveEntry); RealInstanceFactory(ref real); MetadataTableHaveEntryWrapper instance = MetadataTableHaveEntryWrapper.GetWrapper(real); InstanceFactory(ref instance); return(instance); }
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; }
private MetadataTableHaveEntryWrapper(MetadataTableHaveEntry instance) { r_Instance = instance; }
public static MetadataTableHaveEntryWrapper GetWrapper(MetadataTableHaveEntry src) { return(default(MetadataTableHaveEntryWrapper)); }
/// <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 = "");