FlatRedBall.Glue.CsvCodeGenerator.CreateConstsForCsvEntries C# (CSharp) Method

CreateConstsForCsvEntries() private static method

private static CreateConstsForCsvEntries ( ReferencedFileSave initialRfs, List members, string>.Dictionary untypedMembers, ICodeBlock codeBlock ) : bool
initialRfs FlatRedBall.Glue.SaveClasses.ReferencedFileSave
members List
untypedMembers string>.Dictionary
codeBlock ICodeBlock
return bool
        private static bool CreateConstsForCsvEntries(ReferencedFileSave initialRfs, List<TypedMemberBase> members, Dictionary<string, string> untypedMembers, ICodeBlock codeBlock)
        {
            bool succeeded = true;

            bool addToOrderedLists = true;


            CustomClassSave customClass = GetCustomClassForCsv(initialRfs.Name);

            bool usesCustomClass = customClass != null;
            List<ReferencedFileSave> rfsesForClass = new List<ReferencedFileSave>();

            if (usesCustomClass)
            {
                foreach (string name in customClass.CsvFilesUsingThis)
                {
                    ReferencedFileSave foundRfs = ObjectFinder.Self.GetReferencedFileSaveFromFile(name);

                    if (foundRfs != null)
                    {
                        rfsesForClass.Add(foundRfs);

                    }
                }
            }
            else
            {
                rfsesForClass.Add(initialRfs);
            }



            foreach (ReferencedFileSave rfs in rfsesForClass)
            {

                if (rfs.CreatesDictionary)
                {
                    string fileName = rfs.Name;
                    fileName = ProjectManager.MakeAbsolute(fileName);

                    var rcr = CsvFileManager.CsvDeserializeToRuntime(fileName);
                    rcr.RemoveHeaderWhitespaceAndDetermineIfRequired();
                    int requiredIndex = rcr.GetRequiredIndex();
                    if (requiredIndex == -1)
                    {
                        succeeded = false;
                        GlueGui.ShowMessageBox("The file " + rfs.Name + " is marked as a dictionary but has no column marked as required");

                    }
                    else
                    {
                        string type = GetRequiredKeyType(rcr, members, untypedMembers, requiredIndex);

                        FillCodeBlockWithKeys(codeBlock, type, rcr);
                        // The first entry will be the "primary" one?
                        if (addToOrderedLists)
                        {
                            FillOrderedListWithKeys(codeBlock, type, rcr);
                            addToOrderedLists = false;
                        }
                    }
                }
            }

            return succeeded;
        }