494. Araxis Merge File Comparison Report

Produced by Araxis Merge on 2/1/2017 2:56:48 PM Eastern Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

494.1 Files compared

# Location File Last Modified
1 C:\Araxis_Merge_Comprasion\Pub_un\BTSSS_CIF_122016.zip\BTSSS_CIF_12_20_16\clean\CRM\trunk\SDK\SampleCode\CS\Metadata\Relationships DumpRelationships.cs Tue Dec 20 19:51:47 2016 UTC
2 Wed Feb 1 19:56:48 2017 UTC

494.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 0 0
Changed 0 0
Inserted 0 0
Removed 1 319

494.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

494.4 Active regular expressions

No regular expressions were active.

494.5 Comparison detail

1   // ======= ========== ========== ========== ========== ========== ========== ==        
2   //        
3   //  This f ile is par t of the M icrosoft D ynamics CR M SDK code  samples.        
4   //        
5   //  Copyri ght (C) Mi crosoft Co rporation.   All righ ts reserve d.        
6   //        
7   //  This s ource code  is intend ed only as  a supplem ent to Mic rosoft        
8   //  Develo pment Tool s and/or o n-line doc umentation .  See the se other        
9   //  materi als for de tailed inf ormation r egarding M icrosoft c ode sample s.        
10   //        
11   //  THIS C ODE AND IN FORMATION  ARE PROVID ED "AS IS"  WITHOUT W ARRANTY OF  ANY        
12   //  KIND,  EITHER EXP RESSED OR  IMPLIED, I NCLUDING B UT NOT LIM ITED TO TH E        
13   //  IMPLIE D WARRANTI ES OF MERC HANTABILIT Y AND/OR F ITNESS FOR  A        
14   //  PARTIC ULAR PURPO SE.        
15   //        
16   // ======= ========== ========== ========== ========== ========== ========== ==        
17   //<snippet DumpRelati onshipInfo >        
18   using Syst em;        
19   using Syst em.Linq;        
20   using Syst em.Xml.Lin q;        
21   using Syst em.Service Model;        
22   using Syst em.Service Model.Desc ription;        
23   using Syst em.Collect ions.Gener ic;        
24   using Syst em.Xml.Ser ialization ;        
25   using Syst em.Xml;        
26   using Syst em.IO;        
27          
28   // These n amespaces  are found  in the Mic rosoft.Xrm .Sdk.dll a ssembly        
29   // found i n the SDK\ bin folder .        
30   using Micr osoft.Xrm. Sdk;        
31   using Micr osoft.Xrm. Sdk.Query;        
32   using Micr osoft.Xrm. Sdk.Metada ta;        
33   using Micr osoft.Xrm. Sdk.Client ;        
34   using Micr osoft.Xrm. Sdk.Messag es;        
35          
36   // This na mespace is  found in  Microsoft. Crm.Sdk.Pr oxy.dll as sembly        
37   // found i n the SDK\ bin folder .        
38   using Micr osoft.Crm. Sdk.Messag es;        
39          
40   namespace  Microsoft. Crm.Sdk.Sa mples        
41   {        
42       /// <s ummary>        
43       /// Th is sample  shows how  to retriev e and writ e out enti ty metadat a.        
44       /// </ summary>        
45       public  class Dum pRelations hipInfo        
46       {        
47           #r egion Clas s Level Me mbers        
48          
49           // / <summary >        
50           // / Stores t he organiz ation serv ice proxy.        
51           // / </summar y>        
52           Or ganization ServicePro xy _servic eProxy;        
53          
54           //  Create st orage for  new attrib utes being  created        
55           pu blic List< AttributeM etadata> a ddedAttrib utes;        
56          
57           //  Specify w hich langu age code t o use in t he sample.  If you ar e using a  language        
58           //  other tha n US Engli sh, you wi ll need to  modify th is value a ccordingly .        
59           //  See http: //msdn.mic rosoft.com /en-us/lib rary/0h88f ahh.aspx        
60           pu blic const  int _lang uageCode =  1033;        
61          
62           //  Define th e IDs/vari ables need ed for thi s sample.        
63           pu blic int _ insertedSt atusValue;        
64          
65           #e ndregion C lass Level  Members        
66          
67           #r egion How  To Sample  Code        
68           // / <summary >        
69           // / </summar y>        
70           // / <param n ame="serve rConfig">C ontains se rver conne ction info rmation.</ param>        
71           // / <param n ame="promp tForDelete ">When Tru e, the use r will be  prompted t o delete a ll        
72           // / created  entities.< /param>        
73           pu blic void  Run(Server Connection .Configura tion serve rConfig, b ool prompt ForDelete)        
74           {        
75                try        
76                {        
77          
78                    // C onnect to  the Organi zation ser vice.         
79                    // T he using s tatement a ssures tha t the serv ice proxy  will be pr operly dis posed.        
80                    usin g (_servic eProxy = n ew Organiz ationServi ceProxy(se rverConfig .Organizat ionUri, se rverConfig .HomeRealm Uri,server Config.Cre dentials,  serverConf ig.DeviceC redentials ))        
81                    {        
82                         // This st atement is  required  to enable  early-boun d type sup port.        
83                         _servicePr oxy.Enable ProxyTypes ();        
84          
85                         //<snippet DumpRelati onshipInfo 1>        
86                         RetrieveAl lEntitiesR equest req uest = new  RetrieveA llEntities Request()        
87                         {        
88                             Entity Filters =  EntityFilt ers.Relati onships,        
89                             Retrie veAsIfPubl ished = tr ue        
90                         };        
91          
92                         // Retriev e the Meta Data.        
93                         RetrieveAl lEntitiesR esponse re sponse = ( RetrieveAl lEntitiesR esponse)_s erviceProx y.Execute( request);        
94                                
95          
96                         // Create  an instanc e of Strea mWriter to  write tex t to a fil e.        
97                         // The usi ng stateme nt also cl oses the S treamWrite r.        
98                                 //  To view t his file,  right clic k the file  and choos e open wit h Excel.         
99                                 //  Excel wil l figure o ut the sch ema and di splay the  informatio n in colum ns.        
100          
101                         String fil ename = St ring.Conca t("Relatio nshipInfo. xml");        
102                         using (Str eamWriter  sw = new S treamWrite r(filename ))        
103                         {        
104                             // Cre ate Xml Wr iter.        
105                             XmlTex tWriter me tadataWrit er = new X mlTextWrit er(sw);        
106          
107                             // Sta rt Xml Fil e.        
108                             metada taWriter.W riteStartD ocument();        
109          
110                             // Met adata Xml  Node.        
111                             metada taWriter.W riteStartE lement("Me tadata");        
112          
113                             foreac h (EntityM etadata cu rrentEntit y in respo nse.Entity Metadata)        
114                             {        
115                                 // if (curren tEntity.Is Intersect. Value == f alse)        
116                                 if  (true)        
117                                 {        
118                                      // Start  Entity No de        
119                                      metadata Writer.Wri teStartEle ment("Enti ty");        
120          
121                                      // Write  the Entit y's Inform ation.        
122                                      metadata Writer.Wri teElementS tring("Ent itySchemaN ame", curr entEntity. SchemaName );        
123          
124                                      // Start  OneToMany Relationsh ips Node        
125                                      metadata Writer.Wri teStartEle ment("OneT oManyRelat ionships") ;        
126          
127                                      foreach  (OneToMany Relationsh ipMetadata  currentRe lationship  in curren tEntity.On eToManyRel ationships )        
128                                      {        
129                                          // S tart  Node        
130                                          meta dataWriter .WriteStar tElement(" Relationsh ip");        
131          
132                                          meta dataWriter .WriteElem entString( "OtoM_Sche maName", c urrentRela tionship.S chemaName) ;        
133                                          meta dataWriter .WriteElem entString( "OtoM_Refe rencingEnt ity", curr entRelatio nship.Refe rencingEnt ity);        
134                                          meta dataWriter .WriteElem entString( "OtoM_Refe rencedEnti ty", curre ntRelation ship.Refer encedEntit y);        
135                                          // E nd  Node        
136                                          meta dataWriter .WriteEndE lement();        
137          
138                                      }        
139          
140                                      // End O neToManyRe lationship s Node        
141                                      metadata Writer.Wri teEndEleme nt();        
142          
143                                      // Start  ManyToMan yRelations hips Node        
144                                      metadata Writer.Wri teStartEle ment("Many ToManyRela tionships" );        
145          
146          
147                                      foreach  (ManyToMan yRelations hipMetadat a currentR elationshi p in curre ntEntity.M anyToManyR elationshi ps)        
148                                      {        
149                                          // S tart  Node        
150                                          meta dataWriter .WriteStar tElement(" Relationsh ip");        
151                                                  
152                                          meta dataWriter .WriteElem entString( "MtoM_Sche maName", c urrentRela tionship.S chemaName) ;        
153                                          meta dataWriter .WriteElem entString( "MtoM_Enti ty1", curr entRelatio nship.Enti ty1Logical Name);        
154                                          meta dataWriter .WriteElem entString( "MtoM_Enti ty2", curr entRelatio nship.Enti ty2Logical Name);        
155                                          meta dataWriter .WriteElem entString( "Intersect Entity", c urrentRela tionship.I ntersectEn tityName);        
156                                          // E nd  Node        
157                                          meta dataWriter .WriteEndE lement();        
158          
159                                      }        
160          
161                                      // End M anyToManyR elationshi ps Node        
162                                      metadata Writer.Wri teEndEleme nt();        
163          
164                                      // Start  ManyToOne Relationsh ips Node        
165                                      metadata Writer.Wri teStartEle ment("Many ToOneRelat ionships") ;        
166          
167          
168                                      foreach  (OneToMany Relationsh ipMetadata  currentRe lationship  in curren tEntity.Ma nyToOneRel ationships )        
169                                      {        
170                                          // S tart  Node        
171                                          meta dataWriter .WriteStar tElement(" Relationsh ip");        
172          
173                                          meta dataWriter .WriteElem entString( "MtoO_Sche maName", c urrentRela tionship.S chemaName) ;        
174                                          meta dataWriter .WriteElem entString( "MtoO_Refe rencingEnt ity", curr entRelatio nship.Refe rencingEnt ity);        
175                                          meta dataWriter .WriteElem entString( "MtoO_Refe rencedEnti ty", curre ntRelation ship.Refer encedEntit y);        
176                                          // E nd  Node        
177                                          meta dataWriter .WriteEndE lement();        
178          
179                                      }        
180          
181                                      // End M anyToOneRe lationship s Node        
182                                      metadata Writer.Wri teEndEleme nt();        
183          
184                                      // End R elationshi ps Node        
185                                      // metad ataWriter. WriteEndEl ement();        
186          
187          
188          
189                                      // End E ntity Node        
190                                      metadata Writer.Wri teEndEleme nt();        
191                                 }        
192                             }        
193          
194                             // End  Metadata  Xml Node        
195                             metada taWriter.W riteEndEle ment();        
196                             metada taWriter.W riteEndDoc ument();        
197          
198                             // Clo se xml wri ter.        
199                             metada taWriter.C lose();        
200                         }        
201          
202          
203          
204          
205                       C onsole.Wri teLine("Do ne.");        
206                         //</snippe tDumpRelat ionshipInf o1>        
207          
208                         //DeleteRe quiredReco rds(prompt ForDelete) ;        
209                    }        
210                }        
211          
212                // Catch  any servi ce fault e xceptions  that Micro soft Dynam ics CRM th rows.        
213                catch (F aultExcept ion<Micros oft.Xrm.Sd k.Organiza tionServic eFault>)        
214                {        
215                    // Y ou can han dle an exc eption her e or pass  it back to  the calli ng method.        
216                    thro w;        
217                }        
218           }        
219          
220           // / <summary >        
221           // / Deletes/ Reverts th e record t hat was cr eated/chan ged for th is sample.        
222           // / <param n ame="promp t">Indicat es whether  to prompt  the user  to delete         
223           // / the reco rds create d in this  sample.</p aram>        
224           // / </summar y>        
225           pu blic void  DeleteRequ iredRecord s(bool pro mpt)        
226           {        
227                bool del eteRecords  = true;        
228          
229                if (prom pt)        
230                {        
231                    Cons ole.WriteL ine(        
232                         "\nDo you  want these  entity re cords to b e deleted?  (y/n)");        
233                    Stri ng answer  = Console. ReadLine() ;        
234          
235                    dele teRecords  = (answer. StartsWith ("y") || a nswer.Star tsWith("Y" ));        
236                }        
237          
238                if (dele teRecords)        
239                {        
240            
241                }        
242           }        
243           #e ndregion H ow To Samp le Code        
244          
245           #r egion Main        
246           // / <summary >        
247           // / Standard  Main() me thod used  by most SD K samples.        
248           // / </summar y>        
249           // / <param n ame="args" ></param>        
250           st atic publi c void Mai n(string[]  args)        
251           {        
252                try        
253                {        
254                    // O btain the  target org anization' s Web addr ess and cl ient logon          
255                    // c redentials  from the  user.        
256                    Serv erConnecti on serverC onnect = n ew ServerC onnection( );        
257                    Serv erConnecti on.Configu ration con fig = serv erConnect. GetServerC onfigurati on();        
258          
259                    Dump Relationsh ipInfo app  = new Dum pRelations hipInfo();        
260                    app. Run(config , false);        
261                }        
262                catch (F aultExcept ion<Micros oft.Xrm.Sd k.Organiza tionServic eFault> ex )        
263                {        
264                    Cons ole.WriteL ine("The a pplication  terminate d with an  error.");        
265                    Cons ole.WriteL ine("Times tamp: {0}" , ex.Detai l.Timestam p);        
266                    Cons ole.WriteL ine("Code:  {0}", ex. Detail.Err orCode);        
267                    Cons ole.WriteL ine("Messa ge: {0}",  ex.Detail. Message);        
268                    Cons ole.WriteL ine("Plugi n Trace: { 0}", ex.De tail.Trace Text);        
269                    Cons ole.WriteL ine("Inner  Fault: {0 }",        
270                         null == ex .Detail.In nerFault ?  "No Inner  Fault" :  "Has Inner  Fault");        
271                }        
272                catch (S ystem.Time outExcepti on ex)        
273                {        
274                    Cons ole.WriteL ine("The a pplication  terminate d with an  error.");        
275                    Cons ole.WriteL ine("Messa ge: {0}",  ex.Message );        
276                    Cons ole.WriteL ine("Stack  Trace: {0 }", ex.Sta ckTrace);        
277                    Cons ole.WriteL ine("Inner  Fault: {0 }",        
278                         null == ex .InnerExce ption.Mess age ? "No  Inner Faul t" : ex.In nerExcepti on.Message );        
279                }        
280                catch (S ystem.Exce ption ex)        
281                {        
282                    Cons ole.WriteL ine("The a pplication  terminate d with an  error.");        
283                    Cons ole.WriteL ine(ex.Mes sage);        
284          
285                    // D isplay the  details o f the inne r exceptio n.        
286                    if ( ex.InnerEx ception !=  null)        
287                    {        
288                         Console.Wr iteLine(ex .InnerExce ption.Mess age);        
289          
290                         FaultExcep tion<Micro soft.Xrm.S dk.Organiz ationServi ceFault> f e        
291                             = ex.I nnerExcept ion        
292                             as Fau ltExceptio n<Microsof t.Xrm.Sdk. Organizati onServiceF ault>;        
293                         if (fe !=  null)        
294                         {        
295                             Consol e.WriteLin e("Timesta mp: {0}",  fe.Detail. Timestamp) ;        
296                             Consol e.WriteLin e("Code: { 0}", fe.De tail.Error Code);        
297                             Consol e.WriteLin e("Message : {0}", fe .Detail.Me ssage);        
298                             Consol e.WriteLin e("Plugin  Trace: {0} ", fe.Deta il.TraceTe xt);        
299                             Consol e.WriteLin e("Inner F ault: {0}" ,        
300                                 nu ll == fe.D etail.Inne rFault ? " No Inner F ault" : "H as Inner F ault");        
301                         }        
302                    }        
303                }        
304                // Addit ional exce ptions to  catch: Sec urityToken Validation Exception,  ExpiredSe curityToke nException ,        
305                // Secur ityAccessD eniedExcep tion, Mess ageSecurit yException , and Secu rityNegoti ationExcep tion.        
306          
307                finally        
308                {        
309                            
310                    Cons ole.WriteL ine("Press  <Enter> t o exit.");        
311                    Cons ole.ReadLi ne();        
312                }        
313          
314           }        
315           #e ndregion M ain        
316          
317       }        
318   }        
319   //</snippe tDumpRelat ionshipInf o>