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); }