private List <RequiredFormat> SortBandName(List <RequiredFormat> requiredFormat)
 {
     foreach (var format in requiredFormat)
     {
         for (int i = 0; i < format.RequiredBands.Length - 1; i++)
         {
             if (format.RequiredBands.Length < 2)
             {
                 continue; // If only one band, continue.
             }
             if (format.RequiredBands[i].BandName.CompareTo(format.RequiredBands[i + 1].BandName) > 0)
             {
                 RequiredBand temp = new RequiredBand {
                     BandName      = format.RequiredBands[i + 1].BandName,
                     FestivalNames = format.RequiredBands[i + 1].FestivalNames
                 };
                 format.RequiredBands[i + 1].BandName      = format.RequiredBands[i].BandName;
                 format.RequiredBands[i + 1].FestivalNames = format.RequiredBands[i].FestivalNames;
                 format.RequiredBands[i].BandName          = temp.BandName;
                 format.RequiredBands[i].FestivalNames     = temp.FestivalNames;
                 i = -1;
             }
         }
     }
     return(requiredFormat);
 }
        //Funtion below creates the template required
        private List <RequiredFormat> InstantiateRequiredFormat(List <Festivals> musicFestivals, List <string> recordLabels)
        {
            List <RequiredBand> requiredbands = new List <RequiredBand>();
            List <RequiredBand> bands         = new List <RequiredBand>();
            RequiredBand        band          = new RequiredBand();
            RequiredFormat      format        = new RequiredFormat();
            List <string>       festivals     = new List <string>();
            List <string>       names         = new List <string>();

            foreach (var recordLabel in recordLabels)
            {
                format = new RequiredFormat {
                    RecordLabel = recordLabel
                };
                names = new List <string>();
                foreach (var musicFestival in musicFestivals)
                {
                    foreach (var value in musicFestival.Bands)
                    {
                        if (value.RecordLabel == recordLabel)
                        {
                            if (!names.Contains(value.Name))
                            {
                                names.Add(value.Name);
                                festivals = new List <string>();
                                festivals.Add(musicFestival.Name);
                                band = new RequiredBand {
                                    BandName      = value.Name,
                                    FestivalNames = festivals
                                };
                                bands.Add(band);
                            }
                            else
                            {
                                for (int i = 0; i < bands.Count; i++)
                                {
                                    if (bands[i].BandName == value.Name)
                                    {
                                        List <string> temp = new List <string>();
                                        temp = bands[i].FestivalNames;
                                        temp.Add(musicFestival.Name);
                                        temp.Sort();
                                        bands[i].FestivalNames = temp;
                                    }
                                }
                            }
                        }
                    }
                }
                format.RequiredBands = bands.ToArray();
                bands = new List <RequiredBand>();
                requiredFormat.Add(format);
            }
            return(requiredFormat);
        }