Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        /// <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);
                    }
        }
Beispiel #4
0
        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"));
                            }
        }
Beispiel #5
0
        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");
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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();
            }
        }
Beispiel #8
0
        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
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }