/// <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); } }
/// <summary> /// /// </summary> /// <param name="id">party type id</param> /// <returns></returns> public ActionResult LoadPartyRelationshipType(int id) { using (PartyRelationshipTypeManager partyRelManager = new PartyRelationshipTypeManager()) using (PartyManager partyManager = new PartyManager()) { var partyId = Request.Params["partyId"] != null?long.Parse(Request.Params["partyId"]) : 0; Party party = partyManager.PartyRepository.Get(partyId); ViewBag.sourceParty = party; var partyRelationshipTypes = partyRelManager.GetAllPartyRelationshipTypes(party.PartyType.Id, true); var addpartyRelationshipModel = new List <AddRelationshipModel>(); // foreach (var partyRelationshipType in partyRelationshipTypes) var addRelationshipModel = new List <AddRelationshipModel>(); addRelationshipModel.Add(new AddRelationshipModel() { PartyRelationshipTypes = partyRelationshipTypes.Where(cc => cc.AssociatedPairs.Any(item => item.SourcePartyType.Id == party.PartyType.Id)), SourceParty = party, isAsSource = false }); addRelationshipModel.Add(new AddRelationshipModel() { PartyRelationshipTypes = partyRelationshipTypes.Where(cc => cc.AssociatedPairs.Any(item => item.TargetPartyType.Id == party.PartyType.Id)), SourceParty = party, isAsSource = true }); return(PartialView("_addPartyRelationshipPartial", addRelationshipModel)); } }
/// <summary> /// /// </summary> /// <param name="id">party type id</param> /// <returns></returns> public ActionResult LoadPartyRelationshipType(int id) { PartyRelationshipTypeManager partyRelManager = null; try { partyRelManager = new PartyRelationshipTypeManager(); Party party = Request.Params["partyId"] != null ? new PartyManager().PartyRepository.Get(long.Parse(Request.Params["partyId"])) : null; ViewBag.sourceParty = party; var partyRelationshipTypes = partyRelManager.GetAllPartyRelationshipTypes(party.PartyType.Id); return(PartialView("_addPartyRelationshipPartial", partyRelationshipTypes.ToList())); } finally { partyRelManager?.Dispose(); } }