/// <summary> /// Получение строки для сохранения в зависимости от того, кто /// владеет параметром. Сам юнит или это параметр агрегата. /// </summary> /// <param name="prefix">Отступ</param> /// <returns></returns> private string GetNumberParameterStringForSave(string prefix) { BaseTechObject baseTechObject = null; Mode mainMode = null; var modes = new List <Mode>(); string mainObjDisplayName = ""; if (Owner is BaseTechObject aggregateBaseTechObject) { baseTechObject = aggregateBaseTechObject; modes = baseTechObject.Owner.ModesManager.Modes; var baseOperation = Parent as BaseOperation; mainMode = baseOperation.Owner; } else if (Owner is BaseOperation baseOperation) { baseTechObject = baseOperation.Owner.Owner.Owner.BaseTechObject; mainMode = baseOperation.Owner; modes = mainMode.Owner.Modes; } mainObjDisplayName = $"{baseTechObject.Owner.DisplayText[0]}"; Mode modeInParameter = modes .Where(x => x.GetModeNumber().ToString() == Value) .FirstOrDefault(); var res = string.Empty; if (modeInParameter != null) { if (modeInParameter.BaseOperation.Name != string.Empty) { string operationLuaName = modeInParameter.BaseOperation .LuaName.ToUpper(); TechObject obj = baseTechObject.Owner; string objVarName = $"prg.{obj.NameEplanForFile.ToLower()}" + $"{obj.TechNumber}"; res = $"{prefix}{LuaName} = " + $"{objVarName}.operations.{operationLuaName}"; } else { string message = $"Ошибка обработки параметра " + $"\"{Name}\"." + $" Не задана базовая операция в операции" + $" \"{modeInParameter.DisplayText[0]}\", объекта " + $"\"{mainObjDisplayName}\".\n"; Logs.AddMessage(message); } } else { string message = $"Ошибка обработки параметра " + $"\"{Name}\"." + $" Указан несуществующий номер операции в операции " + $"\"{mainMode.DisplayText[0]}\" объекта " + $"\"{mainObjDisplayName}\".\n"; Logs.AddMessage(message); } return(res); }
/// <summary> /// Получение строки для сохранения в зависимости от того, кто /// владеет параметром. Сам юнит или это параметр агрегата. /// </summary> /// <param name="parameter">Параметр для обработки</param> /// <param name="prefix">Отступ</param> /// <param name="mainObjMode">Проверяемая операция главного объекта /// </param> /// <returns></returns> public string GetNumberParameterStringForSave(string prefix, BaseParameter parameter, Mode mainObjMode) { BaseTechObject baseTechObject = null; List <Mode> modes = new List <Mode>(); string mainObjName = ""; if (parameter.Owner is BaseTechObject) { baseTechObject = parameter.Owner as BaseTechObject; mainObjName = $"{baseTechObject.Owner.DisplayText[0]}"; modes = baseTechObject.Owner.ModesManager.Modes; } if (parameter.Owner is BaseOperation) { var operation = parameter.Owner as BaseOperation; baseTechObject = operation.Owner.Owner.Owner.BaseTechObject; mainObjName = $"{baseTechObject.Owner.DisplayText[0]}"; modes = operation.Owner.Owner.Modes; } string parameterValue = parameter.Value; var mode = modes .Where(x => x.GetModeNumber().ToString() == parameterValue) .FirstOrDefault(); var res = ""; if (mode != null) { if (mode.BaseOperation.Name != "") { parameterValue = mode.BaseOperation.LuaName.ToUpper(); TechObject obj = baseTechObject.Owner; string objName = "prg." + obj.NameEplanForFile.ToLower() + obj.TechNumber.ToString(); res = $"{prefix}{parameter.LuaName} = " + $"{objName}.operations." + parameterValue + ",\n"; } else { string message = $"Ошибка обработки параметра " + $"\"{parameter.Name}\"." + $" Не задана базовая операция в операции" + $" \"{mode.DisplayText[0]}\", объекта " + $"\"{mainObjName}\".\n"; Logs.AddMessage(message); } } else { string message = $"Ошибка обработки параметра " + $"\"{parameter.Name}\"." + $" Указан несуществующий номер операции в операции " + $"\"{mainObjMode.DisplayText[0]}\" объекта " + $"\"{mainObjName}\".\n"; Logs.AddMessage(message); } return(res); }