public void TempPartyToPermanentTest() { PartyManager partyManager = new PartyManager(); PartyTypeManager partyTypeManager = new PartyTypeManager(); var partyStatusTypes = new List <PartyStatusType>(); partyStatusTypes.Add(new PartyStatusType() { Name = "Created", Description = "" }); var partyTypeTest = partyTypeManager.Create("partyTypeTitle", "", "", partyStatusTypes); var partyStatusType = partyTypeManager.GetStatusType(partyTypeTest, "Created"); //create cstom attributes var partyCustomAttribute1 = partyTypeManager.CreatePartyCustomAttribute(partyTypeTest, "String", "FirstName", "", "", "", isMain: true); var partyCustomAttribute2 = partyTypeManager.CreatePartyCustomAttribute(partyTypeTest, "String", "LastName", "", "", "", isMain: true); var partyCustomAttribute3 = partyTypeManager.CreatePartyCustomAttribute(partyTypeTest, "Int", "Age", "", "", ""); //create with CustomAttributeValues<Id,value> Dictionary <long, String> customAttributeValues = new Dictionary <long, string>(); customAttributeValues.Add(partyCustomAttribute1.Id, "Masoud"); customAttributeValues.Add(partyCustomAttribute2.Id, "Allahyari"); customAttributeValues.Add(partyCustomAttribute3.Id, "31"); var party = partyManager.Create(partyTypeTest, "description test", DateTime.Now.AddDays(-10), DateTime.Now.AddDays(10), customAttributeValues); party.IsTemp.Should().Be(true); partyManager.TempPartyToPermanent(party.Id); var party_ = partyManager.GetParty(party.Id); party_.IsTemp.Should().Be(false); partyManager.Delete(party); partyTypeManager.Delete(partyTypeTest); }
public void DeletePartyTest() { //Deleting single party is already tested in PartyCreation PartyManager partyManager = new PartyManager(); PartyTypeManager partyTypeManager = new PartyTypeManager(); var partyStatusTypes = new List <PartyStatusType>(); partyStatusTypes.Add(new PartyStatusType() { Name = "Created", Description = "" }); var partyTypeTest = partyTypeManager.Create("partyTypeTitle", "", "", partyStatusTypes); var partyStatusType = partyTypeManager.GetStatusType(partyTypeTest, "Created"); var party1 = partyManager.Create(partyTypeTest, "alias", "description test", DateTime.Now.AddMonths(-1), DateTime.Now.AddMonths(1), partyStatusType); var party2 = partyManager.Create(partyTypeTest, "alias2", "description test2", DateTime.Now.AddMonths(-1), DateTime.Now.AddMonths(1), partyStatusType); List <Dlm.Entities.Party.Party> parties = new List <Dlm.Entities.Party.Party>(); parties.Add(party1); parties.Add(party2); partyManager.Delete(parties); var party1AfterDelete = partyManager.PartyRepository.Get(party1.Id); var party2AfterDelete = partyManager.PartyRepository.Get(party2.Id); party1AfterDelete.Should().BeNull(); party2AfterDelete.Should().BeNull(); partyTypeManager.Delete(partyTypeTest); }
/// <summary> /// /// </summary> /// <param name="startDate"></param> /// <param name="endDate"></param> /// <param name="description"></param> /// <param name="partyTypeId"></param> /// <param name="partyCustomAttributeValues">CustomAttributeName or Id as key</param> /// <returns></returns> internal static Party CreateParty(DateTime?startDate, DateTime?endDate, string description, long partyTypeId, Dictionary <string, string> partyCustomAttributeValuesDict) { using (PartyTypeManager partyTypeManager = new PartyTypeManager()) using (PartyManager partyManager = new PartyManager()) using (PartyRelationshipTypeManager partyRelationshipTypeManager = new PartyRelationshipTypeManager()) { var newParty = new Party(); PartyType partyType = partyTypeManager.PartyTypeRepository.Get(partyTypeId); var partyStatusType = partyTypeManager.GetStatusType(partyType, "Created"); // save party as temp if the reationships are required var requiredPartyRelationTypes = partyRelationshipTypeManager.GetAllPartyRelationshipTypes(partyType.Id).Where(cc => cc.MinCardinality > 0); //Create party newParty = partyManager.Create(partyType, "", description, startDate, endDate, partyStatusType, requiredPartyRelationTypes.Any()); partyManager.AddPartyCustomAttributeValues(newParty, toPartyCustomAttributeValues(partyCustomAttributeValuesDict, partyTypeId)); // partyManager.AddPartyRelationship(null,TargetPartyId,PartyTypePairid) //var systemPartyTypePairs = GetSystemTypePairs(newParty.PartyType.Id); ////add relationship to the all targets //foreach (var systemPartyTypePair in systemPartyTypePairs) //{ // foreach (var targetParty in systemPartyTypePair.TargetPartyType.Parties) // { // PartyTypePair partyTypePair = partyRelationshipTypeManager.PartyTypePairRepository.Reload(systemPartyTypePair); // partyManager.AddPartyRelationship(partyManager.PartyRepository.Reload(newParty), targetParty, "system", "", systemPartyTypePair, permission: systemPartyTypePair.PermissionTemplate); // } //} return(newParty); } }
public ActionResult CreateUserParty(Party party, Dictionary <string, string> partyCustomAttributeValues, List <PartyRelationship> partyRelationships) { using (PartyTypeManager partyTypeManager = new PartyTypeManager()) using (PartyManager partyManager = new PartyManager()) using (PartyRelationshipTypeManager partyRelationshipManager = new PartyRelationshipTypeManager()) using (UserManager userManager = new UserManager()) using (PartyRelationshipTypeManager partyRelationshipTypeManager = new PartyRelationshipTypeManager()) { // check if var userTask = userManager.FindByNameAsync(HttpContext.User.Identity.Name); userTask.Wait(); var user = userTask.Result; //check if the party blongs to the user //Bind party if there is already a user associated to this party var partyuser = partyManager.GetPartyByUser(user.Id); if (partyuser == null) { var partyType = partyTypeManager.PartyTypeRepository.Get(party.PartyType.Id); var partyStatusType = partyTypeManager.GetStatusType(partyType, "Created"); //Create party party = partyManager.Create(partyType, party.Description, null, null, partyCustomAttributeValues.ToDictionary(cc => long.Parse(cc.Key), cc => cc.Value)); if (partyRelationships != null) { foreach (var partyRelationship in partyRelationships) { //the duration is from current datetime up to the end of target party date var TargetParty = partyManager.PartyRepository.Get(partyRelationship.TargetParty.Id); // var partyRelationshipType = partyRelationshipManager.PartyRelationshipTypeRepository.Get(partyRelationship.PartyRelationshipType.Id); var partyTypePair = partyRelationshipManager.PartyTypePairRepository.Get(partyRelationship.PartyTypePair.Id); partyManager.AddPartyRelationship(party, TargetParty, partyRelationship.Title, partyRelationship.Description, partyTypePair, DateTime.Now, TargetParty.EndDate, partyRelationship.Scope); } } partyManager.AddPartyUser(party, user.Id); //set FullName in user var p = partyManager.GetParty(party.Id); string displayName = String.Join(" ", p.CustomAttributeValues. Where(ca => ca.CustomAttribute.IsMain.Equals(true)). OrderBy(ca => ca.CustomAttribute.Id). Select(ca => ca.Value).ToArray()); user.DisplayName = displayName; userManager.UpdateAsync(user); } return(RedirectToAction("Index")); } }
public ActionResult Create(PartyModel partyModel, Dictionary<string, string> partyCustomAttributeValues) { PartyTypeManager partyTypeManager = new PartyTypeManager(); PartyManager partyManager = new PartyManager(); validateAttribute(partyModel); if (partyModel.Errors.Count > 0) return View(partyModel); // var partyType = partyTypeManager.Repo.Get(partyModel.Party.PartyType.Id); var partyStatusType = partyTypeManager.GetStatusType(partyType, "Create"); //Create party var party = partyManager.Create(partyType, partyModel.Party.Name, "", "", partyModel.Party.StartDate, partyModel.Party.EndDate, partyStatusType); //Add customAttriuteValue to party partyManager.AddPartyCustomAttriuteValue(party, ConvertDictionaryToPartyCustomeAttrValuesDictionary(partyCustomAttributeValues)); return RedirectToAction("Index"); }
public void UpdatePartyTest() { //Deleting single party is already tested in PartyCreation PartyManager partyManager = new PartyManager(); PartyTypeManager partyTypeManager = new PartyTypeManager(); var partyStatusTypes = new List <PartyStatusType>(); partyStatusTypes.Add(new PartyStatusType() { Name = "Created", Description = "" }); var partyTypeTest = partyTypeManager.Create("partyTypeTitle", "", "", partyStatusTypes); var partyStatusType = partyTypeManager.GetStatusType(partyTypeTest, "Created"); //create cstom attributes var partyCustomAttribute1 = partyTypeManager.CreatePartyCustomAttribute(partyTypeTest, "String", "FirstName", "", "", "", isMain: true); var partyCustomAttribute2 = partyTypeManager.CreatePartyCustomAttribute(partyTypeTest, "String", "LastName", "", "", "", isMain: true); var partyCustomAttribute3 = partyTypeManager.CreatePartyCustomAttribute(partyTypeTest, "Int", "Age", "", "", ""); //create with CustomAttributeValues<Id,value> Dictionary <long, String> customAttributeValues = new Dictionary <long, string>(); customAttributeValues.Add(partyCustomAttribute1.Id, "Masoud"); customAttributeValues.Add(partyCustomAttribute2.Id, "Allahyari"); customAttributeValues.Add(partyCustomAttribute3.Id, "31"); var party = partyManager.Create(partyTypeTest, "description test", DateTime.Now.AddDays(-10), DateTime.Now.AddDays(10), customAttributeValues); var updatedParty = partyManager.PartyRepository.Get(party.Id); updatedParty.Alias = "alias2"; updatedParty.Description = "desc"; updatedParty.EndDate = DateTime.Now.AddMonths(1); updatedParty.StartDate = DateTime.Now.AddMonths(-1); partyManager.Update(updatedParty); var fetchedParty = partyManager.PartyRepository.Get(party.Id); //First name and lastname in custom attributes were defined as main;therefore, party name should be "name lastname" party.Name.Should().BeEquivalentTo("Masoud Allahyari"); party.Alias.Should().BeEquivalentTo(fetchedParty.Alias); party.Description.Should().BeEquivalentTo(fetchedParty.Description); party.EndDate.ToShortDateString().Should().Be(fetchedParty.EndDate.ToShortDateString()); party.PartyType.Id.Should().Be(fetchedParty.PartyType.Id); party.StartDate.ToShortDateString().Should().Be(fetchedParty.StartDate.ToShortDateString()); party.Id.Should().Be(fetchedParty.Id); partyManager.Delete(party); partyTypeManager.Delete(partyTypeTest); }
public ActionResult CreateUserParty(Party party, Dictionary <string, string> partyCustomAttributeValues, List <PartyRelationship> partyRelationships) { PartyTypeManager partyTypeManager = null; PartyManager partyManager = null; PartyRelationshipTypeManager partyRelationshipManager = null; UserManager userManager = null; try { //check if the party blongs to the user //Bind party if there is already a user associated to this party userManager = new UserManager(); partyTypeManager = new PartyTypeManager(); partyManager = new PartyManager(); partyRelationshipManager = new PartyRelationshipTypeManager(); var partyType = partyTypeManager.PartyTypeRepository.Get(party.PartyType.Id); var partyStatusType = partyTypeManager.GetStatusType(partyType, "Created"); //Create party party = partyManager.Create(partyType, party.Description, null, null, partyCustomAttributeValues.ToDictionary(cc => long.Parse(cc.Key), cc => cc.Value)); if (partyRelationships != null) { foreach (var partyRelationship in partyRelationships) { //the duration is from current datetime up to the end of target party date var secondParty = partyManager.PartyRepository.Get(partyRelationship.SecondParty.Id); var partyRelationshipType = partyRelationshipManager.PartyRelationshipTypeRepository.Get(partyRelationship.PartyRelationshipType.Id); var partyTypePair = partyRelationshipManager.PartyTypePairRepository.Get(partyRelationship.PartyTypePair.Id); partyManager.AddPartyRelationship(party, secondParty, partyRelationshipType, partyRelationship.Title, partyRelationship.Description, partyTypePair, DateTime.Now, secondParty.EndDate, partyRelationship.Scope); } } var userTask = userManager.FindByNameAsync(HttpContext.User.Identity.Name); userTask.Wait(); var user = userTask.Result; partyManager.AddPartyUser(party, user.Id); return(RedirectToAction("Index")); } finally { partyTypeManager?.Dispose(); partyManager?.Dispose(); partyRelationshipManager?.Dispose(); } }
public void AddPartyRelationshipTest() { PartyManager partyManager = new PartyManager(); PartyTypeManager partyTypeManager = new PartyTypeManager(); var partyStatusTypes = new List <PartyStatusType>(); partyStatusTypes.Add(new PartyStatusType() { Name = "Created", Description = "" }); var partyTypeTest = partyTypeManager.Create("partyTypeTitle", "", "", partyStatusTypes); var partyTypeTest2 = partyTypeManager.Create("partyTypeTitle2", "", "", partyStatusTypes); var partyStatusType = partyTypeManager.GetStatusType(partyTypeTest, "Created"); //create cstom attributes var partyCustomAttribute1 = partyTypeManager.CreatePartyCustomAttribute(partyTypeTest, "String", "FirstName", "", "", "", isMain: true); var partyCustomAttribute2 = partyTypeManager.CreatePartyCustomAttribute(partyTypeTest, "String", "LastName", "", "", "", isMain: true); var partyCustomAttribute3 = partyTypeManager.CreatePartyCustomAttribute(partyTypeTest, "Int", "Age", "", "", ""); //create with CustomAttributeValues<Id,value> Dictionary <long, String> customAttributeValues = new Dictionary <long, string>(); customAttributeValues.Add(partyCustomAttribute1.Id, "Masoud"); customAttributeValues.Add(partyCustomAttribute2.Id, "Allahyari"); customAttributeValues.Add(partyCustomAttribute3.Id, "31"); var party = partyManager.Create(partyTypeTest2, "description test", DateTime.Now.AddDays(-10), DateTime.Now.AddDays(10), customAttributeValues); //create with CustomAttributeValues<Id,value> customAttributeValues = new Dictionary <long, string>(); customAttributeValues.Add(partyCustomAttribute1.Id, "Ali"); customAttributeValues.Add(partyCustomAttribute2.Id, "Wandern"); customAttributeValues.Add(partyCustomAttribute3.Id, "37"); var party2 = partyManager.Create(partyTypeTest, "description test", DateTime.Now.AddDays(-10), DateTime.Now.AddDays(10), customAttributeValues); //party type pair var prtManager = new PartyRelationshipTypeManager(); prtManager.Create("relationship test", "", "", true, 10, 0, true, partyTypeTest, partyTypeTest2, "type pair test", "", "", "", 0); // partyManager.AddPartyRelationship(party,party2,"relation test","",) //add relationship //test maximun and minimum cardinality }
internal static Party CreateParty(PartyModel partyModel, Dictionary <string, string> partyCustomAttributeValues) { PartyTypeManager partyTypeManager = new PartyTypeManager(); PartyManager partyManager = new PartyManager(); var party = new Party(); try { PartyType partyType = partyTypeManager.PartyTypeRepository.Get(partyModel.PartyType.Id); var partyStatusType = partyTypeManager.GetStatusType(partyType, "Created"); // save party as temp if the reationships are required var requiredPartyRelationTypes = new PartyRelationshipTypeManager().GetAllPartyRelationshipTypes(partyType.Id).Where(cc => cc.MinCardinality > 0); //Create party party = partyManager.Create(partyType, "", partyModel.Description, partyModel.StartDate, partyModel.EndDate, partyStatusType, requiredPartyRelationTypes.Any()); partyManager.AddPartyCustomAttributeValues(party, partyCustomAttributeValues.ToDictionary(cc => long.Parse(cc.Key), cc => cc.Value)); } finally { partyTypeManager?.Dispose(); partyManager?.Dispose(); } return(party); }
public void CreatePartyTest() { //Scenario: create, create with CustomAttributeValues<Id,value>, create with CustomAttributeValues<Name,value>, PartyManager partyManager = new PartyManager(); PartyTypeManager partyTypeManager = new PartyTypeManager(); var partyStatusTypes = new List <PartyStatusType>(); partyStatusTypes.Add(new PartyStatusType() { Name = "Created", Description = "" }); var partyTypeTest = partyTypeManager.Create("partyTypeTitle", "", "", partyStatusTypes); var partyStatusType = partyTypeManager.GetStatusType(partyTypeTest, "Created"); var party1 = partyManager.Create(partyTypeTest, "alias", "description test", DateTime.Now.AddMonths(-1), DateTime.Now.AddMonths(1), partyStatusType); party1.Should().NotBeNull(); party1.Id.Should().BeGreaterThan(0); var party1Id = party1.Id; var fetchedParty = partyManager.PartyRepository.Get(party1Id); party1.Name.Should().BeEquivalentTo(fetchedParty.Name); party1.Alias.Should().BeEquivalentTo(fetchedParty.Alias); party1.Description.Should().BeEquivalentTo(fetchedParty.Description); party1.EndDate.ToShortDateString().Should().BeEquivalentTo(fetchedParty.EndDate.ToShortDateString()); party1.PartyType.Id.Should().Be(fetchedParty.PartyType.Id); party1.StartDate.ToShortDateString().Should().BeEquivalentTo(fetchedParty.StartDate.ToShortDateString()); party1.Id.Should().Be(fetchedParty.Id); //cleanup partyManager.Delete(party1); var partyAfterDelete = partyManager.PartyRepository.Get(cc => cc.Id == party1Id).FirstOrDefault(); partyAfterDelete.Should().BeNull(); //create cstom attributes var partyCustomAttribute1 = partyTypeManager.CreatePartyCustomAttribute(partyTypeTest, "String", "FirstName", "", "", "", isMain: true); var partyCustomAttribute2 = partyTypeManager.CreatePartyCustomAttribute(partyTypeTest, "String", "LastName", "", "", "", isMain: true); var partyCustomAttribute3 = partyTypeManager.CreatePartyCustomAttribute(partyTypeTest, "Int", "Age", "", "", ""); //create with CustomAttributeValues<Id,value> Dictionary <long, String> customAttributeValues = new Dictionary <long, string>(); customAttributeValues.Add(partyCustomAttribute1.Id, "Masoud"); customAttributeValues.Add(partyCustomAttribute2.Id, "Allahyari"); customAttributeValues.Add(partyCustomAttribute3.Id, "31"); var party2 = partyManager.Create(partyTypeTest, "", null, null, customAttributeValues); var party2Id = party2.Id; var fetchedParty2 = partyManager.PartyRepository.Get(party2Id); //First name and lastname in custom attributes were defined as main;therefore, party name should be "name lastname" party2.Name.Should().BeEquivalentTo("Masoud Allahyari"); party2.Alias.Should().BeEquivalentTo(fetchedParty2.Alias); party2.Description.Should().BeEquivalentTo(fetchedParty2.Description); party2.EndDate.ToShortDateString().Should().Be(fetchedParty2.EndDate.ToShortDateString()); party2.PartyType.Id.Should().Be(fetchedParty2.PartyType.Id); party2.StartDate.ToShortDateString().Should().Be(fetchedParty2.StartDate.ToShortDateString()); party2.Id.Should().Be(fetchedParty2.Id); var fethedCustomAttributeValues = fetchedParty2.CustomAttributeValues; fethedCustomAttributeValues.Count().Should().Be(customAttributeValues.Count()); fethedCustomAttributeValues.Any(cc => cc.Value == "Masoud" && cc.CustomAttribute.Id == partyCustomAttribute1.Id).Should().Be(true); fethedCustomAttributeValues.Any(cc => cc.Value == "Allahyari" && cc.CustomAttribute.Id == partyCustomAttribute2.Id).Should().Be(true); fethedCustomAttributeValues.Any(cc => cc.Value == "31" && cc.CustomAttribute.Id == partyCustomAttribute3.Id).Should().Be(true); fethedCustomAttributeValues.Any(cc => cc.Value == "30" && cc.CustomAttribute.Id == partyCustomAttribute3.Id).Should().Be(false); //Cleanup DB partyManager.Delete(party2); //custom Attribute values should have benn deleted var customAttrValues = partyManager.PartyCustomAttributeValueRepository.Get(cc => cc.Party.Id == party2Id); customAttrValues.Count().Should().Be(0); //create with CustomAttributeValues<Name,value> Dictionary <String, String> customAttributeValues2 = new Dictionary <String, string>(); customAttributeValues2.Add(partyCustomAttribute1.Name, "Alex"); customAttributeValues2.Add(partyCustomAttribute2.Name, "Abedini"); customAttributeValues2.Add(partyCustomAttribute3.Name, "31"); var party3 = partyManager.Create(partyTypeTest, "", null, null, customAttributeValues2); var party3Id = party3.Id; var fetchedParty3 = partyManager.PartyRepository.Get(party3Id); party3.Name.Should().BeEquivalentTo("Alex Abedini"); party3.Alias.Should().BeEquivalentTo(fetchedParty3.Alias); party3.Description.Should().BeEquivalentTo(fetchedParty3.Description); party3.EndDate.ToShortDateString().Should().BeEquivalentTo(fetchedParty3.EndDate.ToShortDateString()); party3.PartyType.Id.Should().Be(fetchedParty3.PartyType.Id); party3.StartDate.ToShortDateString().Should().BeEquivalentTo(fetchedParty3.StartDate.ToShortDateString()); party3.Id.Should().Be(fetchedParty3.Id); fethedCustomAttributeValues = fetchedParty3.CustomAttributeValues; fethedCustomAttributeValues.Count().Should().Be(customAttributeValues2.Count()); fethedCustomAttributeValues.Any(cc => cc.Value == "Alex" && cc.CustomAttribute.Id == partyCustomAttribute1.Id).Should().Be(true); fethedCustomAttributeValues.Any(cc => cc.Value == "Abedini" && cc.CustomAttribute.Id == partyCustomAttribute2.Id).Should().Be(true); fethedCustomAttributeValues.Any(cc => cc.Value == "31" && cc.CustomAttribute.Id == partyCustomAttribute3.Id).Should().Be(true); fethedCustomAttributeValues.Any(cc => cc.Value == "30" && cc.CustomAttribute.Id == partyCustomAttribute3.Id).Should().Be(false); //Cleanup DB partyManager.Delete(party3); partyTypeManager.Delete(partyTypeTest); }