Exemplo n.º 1
0
 private static List<DogsInClass> AllocateDogsToClassParts(List<DogClasses> dogClassList, List<ClassParts> classParts)
 {
     PartCount = 0;
     List<DogsInClass> allDogsInClass = new List<DogsInClass>();
     foreach (DogClasses dogClass in dogClassList)
     {
         Guid show_Entry_Class_ID = new Guid(dogClass.Show_Entry_Class_ID.ToString());
         List<DogOwners> dogOwnersList = new List<DogOwners>();
         DogOwners dogOwners = new DogOwners();
         Guid dog_ID = new Guid(dogClass.Dog_ID.ToString());
         dogOwnersList = dogOwners.GetDogOwnersByDog_ID(dog_ID);
         foreach (DogOwners owner in dogOwnersList)
         {
             List<DogOwners> dogOwnerDogList = new List<DogOwners>();
             DogOwners dogOwnerDogs = new DogOwners();
             dogOwnerDogList = dogOwnerDogs.GetDogOwnersByOwner_ID(owner.Owner_ID);
             List<Dogs> ownerDogsInClassList = new List<Dogs>();
             ownerDogsInClassList = OwnerDogsInCurrentClass(dogOwnerDogList, show_Entry_Class_ID);
             if (ownerDogsInClassList.Count == 1)
             {
                 if (!FoundInList(allDogsInClass, ownerDogsInClassList[0].Dog_ID))
                 {
                     Dogs dog = new Dogs(ownerDogsInClassList[0].Dog_ID);
                     DogsInClass dogInClass = new DogsInClass();
                     dogInClass.Dog = dog;
                     dogInClass.Dog_Class_ID = GetDogClassID(dog.Dog_ID, show_Entry_Class_ID);
                     dogInClass.Show_Final_Class_ID = NextPart(classParts);
                     dogInClass.AddToPart = PartCount;
                     allDogsInClass.Add(dogInClass);
                 }
             }
             else if (ownerDogsInClassList.Count == 2)
             {
                 if (!FoundInList(allDogsInClass, ownerDogsInClassList[0].Dog_ID))
                 {
                     Dogs dog1 = new Dogs(ownerDogsInClassList[0].Dog_ID);
                     DogsInClass dogInClass1 = new DogsInClass();
                     dogInClass1.Dog = dog1;
                     dogInClass1.Dog_Class_ID = GetDogClassID(dog1.Dog_ID, show_Entry_Class_ID);
                     dogInClass1.Show_Final_Class_ID = NextPart(classParts);
                     dogInClass1.AddToPart = PartCount;
                     allDogsInClass.Add(dogInClass1);
                 }
                 if (!FoundInList(allDogsInClass, ownerDogsInClassList[1].Dog_ID))
                 {
                     Dogs dog2 = new Dogs(ownerDogsInClassList[1].Dog_ID);
                     DogsInClass dogInClass2 = new DogsInClass();
                     dogInClass2.Dog = dog2;
                     dogInClass2.Dog_Class_ID = GetDogClassID(dog2.Dog_ID, show_Entry_Class_ID);
                     dogInClass2.Show_Final_Class_ID = NextPart(classParts);
                     dogInClass2.AddToPart = PartCount;
                     allDogsInClass.Add(dogInClass2);
                 }
             }
             else
             {
                 foreach (Dogs ownerDog in ownerDogsInClassList)
                 {
                     if (!FoundInList(allDogsInClass, ownerDog.Dog_ID))
                     {
                         Dogs dog = new Dogs(ownerDog.Dog_ID);
                         DogsInClass dogInClass = new DogsInClass();
                         dogInClass.Dog = dog;
                         dogInClass.Dog_Class_ID = GetDogClassID(dog.Dog_ID, show_Entry_Class_ID);
                         dogInClass.Show_Final_Class_ID = NextPart(classParts);
                         dogInClass.AddToPart = PartCount;
                         allDogsInClass.Add(dogInClass);
                     }
                 }
             }
         }
     }
     return allDogsInClass;
 }
