private void PreencherRegrasArParaArEArParaMaiorAr() { RolesArToGreatAs = new List <RuleProduction>(); RolesArToAr = new List <RuleProduction>(); RolesSubstituiArGreatAs = new List <RuleProduction>(); RolesReplaceArParaAr = new List <RuleProduction>(); for (int i = 0; i < Normalized.Rules.Count; i++) { RuleProduction rAtual = Normalized.Rules[i]; var destino = rAtual.Destiny.Copy(); if (rAtual.IsFirstVariable()) { if (NewNames.ContainsKey(rAtual.Source)) { if (NewNames[rAtual.Source].Id > NewNames[rAtual.FirstDestiny()].Id) { Normalized.Rules.Remove(rAtual); i--; List <RuleProduction> regrasDestino = Normalized.GetRules(rAtual.FirstDestiny()); RolesArToGreatAs.Add(rAtual); //Remoção de Regra, decrementa i for (int j = 0; j < regrasDestino.Count; j++) { RuleProduction regraTemp = Normalized.AddRule(rAtual.Source, regrasDestino[j].Destiny.AddRange(rAtual.SkipFirstDestiny())); RolesSubstituiArGreatAs.Add(regraTemp); } } else if (NewNames[rAtual.Source].Name == NewNames[rAtual.FirstDestiny()].Name) { RolesArToAr.Add(rAtual); var bAtual = new Symbol(GetNewId(), string.Empty, false); Normalized.Variables.Add(bAtual); destino = destino.SkipFirst(); RuleProduction regraTemp = Normalized.AddRule(bAtual, destino); RolesReplaceArParaAr.Add(regraTemp); regraTemp = Normalized.AddRule(bAtual, destino.Add(bAtual)); RolesReplaceArParaAr.Add(regraTemp); //Removi volta o i Normalized.Rules.Remove(rAtual); i--; List <RuleProduction> regrasOrigem = Normalized.GetRules(rAtual.Source); for (int j = 0; j < regrasOrigem.Count; j++) { regraTemp = Normalized.AddRule(rAtual.Source, regrasOrigem[j].Destiny.Add(bAtual)); RolesReplaceArParaAr.Add(regraTemp); } } } } } }
private void SetUpRenamingProcess() { var filenameAssosiactions = new Dictionary <string, string>(); var originalNameList = OriginalNames.Split('\n') .Select(name => name.Trim()) .ToList(); var newNameList = NewNames.Split('\n') .Select(name => name.Trim()) .ToList(); for (var i = 0; i < originalNameList.Count; i++) { if (newNameList.Count > i) { filenameAssosiactions.Add(originalNameList[i], newNameList[i]); } } renamer = new Renamer(new DirectoryInfo(StartDirectory), filenameAssosiactions); renamer.ProcessFinished += (successful, message) => { var stringBuilder = new StringBuilder(); stringBuilder.Append(successful ? "Der Prozess wurde erfolgreich beendet" : "Der Prozess wurde mit folgender Meldung abgebrochen"); if (!string.IsNullOrEmpty(message)) { stringBuilder.Append(":\n\n" + message); } MessageBox.Show(stringBuilder.ToString()); IsProcessUndoable = renamer.UndoAvailable; IsProcessStartable = true; IsProcessAbortable = false; IsProcessRunning = false; StartDirectory = StartDirectory; // to check weather current folder is still available }; }
private string[] SubstituiRegras(List <RuleProduction> regras) { List <string> retorno = new List <string>(); foreach (var item in regras) { var novoNome = item.Source; if (NewNames.ContainsKey(item.Source)) { novoNome = NewNames[item.Source]; } SymbolList destino = item.Destiny.Copy(); foreach (var novos in NewNames) { destino = destino.Replace(novos.Key, novos.Value); } retorno.Add(string.Format("{0} => {1}", novoNome, destino)); } return(retorno.ToArray()); }
public void SendNames(string[] names) { NewNames?.Invoke(this, names.ToList()); }