public LDLBOBase CreateItem(string[] definition, string id) { LDLBalise balise = new LDLBalise(id); int nLines = definition.GetUpperBound(0); for (int idx = 0; idx <= nLines; idx++) { if (definition[idx].Contains(baliseType)) { string bType = ParseItem(definition[idx]); if (string.Compare("FIXED_DATA", bType) == 0) { balise.FixedData = true; } else { balise.FixedData = false; } } else if (definition[idx].Contains(isDuplicated)) { balise.DuplicateType = (BaliseDuplicateStatus)Enum.Parse(typeof(BaliseDuplicateStatus), ParseItem(definition[idx])); } else if (definition[idx].Contains(LDLMLocation.Identifier)) { balise.Location = LDLMLocation.CreateFromCompleteLine(definition[idx]); } } return(balise); }
public static LDLMLocation CreateFromCompleteLine(string line) { LDLMLocation result = new LDLMLocation(); int start = line.IndexOf(OpenBracket); int end = line.IndexOf(CloseBracket); string def = line.Substring(start + 1, (end - start) - 1); string[] parts = def.Split(LDLSeperators.MEASUREMENT_SEPERATOR); result.TrackStr = parts[0].Replace("\"", "").Replace("(", "").Trim(); result.Distance = decimal.Parse(parts[1].Trim()); return(result); }
public LDLBOBase CreateItem(string[] definition, string id) { LDLTrackCircuitJoin toPopulate = new LDLTrackCircuitJoin(id); int nLines = definition.GetUpperBound(0); int tcID = 0; for (int i = 0; i <= nLines; i++) { if (definition[i].Contains(LDLTrackCircuit.Identitifier)) { toPopulate.JoinedCircuitStrs[tcID++] = ParseItem(definition[i]); } else if (definition[i].Contains(LDLMLocation.Identifier)) { toPopulate.Location = LDLMLocation.CreateFromCompleteLine(definition[i]); } } return(toPopulate); }