Exemplo n.º 2
0
        private static List <DogsInClass> AllocateDogsToClassParts(string connString, List <DogClasses> dogClassList, List <ClassParts> classParts, Guid show_ID)
        {
            List <DogsInClass> retVal = new List <DogsInClass>();

            try
            {
                PartCount = 0;
                int[] dogsInPart = new int[classParts.Count];
                foreach (DogClasses dogClass in dogClassList)
                {
                    Guid             show_Entry_Class_ID = new Guid(dogClass.Show_Entry_Class_ID.ToString());
                    List <DogOwners> dogOwnersList       = new List <DogOwners>();
                    DogOwners        dogOwners           = new DogOwners(connString);
                    Guid             dog_ID = new Guid(dogClass.Dog_ID.ToString());
                    dogOwnersList = dogOwners.GetDogOwnersByDog_ID(dog_ID);
                    foreach (DogOwners owner in dogOwnersList)
                    {
                        List <DogOwners> dogOwnerDogList = new List <DogOwners>();
                        DogOwners        dogOwnerDogs    = new DogOwners(connString);
                        dogOwnerDogList = dogOwnerDogs.GetDogOwnersByOwner_ID(owner.Owner_ID);
                        List <Dogs> ownerDogsInClassList = new List <Dogs>();
                        ownerDogsInClassList = OwnerDogsInCurrentClass(connString, dogOwnerDogList, show_ID, show_Entry_Class_ID);
                        if (dogClass.Preferred_Part > 0)
                        {
                            foreach (Dogs ownerDog in ownerDogsInClassList)
                            {
                                if (!FoundInList(retVal, ownerDog.Dog_ID))
                                {
                                    Dogs        dog        = new Dogs(connString, ownerDog.Dog_ID);
                                    DogsInClass dogInClass = new DogsInClass();
                                    dogInClass.Dog                 = dog;
                                    dogInClass.Dog_Class_ID        = GetDogClassID(connString, dog.Dog_ID, show_Entry_Class_ID);
                                    dogInClass.Show_Final_Class_ID = classParts[dogClass.Preferred_Part - 1].Show_Final_Class_ID;
                                    dogInClass.AddToPart           = dogClass.Preferred_Part;
                                    retVal.Add(dogInClass);
                                    dogsInPart[dogClass.Preferred_Part - 1]++;
                                }
                            }
                        }
                    }
                }
                foreach (DogClasses dogClass in dogClassList)
                {
                    Guid             show_Entry_Class_ID = new Guid(dogClass.Show_Entry_Class_ID.ToString());
                    List <DogOwners> dogOwnersList       = new List <DogOwners>();
                    DogOwners        dogOwners           = new DogOwners(connString);
                    Guid             dog_ID = new Guid(dogClass.Dog_ID.ToString());
                    dogOwnersList = dogOwners.GetDogOwnersByDog_ID(dog_ID);
                    foreach (DogOwners owner in dogOwnersList)
                    {
                        List <DogOwners> dogOwnerDogList = new List <DogOwners>();
                        DogOwners        dogOwnerDogs    = new DogOwners(connString);
                        dogOwnerDogList = dogOwnerDogs.GetDogOwnersByOwner_ID(owner.Owner_ID);
                        List <Dogs> ownerDogsInClassList = new List <Dogs>();
                        ownerDogsInClassList = OwnerDogsInCurrentClass(connString, dogOwnerDogList, show_ID, show_Entry_Class_ID);
                        if (dogClass.Preferred_Part > 0)
                        {
                            foreach (Dogs ownerDog in ownerDogsInClassList)
                            {
                                if (!FoundInList(retVal, ownerDog.Dog_ID))
                                {
                                    Dogs        dog        = new Dogs(connString, ownerDog.Dog_ID);
                                    DogsInClass dogInClass = new DogsInClass();
                                    dogInClass.Dog                 = dog;
                                    dogInClass.Dog_Class_ID        = GetDogClassID(connString, dog.Dog_ID, show_Entry_Class_ID);
                                    dogInClass.Show_Final_Class_ID = classParts[dogClass.Preferred_Part - 1].Show_Final_Class_ID;
                                    dogInClass.AddToPart           = dogClass.Preferred_Part;
                                    retVal.Add(dogInClass);
                                    dogsInPart[dogClass.Preferred_Part - 1]++;
                                }
                            }
                        }
                        if (ownerDogsInClassList.Count == 1)
                        {
                            if (!FoundInList(retVal, ownerDogsInClassList[0].Dog_ID))
                            {
                                Dogs        dog        = new Dogs(connString, ownerDogsInClassList[0].Dog_ID);
                                DogsInClass dogInClass = new DogsInClass();
                                dogInClass.Dog                 = dog;
                                dogInClass.Dog_Class_ID        = GetDogClassID(connString, dog.Dog_ID, show_Entry_Class_ID);
                                dogInClass.Show_Final_Class_ID = GetEmptiestClassPart(classParts, dogsInPart);
                                dogInClass.AddToPart           = PartCount;
                                retVal.Add(dogInClass);
                                dogsInPart[PartCount - 1]++;
                            }
                        }
                        else if (ownerDogsInClassList.Count == 2)
                        {
                            if (!FoundInList(retVal, ownerDogsInClassList[0].Dog_ID))
                            {
                                Dogs        dog1        = new Dogs(connString, ownerDogsInClassList[0].Dog_ID);
                                DogsInClass dogInClass1 = new DogsInClass();
                                dogInClass1.Dog                 = dog1;
                                dogInClass1.Dog_Class_ID        = GetDogClassID(connString, dog1.Dog_ID, show_Entry_Class_ID);
                                dogInClass1.Show_Final_Class_ID = NextPart(classParts);
                                dogInClass1.AddToPart           = PartCount;
                                retVal.Add(dogInClass1);
                                dogsInPart[PartCount - 1]++;
                            }
                            if (!FoundInList(retVal, ownerDogsInClassList[1].Dog_ID))
                            {
                                Dogs        dog2        = new Dogs(connString, ownerDogsInClassList[1].Dog_ID);
                                DogsInClass dogInClass2 = new DogsInClass();
                                dogInClass2.Dog                 = dog2;
                                dogInClass2.Dog_Class_ID        = GetDogClassID(connString, dog2.Dog_ID, show_Entry_Class_ID);
                                dogInClass2.Show_Final_Class_ID = NextPart(classParts);
                                dogInClass2.AddToPart           = PartCount;
                                retVal.Add(dogInClass2);
                                dogsInPart[PartCount - 1]++;
                            }
                        }
                        else
                        {
                            foreach (Dogs ownerDog in ownerDogsInClassList)
                            {
                                if (!FoundInList(retVal, ownerDog.Dog_ID))
                                {
                                    Dogs        dog        = new Dogs(connString, ownerDog.Dog_ID);
                                    DogsInClass dogInClass = new DogsInClass();
                                    dogInClass.Dog                 = dog;
                                    dogInClass.Dog_Class_ID        = GetDogClassID(connString, dog.Dog_ID, show_Entry_Class_ID);
                                    dogInClass.Show_Final_Class_ID = NextPart(classParts);
                                    dogInClass.AddToPart           = PartCount;
                                    retVal.Add(dogInClass);
                                    dogsInPart[PartCount - 1]++;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(retVal);
        }