public void TryDeleteAllTestData() { /* * Delete in following order: * ========================== * 1. Delete Contact.RelationAddress * 2. Delete Contact.RelationDocument * 3. Delete Contact.Relation * 4. Delete Contact.[Address] * 5. Delete Contact.Document * 6. Delete Contact.Country */ foreach (string id in ContactTestFixtureData.Keys.RelationAddress.Values) { Result item = ContactAgentFactory .CreateContactAgent() .DeleteRelationAddressItem(id); ErrorStringDelete(item, "RelationAddressItem", id); } foreach (string id in ContactTestFixtureData.Keys.RelationDocument.Values) { Result item = agent.DeleteRelationDocumentItem(id); ErrorStringDelete(item, "RelationDocumentItem", id); } foreach (string id in ContactTestFixtureData.Keys.Relation.Values) { Result item = agent.DeleteRelationItem(id); ErrorStringDelete(item, "RelationItem", id); } foreach (string id in ContactTestFixtureData.Keys.Address.Values) { Result item = agent.DeleteAddressItem(id); ErrorStringDelete(item, "AddressItem", id); } foreach (string id in ContactTestFixtureData.Keys.Document.Values) { Result item = agent.DeleteDocumentItem(id); ErrorStringDelete(item, "DocumentItem", id); } foreach (string id in ContactTestFixtureData.Keys.Country.Values) { Result item = agent.DeleteCountryItem(id); ErrorStringDelete(item, "CountryItem", id); } }
public void TryTransactionScope() { int count; TryDeleteAllTestData(); var countryItems = GetCountryItems(); var documentItems = new List <DocumentItem> { GetDocumentItem(ContactTestFixtureData.Keys.Document[1]), GetDocumentItem(ContactTestFixtureData.Keys.Document[2]), GetDocumentItem(ContactTestFixtureData.Keys.Document[3]) }; var addressItems = new List <AddressItem> { GetAddressItem(ContactTestFixtureData.Keys.Address[1]), GetAddressItem(ContactTestFixtureData.Keys.Address[2]), new AddressItem() }; try { var countryItemsSaved = new List <CountryItem>(countryItems.Count); count = countryItems.Count; for (var i = 0; i < count; i++) { CountryItem countryItemSaved = ContactAgentFactory .CreateCountryAgent() .SaveCountryItem(countryItems[i]); Debug.WriteLineIf(countryItemSaved.HasErrors, "Error saving countryitem " + (i + 1) + " / " + count + "\n\t" + countryItemSaved.Errors); countryItemsSaved.Add(countryItemSaved); } using (var scope = new TransactionScope()) { var addressItemsSaved = new List <AddressItem>(addressItems.Count); var documentItemsSaved = new List <DocumentItem>(documentItems.Count); count = documentItems.Count; for (var i = 0; i < count; i++) { DocumentItem documentItemSaved = ContactAgentFactory .CreateDocumentAgent() .SaveDocumentItem(documentItems[i]); documentItemsSaved.Add(documentItemSaved); } count = addressItems.Count; for (var i = 0; i < count; i++) { AddressItem addressItemSaved = ContactAgentFactory .CreateAddressAgent() .SaveAddressItem(addressItems[i]); Debug.WriteLineIf(addressItemSaved.HasErrors, "Error saving AddressItem " + (i + 1) + " / " + count + "\n\tError = " + GetErrorString(addressItemSaved.Errors)); addressItemsSaved.Add(addressItemSaved); } bool succes = !(from i in documentItemsSaved where i.HasErrors select i).Any() & !(from i in addressItemsSaved where i.HasErrors select i).Any(); if (succes) { scope.Complete(); Debug.WriteLine("OK"); } else { throw new ApplicationException(GetErrorString(addressItemsSaved.ToArray()) + GetErrorString(documentItemsSaved.ToArray())); } } } catch (Exception ex) { Debug.WriteLine("Error(s) occured.\n" + ex.Message); } }
public void TryGetRelationAddresses() { IContactAgent agent = ContactAgentFactory.CreateContactAgent(); List <DocumentItem> documentItemsSaved; List <AddressItem> addressItemsSaved; RelationItem relationItemSaved; List <RelationAddressItem> relationAddressItemsSaved; List <RelationDocumentItem> relationDocumentItemsSaved; List <CountryItem> countryItemsSaved; AddressItem[] addressItems; int count = 0; try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { Debug.WriteLine("Creating all objects on " + DateTime.Now); List <AddressItem> addressItemsNew = GetAddressItems(2); List <CountryItem> countryItemsNew = GetCountryItems(2); List <DocumentItem> documentItemsNew = GetDocumentItems(2); RelationItem relationItemNew = GetRelationItem(); List <RelationAddressItem> relationAddressItemsNew = GetRelationAddressItems(2); List <RelationDocumentItem> relationDocumentItemsNew = GetRelationDocumentItems(2); Debug.WriteLine("All objects in memory on {0}", DateTime.Now); Debug.WriteLine("Saving all objects"); count = countryItemsNew.Count; countryItemsSaved = new List <CountryItem>(count); Debug.WriteLine("Saving countries objects"); for (int i = 0; i < count; i++) { CountryItem countryItemSaved = agent.SaveCountryItem(countryItemsNew[i]); Debug.WriteLine("CountryItem {0} / {1} saved {2}on {3}", (i + 1), count, (countryItemSaved.HasErrors ? "with errors " : ""), DateTime.Now); countryItemsSaved.Add(countryItemSaved); } count = documentItemsNew.Count; documentItemsSaved = new List <DocumentItem>(count); Debug.WriteLine("Saving documents objects"); for (int i = 0; i < count; i++) { DocumentItem documentItemSaved = agent.SaveDocumentItem(documentItemsNew[i]); Debug.WriteLine("DocumentItem {0} / {1} saved {2}on {3}", (i + 1), count, (documentItemSaved.HasErrors ? "with errors " : ""), DateTime.Now); documentItemsSaved.Add(documentItemSaved); } relationItemSaved = agent.SaveRelationItem(relationItemNew); Debug.WriteLine("AddressItem saved {0}on {1}", (relationItemSaved.HasErrors ? "with errors " : ""), DateTime.Now); count = addressItemsNew.Count; addressItemsSaved = new List <AddressItem>(count); Debug.WriteLine("Saving addresses objects"); for (int i = 0; i < count; i++) { AddressItem addressItemSaved = agent.SaveAddressItem(addressItemsNew[i]); Debug.WriteLine("CountryItem {0} / {1} saved {2}on {3}", (i + 1), count, (addressItemSaved.HasErrors ? "with errors " : ""), DateTime.Now); addressItemsSaved.Add(addressItemSaved); } count = relationAddressItemsNew.Count; relationAddressItemsSaved = new List <RelationAddressItem>(count); Debug.WriteLine("Saving RelationAddress objects"); for (int i = 0; i < count; i++) { RelationAddressItem relationAddressItemSaved = agent.SaveRelationAddressItem(relationAddressItemsNew[i]); Debug.WriteLine("RelationAddressItem {0} / {1} saved {2}on {3}", (i + 1), count, (relationAddressItemSaved.HasErrors ? "with errors " : ""), DateTime.Now); relationAddressItemsSaved.Add(relationAddressItemSaved); } count = relationDocumentItemsNew.Count; relationDocumentItemsSaved = new List <RelationDocumentItem>(count); Debug.WriteLine("Saving RelationDocument objects"); for (int i = 0; i < count; i++) { RelationDocumentItem relationDocumentItemSaved = agent.SaveRelationDocumentItem(relationDocumentItemsNew[i]); Debug.WriteLine("RelationDocumentItem {0} / {1} saved {2}on {3}", (i + 1), count, (relationDocumentItemSaved.HasErrors ? "with errors " : ""), DateTime.Now); relationDocumentItemsSaved.Add(relationDocumentItemSaved); } Debug.WriteLine("All objects saved"); Debug.WriteLine("Before commiting transaction"); scope.Complete(); Debug.WriteLine("Commit transaction completed"); } addressItems = agent.GetAddressItemsForRelation(ContactTestFixtureData.Keys.Relation[1]); } catch (Exception e) { Debug.WriteLine("Error(s) occured\n" + e.Message); } }