public AutoSimplifyTransformation(MathIdentifier id, CreatePattern pattern, EstimatePlan plan, ManipulatePort simplify)
 {
     _id = id;
     _pattern = pattern;
     _simplify = simplify;
     _plan = plan;
 }
 public AutoSimplifyTransformation(MathIdentifier id, CreatePattern pattern, EstimatePlan plan, ManipulatePort simplify)
 {
     _id = id;
     _pattern = pattern;
     _simplify = simplify;
     _plan = plan;
 }
 public BasicTransformation(MathIdentifier id, MathIdentifier transformationTypeId, CreatePattern pattern, EstimatePlan plan, ManipulatePort transform)
 {
     _id = id;
     _transformationTypeId = transformationTypeId;
     _pattern   = pattern;
     _transform = transform;
     _plan      = plan;
 }
        public async Task <IActionResult> Post(IFormFile file)
        {
            var userId = User.GetUserId();

            if (userId == null)
            {
                return(BadRequest());
            }

            var patternId = Guid.NewGuid();

            var(pattern, _) = await Cluster.GetAsync($"pattern-{patternId.ToString()}", "pattern");

            var content = await file.ReadAllBytes();

            var command = new CreatePattern
            {
                FileName = file.FileName,
                Id       = patternId.ToString(),
                Content  = ByteString.CopyFrom(content),
                OwnerId  = userId
            };
            var @event = await pattern.RequestAsync <PatternCreated>(command, 10.Seconds());

            var preview  = new { @event.Id, @event.Pattern.Info.Title, @event.Pattern.Height, @event.Pattern.Width };
            var resource = new Resource(preview)
            {
                Links =
                {
                    new Link {
                        Rel = "self", Href = Url.Action("Get", new{ patternId                                       })
                    },
                    new Link {
                        Rel = "thumbnail", Href = Url.Action("GetThumbnail", new{ patternId                                       })
                    }
                }
            };

            return(Created(patternId.ToString(), resource));
        }
Beispiel #5
0
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var usingList = new StringBuilder();
            var source    = new StringBuilder();
            var filePath  = string.Empty;

            switch (pattern)
            {
            case CreatePattern.Standard:
                filePath = "Standard.cs";

                source.AppendLine("public class StandardTest");
                source.AppendLine("{");
                source.AppendLine("  private enum CreatePattern");
                source.AppendLine("  {");
                source.AppendLine("    First,");
                source.AppendLine("    Second,");
                source.AppendLine("    Third");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.DefValue:
                filePath = "DefValue.cs";

                source.AppendLine("public class DefValueTest");
                source.AppendLine("{");
                source.AppendLine("  private enum CreatePattern");
                source.AppendLine("  {");
                source.AppendLine("    First=10,");
                source.AppendLine("    Second,");
                source.AppendLine("    Third=100");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;
            }

            return(new FileData(filePath, usingList.ToString(), source.ToString()));
        }
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var usingList = new StringBuilder();
            var source    = new StringBuilder();
            var filePath  = string.Empty;

            switch (pattern)
            {
            case CreatePattern.Standard:
                filePath = "Standard.cs";

                source.AppendLine("public class Standard");
                source.AppendLine("{");
                source.AppendLine("  public Standard()");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.StandardArgs:
                filePath = "StandardArgs.cs";

                source.AppendLine("public class StandardArgs");
                source.AppendLine("{");
                source.AppendLine("  public StandardArgs(string str,int intger,float f,decimal d)");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ClassArgs:
                filePath = "ClassArgs.cs";

                source.AppendLine("public class ClassArgs");
                source.AppendLine("{");
                source.AppendLine("  public ClassArgs(Standard instance)");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ListArgs:
                filePath = "ListArgs.cs";

                source.AppendLine("public class ListArgs");
                source.AppendLine("{");
                source.AppendLine("  public ListArgs(List<string> list)");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.CallSuperConstructor:
                filePath = "CallSuperConstructor.cs";

                source.AppendLine("public class CallSuperConstructor : StandardArgs");
                source.AppendLine("{");
                source.AppendLine("  public CallSuperConstructor(string str1,int integer1,float f1,decimal d1,int integer2):base(str1,integer1,f1,d1)");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.Multiple:
                filePath = "Multiple.cs";

                source.AppendLine("public class Multiple");
                source.AppendLine("{");
                source.AppendLine("  public Multiple(string str)");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("  private Multiple(string str1,int integer)");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.RefArgs:
                filePath = "RefArgs.cs";

                source.AppendLine("public class RefArgs");
                source.AppendLine("{");
                source.AppendLine("  public RefArgs(ref int integer,in string str,out decimal output)");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.DefaultValues:
                filePath = "DefaultValues.cs";

                source.AppendLine("public class DefaultValues");
                source.AppendLine("{");
                source.AppendLine("  public DefaultValues(int integer=10,string str=\"ABC\")");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.Lambda:
                filePath = "Lambda.cs";

                source.AppendLine("public class Lambda");
                source.AppendLine("{");
                source.AppendLine("  private int field;");
                source.AppendLine("  public Lambda() => field = 10;");
                source.AppendLine("}");
                break;

            case CreatePattern.TempInnerClass:
                filePath = "TempInnerClass.cs";

                source.AppendLine("public class TempInnerClass");
                source.AppendLine("{");
                source.AppendLine("  public class InnerClass");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.InnerClassArgs:
                filePath = "InnerClassArgs.cs";

                source.AppendLine("public class InnnerClassArgs");
                source.AppendLine("{");
                source.AppendLine("  public ClassArgs(TempInnerClass.InnerClass instance = new TempInnerClass.InnerClass())");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;
            }

            return(new FileData(filePath, usingList.ToString(), source.ToString()));
        }
Beispiel #7
0
        public PatternViewModel(PatternUserControl patternUserControl)
        {
            patternsListBox      = patternUserControl.Find <ListBox>("PatternsListBox");
            patternTextBox       = patternUserControl.Find <TextBox>("PatternData");
            patternErrorsListBox = patternUserControl.Find <ListBox>("PatternErrors");
            logger = patternUserControl.Find <TextBox>("Logger");

            Dispatcher.UIThread.InvokeAsync(async() =>
            {
                bool error = false;
                if (!string.IsNullOrEmpty(Settings.PatternsFileName))
                {
                    try
                    {
                        PatternsFileName = Settings.PatternsFileName;
                        SelectedPattern  = Patterns.FirstOrDefault(p => p.Key == Settings.SelectedPatternKey) ?? Patterns.FirstOrDefault();
                    }
                    catch (Exception ex)
                    {
                        await MessageBox.ShowDialog(ex.Message);
                        error = true;
                    }
                }

                if (string.IsNullOrEmpty(Settings.PatternsFileName) || error)
                {
                    Settings.PatternsFileName = Settings.DefaultPatternsFileName;
                    SelectedPattern           = Patterns.FirstOrDefault();
                    SavePatterns();
                    Settings.Save();
                }
            });

            patternsListBox.DoubleTapped += (object sender, Avalonia.Interactivity.RoutedEventArgs e) =>
            {
                OpenPattern.Execute(sender);
            };

            patternErrorsListBox.DoubleTapped += (object sender, Avalonia.Interactivity.RoutedEventArgs e) =>
            {
                GuiHelpers.ProcessErrorOnDoubleClick(patternErrorsListBox, patternTextBox);
            };

            patternLogger = new GuiLogger(PatternErrors)
            {
                LogPatternErrors = true
            };
            patternLogger.LogEvent += PatternLogger_LogEvent;
            dslProcessor.Logger     = patternLogger;

            patternTextBox.GetObservable(TextBox.CaretIndexProperty)
            .Subscribe(UpdatePatternCaretIndex);

            patternTextBox.GetObservable(TextBox.TextProperty)
            .Throttle(TimeSpan.FromMilliseconds(250))
            .Subscribe(str => Value = str);

            OpenPatterns.Subscribe(async _ =>
            {
                SavePatterns();
                var openFileDialog = new OpenFileDialog
                {
                    Title = "Select patterns database",
                };
                var fileNames = await openFileDialog.ShowAsync(ServiceLocator.MainWindow);
                if (fileNames != null)
                {
                    try
                    {
                        PatternsFileName = fileNames.First();
                    }
                    catch (Exception ex)
                    {
                        await MessageBox.ShowDialog(ex.Message);
                        Settings.PatternsFileName = Settings.DefaultPatternsFileName;
                        Settings.Save();
                        SelectedPattern = Patterns.FirstOrDefault();
                        ServiceLocator.MainWindowViewModel.ActivateWindow();
                    }
                }
            });

            CreatePattern.Subscribe(_ =>
            {
                SavePatterns();
                var newPattern  = new PatternDto();
                newPattern.Key  = Guid.NewGuid().ToString();
                newPattern.Name = "New Pattern";
                Patterns.Add(newPattern);
                SelectedPattern = newPattern;
                SavePatterns();
            });

            RemovePattern.Subscribe(async _ =>
            {
                if (SelectedPattern != null && await MessageBox.ShowDialog($"Do you want to remove {SelectedPattern}?", messageBoxType: MessageBoxType.YesNo))
                {
                    Patterns.Remove(SelectedPattern);
                    SelectedPattern = Patterns.LastOrDefault();
                    SavePatterns();
                }
            });

            OpenPattern.Subscribe(_ =>
            {
                if (patternsListBox.SelectedItem != null)
                {
                    var patternDto  = (PatternDto)patternsListBox.SelectedItem;
                    SelectedPattern = patternDto;
                }
            });

            SavePattern.Subscribe(_ =>
            {
                SavePatterns();
            });
        }
Beispiel #8
0
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var usingList = new StringBuilder();
            var source    = new List <string>();
            var filePath  = string.Empty;
            var addMember = new List <string>();
            var addSource = new StringBuilder();

            switch (pattern)
            {
            case CreatePattern.Standard:
                filePath = "Standard.cs";

                source.Add("for(var index = 0;index < 10;index++)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.LocalField:
                filePath = "LocalField.cs";

                source.Add("var index;");
                source.Add("for(index = 0;index < 10;index++)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.MultiDeclarations:
                filePath = "MultiDeclarations.cs";

                source.Add("for(int a=0,b=0;a<10;a++,b++)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.MultiIncrementors:
                filePath = "MultiIncrementors.cs";

                source.Add("var b=1D;");
                source.Add("for(int a=0;a<10;a++,b+=1D)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.UseMethods:
                filePath = "UseMethods.cs";

                source.Add("for(var index = ini();condition(index);index+=incrementor())");
                source.Add("{");
                source.Add("}");
                source.Add("int ini()=>0;");
                source.Add("bool condition(int value)=> value < 10;");
                source.Add("int incrementor()=>1;");
                break;

            case CreatePattern.InstanceProperty:
                filePath = "InstanceProperty.cs";

                addMember.Add("private List<int> Values{get;}= new List<int>();");

                source.Add("Values.AddRange(new List<int>{0,1,2,3});");
                source.Add("for(var index = 0;index < Values.Count;index++)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.InstanceMethod:
                filePath = "InstanceMethod.cs";

                addMember.Add("private List<int> GetValues()");
                addMember.Add("{");
                addMember.Add("  return new List<int>{0,1,2,3};");
                addMember.Add("{");

                source.Add("for(var index = 0;index < GetValues().Count;index++)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.InnerClassMethod:
                filePath = "InnerClassMethod.cs";

                addMember.Add("public class InnerClass");
                addMember.Add("{");
                addMember.Add("  public static List<int> GetValues()");
                addMember.Add("  {");
                addMember.Add("    return new List<int>{0,1,2,3};");
                addMember.Add("  {");
                addMember.Add("}");

                source.Add("for(var index = 0;index < Standard.InnerClass.GetValues().Count;index++)");
                source.Add("{");
                source.Add("}");
                break;
            }

            // ソースコード作成
            var targetSource = new StringBuilder();

            targetSource.AppendLine("public class Standard");
            targetSource.AppendLine("{");
            targetSource.AppendLine("  public void TestMethod()");
            targetSource.AppendLine("  {");
            source.ForEach(line => targetSource.AppendLine($"    {line }"));
            targetSource.AppendLine("  }");

            addMember.ForEach(line => targetSource.AppendLine($"  {line }"));
            targetSource.AppendLine("}");
            targetSource.AppendLine(addSource.ToString());

            return(new FileData(filePath, usingList.ToString(), targetSource.ToString()));
        }
Beispiel #9
0
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var usingList = new StringBuilder();
            var source    = new StringBuilder();
            var filePath  = string.Empty;

            switch (pattern)
            {
            case CreatePattern.ReturnVoid:
                filePath = "ReturnVoid.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public void TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return;");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnInt:
                filePath = "ReturnInt.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public int TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return 10;");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnString:
                filePath = "ReturnString.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public string TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return \"ABC\";");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnInstance:
                filePath = "ReturnInstance.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public Test TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return new Test();");
                source.AppendLine("  }");
                source.AppendLine("}");
                source.AppendLine("public class Test");
                source.AppendLine("{");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnGenericInstance:
                filePath = "ReturnGenericInstance.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public List<Test> TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return new List<Test>();");
                source.AppendLine("  }");
                source.AppendLine("}");
                source.AppendLine("public class Test");
                source.AppendLine("{");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnLocalDeclaration:
                filePath = "ReturnLocalDeclaration.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public string TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    var result = \"ABC\";");
                source.AppendLine("    return result;");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnLocalFunction:
                filePath = "ReturnLocalFunction.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public int TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    int target()=>10;");
                source.AppendLine("    return target();");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnMethod:
                filePath = "ReturnMethod.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public int TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return Target(1);");
                source.AppendLine("  }");
                source.AppendLine("");
                source.AppendLine("  public int Target(int value)");
                source.AppendLine("  {");
                source.AppendLine("    return value;");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnClassMethod:
                filePath = "ReturnClassMethod.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public int TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return Target(1);");
                source.AppendLine("  }");
                source.AppendLine("");
                source.AppendLine("  public static int Target(int value)");
                source.AppendLine("  {");
                source.AppendLine("    return value;");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnClassProperty:
                filePath = "ReturnClassProperty.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public int TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return Target;");
                source.AppendLine("  }");
                source.AppendLine("");
                source.AppendLine("  public static int Target{get;} = 10:");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnInnerClassMethod:
                filePath = "ReturnInnerClassMethod.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public int TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return InnerClass.Target(1);");
                source.AppendLine("  }");
                source.AppendLine("");
                source.AppendLine("  public class InnerClass");
                source.AppendLine("  {");
                source.AppendLine("    public static int Target(int value)");
                source.AppendLine("    {");
                source.AppendLine("      return value;");
                source.AppendLine("    }");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnExpression:
                filePath = "ReturnExpression.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public int TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return 1+2*3;");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnExpressionChangedPriority:
                filePath = "ReturnExpressionChangedPriority.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public int TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return (1+2)*3;");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnExpressionChangedPriority2:
                filePath = "ReturnExpressionChangedPriority2.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public int TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return 1+(2*3);");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnIntTostring:
                filePath = "ReturnIntTostring.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public string TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return (10).ToString();");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnAddIntTostring:
                filePath = "ReturnAddIntTostring.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public string TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return (10+100).ToString();");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;
            }

            return(new FileData(filePath, usingList.ToString(), source.ToString()));
        }
Beispiel #10
0
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var usingList = new StringBuilder();
            var source    = new List <string>();
            var filePath  = string.Empty;
            var addMember = new List <string>();
            var addSource = new StringBuilder();

            switch (pattern)
            {
            case CreatePattern.Standard:
                filePath = "Standard.cs";

                source.Add("if(true)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.ExistsElse:
                filePath = "ExistsElse.cs";

                source.Add("if(true)");
                source.Add("{");
                source.Add("}");
                source.Add("else");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.ExistsManyElse:
                filePath = "ExistsManyElse.cs";

                source.Add("if(true)");
                source.Add("{");
                source.Add("}");
                source.Add("else if(1==1)");
                source.Add("{");
                source.Add("}");
                source.Add("else");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.NestIfElse:
                filePath = "NestIfElse.cs";

                source.Add("if(true)");
                source.Add("{");
                source.Add("  if(1==1)");
                source.Add("  {");
                source.Add("  }");
                source.Add("  else");
                source.Add("  {");
                source.Add("  }");
                source.Add("}");
                break;

            case CreatePattern.RefLocalField:
                filePath = "RefLocalField.cs";

                source.Add("var val=true;");
                source.Add("if(val)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.ConditionsType:
                filePath = "ConditionsType.cs";

                source.Add("var val=1;");
                source.Add("if(val is string b)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.ConditionsIsType:
                filePath = "ConditionsIsType.cs";

                source.Add("var val=1;");
                source.Add("if(val is string)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.InstanceProperty:
                filePath = "InstanceProperty.cs";

                addMember.Add("private int Val{get;}= 1");

                source.Add("if(Val == 1)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.InstanceMethod:
                filePath = "InstanceMethod.cs";

                addMember.Add("private bool GetValue()");
                addMember.Add("{");
                addMember.Add("  return true;");
                addMember.Add("{");

                source.Add("if(GetValue())");
                source.Add("{");
                source.Add("}");
                break;
            }

            // ソースコード作成
            var targetSource = new StringBuilder();

            targetSource.AppendLine("public class Standard");
            targetSource.AppendLine("{");
            targetSource.AppendLine("  public void TestMethod()");
            targetSource.AppendLine("  {");
            source.ForEach(line => targetSource.AppendLine($"    {line }"));
            targetSource.AppendLine("  }");

            addMember.ForEach(line => targetSource.AppendLine($"  {line }"));
            targetSource.AppendLine("}");
            targetSource.AppendLine(addSource.ToString());

            return(new FileData(filePath, usingList.ToString(), targetSource.ToString()));
        }
Beispiel #11
0
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var usingList = new StringBuilder();
            var source    = new StringBuilder();
            var filePath  = string.Empty;

            switch (pattern)
            {
            case CreatePattern.Standard:
                filePath = "Standard.cs";

                source.AppendLine("public class Standard");
                source.AppendLine("{");
                source.AppendLine("  public void TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.StandardArgs:
                filePath = "StandardArgs.cs";

                source.AppendLine("public class StandardArgs");
                source.AppendLine("{");
                source.AppendLine("  public void TestMethod(string str,int intger,float f,decimal d)");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ClassArgs:
                filePath = "ClassArgs.cs";

                source.AppendLine("public class ClassArgs");
                source.AppendLine("{");
                source.AppendLine("  public void TestMethod(Standard instance)");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ListArgs:
                filePath = "ListArgs.cs";

                source.AppendLine("public class ListArgs");
                source.AppendLine("{");
                source.AppendLine("  public void TestMethod(List<string> list)");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.Multiple:
                filePath = "Multiple.cs";

                source.AppendLine("public class Multiple");
                source.AppendLine("{");
                source.AppendLine("  public void TestMethod(string str)");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("  private void TestMethod(string str1,int integer)");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.RefArgs:
                filePath = "RefArgs.cs";

                source.AppendLine("public class RefArgs");
                source.AppendLine("{");
                source.AppendLine("  public void TestMethod(ref int integer,in string str,out decimal output)");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.DefaultValues:
                filePath = "DefaultValues.cs";

                source.AppendLine("public class DefaultValues");
                source.AppendLine("{");
                source.AppendLine("  public void TestMethod(int integer=10,string str=\"ABC\")");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.ReturnValue:
                filePath = "ReturnValue.cs";

                source.AppendLine("public class ReturnValue");
                source.AppendLine("{");
                source.AppendLine("  public int TestMethod()");
                source.AppendLine("  {");
                source.AppendLine("    return 10;");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.LambdaReturn:
                filePath = "LambdaReturn.cs";

                source.AppendLine("public class LambdaReturn");
                source.AppendLine("{");
                source.AppendLine("  public int TestMethod() => 10;");
                source.AppendLine("}");
                break;

            case CreatePattern.LambdaVoid:
                filePath = "LambdaVoid.cs";

                source.AppendLine("public class LambdaVoid");
                source.AppendLine("{");
                source.AppendLine("  public void TestMethod() => System.Diagnostics.Debug.WriteLine(10);");
                source.AppendLine("}");
                break;

            case CreatePattern.Generics:
                filePath = "Generics.cs";

                source.AppendLine("public class Generics");
                source.AppendLine("{");
                source.AppendLine("  public void TestMethod<T,V>()");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.TempInnerClass:
                filePath = "TempInnerClass.cs";

                source.AppendLine("public class TempInnerClass");
                source.AppendLine("{");
                source.AppendLine("  public class InnerClass");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.InnerClassArgs:
                filePath = "InnerClassArgs.cs";

                source.AppendLine("public class InnnerClassArgs");
                source.AppendLine("{");
                source.AppendLine("  public TempInnerClass.InnerClass TestMethod(TempInnerClass.InnerClass instance = new TempInnerClass.InnerClass())");
                source.AppendLine("  {");
                source.AppendLine("    return instance;");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.EnumArgs:
                filePath = "EnumArgs.cs";

                source.AppendLine("public class Standard");
                source.AppendLine("{");
                source.AppendLine("  prvate enum EnumTest");
                source.AppendLine("  {");
                source.AppendLine("    Test");
                source.AppendLine("  }");
                source.AppendLine("  public EnumTest TestMethod(EnumTest enumArg = Standard.EnumTest.Test)");
                source.AppendLine("  {");
                source.AppendLine("    return Enum.Test;");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;
            }

            return(new FileData(filePath, usingList.ToString(), source.ToString()));
        }
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var usingList = new StringBuilder();
            var source    = new List <string>();
            var filePath  = string.Empty;
            var addMember = new List <string>();
            var addSource = new StringBuilder();

            switch (pattern)
            {
            case CreatePattern.SimpleAssignment:
                filePath = "SimpleAssignment.cs";

                source.Add("int a;");
                source.Add("a=1;");
                break;

            case CreatePattern.Invocation:
                filePath = "Invocation.cs";

                source.Add("int.Parse(\"1\");");
                source.Add("AddMethod();");
                source.Add("AddClass.Test();");
                source.Add("target();");

                source.Add("void target()");
                source.Add("{");
                source.Add("}");

                // 追加メンバー
                addMember.Add("private void AddMethod()");
                addMember.Add("{");
                addMember.Add("}");

                // 追加クラス
                addSource.AppendLine("public class AddClass");
                addSource.AppendLine("{");
                addSource.AppendLine("  public static void Test(){};");
                addSource.AppendLine("}");
                break;

            case CreatePattern.PropertyReference:
                filePath = "PropertyReference.cs";

                source.Add("prop;");
                source.Add("AddClass.Prop;");
                source.Add("DateTime.Now;");

                // 追加メンバー
                addMember.Add("private int prop{get}=10;");

                // 追加クラス
                addSource.AppendLine("public class AddClass");
                addSource.AppendLine("{");
                addSource.AppendLine("  public static int Prop{get}=1;");
                addSource.AppendLine("}");
                break;

            case CreatePattern.LocalReference:
                filePath = "LocalReference.cs";

                source.Add("var local = 10;");
                source.Add("local;");
                break;

            case CreatePattern.Literal:
                filePath = "Literal.cs";

                source.Add("10;");
                source.Add("\"20\";");
                break;

            case CreatePattern.FieldReference:
                filePath = "FieldReference.cs";

                source.Add("field;");
                source.Add("AddClass.Field;");
                source.Add("int.MaxValue;");

                // 追加メンバー
                addMember.Add("private int field=10;");

                // 追加クラス
                addSource.AppendLine("public class AddClass");
                addSource.AppendLine("{");
                addSource.AppendLine("  public static int Field=1;");
                addSource.AppendLine("}");
                break;

            case CreatePattern.InstanceReference:
                filePath = "InstanceReference.cs";

                source.Add("this;");
                break;

            case CreatePattern.CompoundAssignment:
                filePath = "CompoundAssignment.cs";

                source.Add("int a=2;");
                source.Add("a+=2;");
                source.Add("a-=2;");
                source.Add("a*=2;");
                source.Add("a/=2;");
                source.Add("a+=2*1;");
                source.Add("a-=2*2;");
                source.Add("a*=2*3;");
                source.Add("a/=2*4;");
                break;

            case CreatePattern.IncrementOrDecrement:
                filePath = "IncrementOrDecrement.cs";

                source.Add("int a=2;");
                source.Add("a++;");
                source.Add("a--;");
                source.Add("++a;");
                source.Add("--a;");
                break;
            }

            // ソースコード作成
            var targetSource = new StringBuilder();

            targetSource.AppendLine("public class Standard");
            targetSource.AppendLine("{");
            targetSource.AppendLine("  public void TestMethod()");
            targetSource.AppendLine("  {");
            source.ForEach(line => targetSource.AppendLine($"    {line }"));
            targetSource.AppendLine("  }");

            addMember.ForEach(line => targetSource.AppendLine($"  {line }"));
            targetSource.AppendLine("}");
            targetSource.AppendLine(addSource.ToString());

            return(new FileData(filePath, usingList.ToString(), targetSource.ToString()));
        }
Beispiel #13
0
 private void OnCreateEmptyPattern()
 {
     CreatePattern?.Invoke(this, new NewPatternEventArgs(NewPatternSize, false));
 }
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var isCreateDummyClass = true;
            var usingList          = new StringBuilder();
            var source             = new List <string>();
            var filePath           = string.Empty;

            switch (pattern)
            {
            case CreatePattern.Standard:
                filePath = "Standard.cs";

                source.Add("void target()");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.StandardArgs:
                filePath = "StandardArgs.cs";

                source.Add("void target(string str,int intger,float f,decimal d)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.ClassArgs:
                filePath = "ClassArgs.cs";

                source.Add("void target(Standard instance)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.ListArgs:
                filePath = "ListArgs.cs";

                source.Add("void target(List<string> list)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.Multiple:
                filePath = "Multiple.cs";

                source.Add("void target(string str)");
                source.Add("{");
                source.Add("}");
                source.Add("void target(string str1,int integer)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.RefArgs:
                filePath = "RefArgs.cs";

                source.Add("void target(ref int integer,in string str,out decimal output)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.DefaultValues:
                filePath = "DefaultValues.cs";

                source.Add("void target(int integer=10,string str=\"ABC\")");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.ReturnValue:
                filePath = "ReturnValue.cs";

                source.Add("int target()");
                source.Add("{");
                source.Add("  return 10;");
                source.Add("}");
                break;

            case CreatePattern.LambdaReturn:
                filePath = "LambdaReturn.cs";

                source.Add("int target()=>10;target();");
                break;

            case CreatePattern.LambdaVoid:
                filePath = "LambdaVoid.cs";

                source.Add("void target() => System.Diagnostics.Debug.WriteLine(10);target();");
                break;

            case CreatePattern.Generics:
                filePath = "Generics.cs";

                source.Add("void target<T,V>(string param1)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.TempInnerClass:
                isCreateDummyClass = false;

                filePath = "TempInnerClass.cs";

                source.Add("public class TempInnerClass");
                source.Add("{");
                source.Add("  public class InnerClass");
                source.Add("  {");
                source.Add("  }");
                source.Add("}");
                break;

            case CreatePattern.InnerClassArgs:
                filePath = "InnerClassArgs.cs";

                source.Add("TempInnerClass.InnerClass TestMethod(TempInnerClass.InnerClass instance = new TempInnerClass.InnerClass())");
                source.Add("{");
                source.Add("  return instance;");
                source.Add("}");
                break;
            }

            // ソースコード作成
            var targetSource = new StringBuilder();

            if (isCreateDummyClass)
            {
                targetSource.AppendLine("public class Standard");
                targetSource.AppendLine("{");
                targetSource.AppendLine("  public void TestMethod()");
                targetSource.AppendLine("  {");

                source.ForEach(line => targetSource.AppendLine($"    {line}"));

                targetSource.AppendLine("  }");
                targetSource.AppendLine("}");
            }
            else
            {
                source.ForEach(line => targetSource.AppendLine($"{line}"));
            }

            return(new FileData(filePath, usingList.ToString(), targetSource.ToString()));
        }
Beispiel #15
0
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var isCreateDummyClass = true;
            var usingList          = new StringBuilder();
            var source             = new List <string>();
            var filePath           = string.Empty;

            switch (pattern)
            {
            case CreatePattern.Standard:
                filePath = "Standard.cs";

                source.Add("string target;");
                source.Add("int targetInt = 1;");
                break;

            case CreatePattern.TypeInference:
                filePath = "TypeInference.cs";

                source.Add("var target = \"ABC\";");
                source.Add("var targetInt = 1;");
                break;

            case CreatePattern.Generics:
                filePath = "Generics.cs";

                source.Add("List<string> target;");
                source.Add("var targetInt = new List<int>();");
                source.Add("var targetIntDef = new List<int>(){1,2,3};");
                source.Add("var targetDictionary = new Dictionary<int,int>(){{1,2},{3,4}};");
                break;

            case CreatePattern.TempInnerClass:
                isCreateDummyClass = false;

                filePath = "TempInnerClass.cs";

                source.Add("public class TempInnerClass");
                source.Add("{");
                source.Add("  public class InnerClass");
                source.Add("  {");
                source.Add("  }");
                source.Add("}");
                break;

            case CreatePattern.InnerClass:
                filePath = "InnerClass.cs";

                source.Add("var targetClass = new TempInnerClass();");
                source.Add("var targetInnerClass = new TempInnerClass.InnerClass();");
                source.Add("var targetList = new List<TempInnerClass.InnerClass>();");
                source.Add("TempInnerClass.InnerClass[] targetArray = new TempInnerClass.InnerClass[10];");
                break;

            case CreatePattern.Array:
                filePath = "Array.cs";

                source.Add("int[] list = { 1, 2, 3 };");
                break;
            }

            // ソースコード作成
            var targetSource = new StringBuilder();

            if (isCreateDummyClass)
            {
                targetSource.AppendLine("public class Standard");
                targetSource.AppendLine("{");
                targetSource.AppendLine("  public void TestMethod()");
                targetSource.AppendLine("  {");

                source.ForEach(line => targetSource.AppendLine($"    {line}"));

                targetSource.AppendLine("  }");
                targetSource.AppendLine("}");
            }
            else
            {
                source.ForEach(line => targetSource.AppendLine($"{line}"));
            }

            return(new FileData(filePath, usingList.ToString(), targetSource.ToString()));
        }
Beispiel #16
0
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var usingList = new StringBuilder();
            var source    = new List <string>();
            var filePath  = string.Empty;
            var addMember = new List <string>();
            var addSource = new StringBuilder();

            switch (pattern)
            {
            case CreatePattern.Standard:
                filePath = "Standard.cs";

                source.Add("var val=0;");
                source.Add("while(val < 10)");
                source.Add("{");
                source.Add("  val++;");
                source.Add("}");
                break;

            case CreatePattern.DoWhile:
                filePath = "DoWhile.cs";

                source.Add("var val=0;");
                source.Add("do{");
                source.Add("  val++;");
                source.Add("}");
                source.Add("while(val < 10)");
                break;

            case CreatePattern.Increment:
                filePath = "Increment.cs";

                source.Add("var val=0;");
                source.Add("while(val++ < 10)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.Decrement:
                filePath = "Decrement.cs";

                source.Add("var val=10;");
                source.Add("do{");
                source.Add("}");
                source.Add("while(--val >= 0)");
                break;

            case CreatePattern.InstanceProperty:
                filePath = "InstanceProperty.cs";

                addMember.Add("private int MaxCount{get;}= 10");

                source.Add("var val=0;");
                source.Add("while(val < MaxCount)");
                source.Add("{");
                source.Add("  val++;");
                source.Add("}");
                break;

            case CreatePattern.InstanceMethod:
                filePath = "InstanceMethod.cs";

                addMember.Add("private int GetMaxCount()");
                addMember.Add("{");
                addMember.Add("  return 10;");
                addMember.Add("{");

                source.Add("var val=0;");
                source.Add("while(val < GetMaxCount())");
                source.Add("{");
                source.Add("  val++;");
                source.Add("}");
                break;
            }

            // ソースコード作成
            var targetSource = new StringBuilder();

            targetSource.AppendLine("public class Standard");
            targetSource.AppendLine("{");
            targetSource.AppendLine("  public void TestMethod()");
            targetSource.AppendLine("  {");
            source.ForEach(line => targetSource.AppendLine($"    {line }"));
            targetSource.AppendLine("  }");

            addMember.ForEach(line => targetSource.AppendLine($"  {line }"));
            targetSource.AppendLine("}");
            targetSource.AppendLine(addSource.ToString());

            return(new FileData(filePath, usingList.ToString(), targetSource.ToString()));
        }
Beispiel #17
0
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var usingList = new StringBuilder();
            var source    = new StringBuilder();
            var filePath  = string.Empty;

            switch (pattern)
            {
            case CreatePattern.Standard:
                filePath = "Standard.cs";

                source.AppendLine("public class ClassTest");
                source.AppendLine("{");
                source.AppendLine("  public string FieldString;");
                source.AppendLine("  public int FieldInt = 1;");
                source.AppendLine(@"  private const string Const=""123"";");
                source.AppendLine("}");
                break;

            case CreatePattern.ClassField:
                filePath = "ClassField.cs";

                source.AppendLine("public class ClassField");
                source.AppendLine("{");
                source.AppendLine("  private ClassTest fieldClass1;");
                source.AppendLine("  protected ClassTest fieldClass2 = new ClassTest();");
                source.AppendLine("  private static ClassTest fieldClass3 = null;");
                source.AppendLine("}");
                break;

            case CreatePattern.ListField:
                filePath = "ListField.cs";

                source.AppendLine("public class ListField");
                source.AppendLine("{");
                source.AppendLine("  private List<string> field1;");
                source.AppendLine("  private List<string> field2 = new List<string>();");
                source.AppendLine("}");
                break;

            case CreatePattern.TempInnerClass:
                filePath = "TempInnerClass.cs";

                source.AppendLine("public class TempInnerClass");
                source.AppendLine("{");
                source.AppendLine("  public class InnerClass");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.InnerClassField:
                filePath = "InnerClassField.cs";

                source.AppendLine("public class InnerClassField");
                source.AppendLine("{");
                source.AppendLine("  public TempInnerClass.InnerClass field1 = new TempInnerClass.InnerClass()");
                source.AppendLine("}");
                break;
            }

            return(new FileData(filePath, usingList.ToString(), source.ToString()));
        }
Beispiel #18
0
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var usingList = new StringBuilder();
            var source    = new StringBuilder();
            var filePath  = string.Empty;

            switch (pattern)
            {
            case CreatePattern.Standard:
                filePath = "Standard.cs";

                source.AppendLine("public interface Inf ");
                source.AppendLine("{");
                source.AppendLine("}");
                break;

            case CreatePattern.StandardExistMembers:
                filePath = "StandardExistMembers.cs";

                source.AppendLine("public interface Inf ");
                source.AppendLine("{");
                source.AppendLine("  string PropertyString{set; get;}");
                source.AppendLine("  int PropertydInt{get;}");
                source.AppendLine("  void TestMethod(int integer=10,string str=\"ABC\");");
                source.AppendLine("}");
                break;

            case CreatePattern.StandardMethodOverLoad:
                filePath = "StandardMethodOverLoad.cs";

                source.AppendLine("public interface Inf ");
                source.AppendLine("{");
                source.AppendLine("  void TestMethod(decimal decimalValue);");
                source.AppendLine("  void TestMethod(int integer=10,string str=\"ABC\");");
                source.AppendLine("}");
                break;

            case CreatePattern.SubInterface:
                filePath = "SubInterface.cs";

                source.AppendLine("public interface SubInf : Inf");
                source.AppendLine("{");
                source.AppendLine("}");
                break;

            case CreatePattern.MultiInterface:
                filePath = "MultiInterface.cs";

                source.AppendLine("public interface ManyInf : Inf, Inf2");
                source.AppendLine("{");
                source.AppendLine("}");

                source.AppendLine("public interface Inf2");
                source.AppendLine("{");
                source.AppendLine("}");
                break;

            case CreatePattern.AnyInterface:
                filePath = "AnyInterface.cs";

                source.AppendLine("public interface AnyInf : SubInf");
                source.AppendLine("{");
                source.AppendLine("}");
                break;

            case CreatePattern.SubInterfaceMethodOverLoad:
                filePath = "SubInterfaceMethodOverLoad.cs";

                source.AppendLine("public interface SubInf : Inf");
                source.AppendLine("{");
                source.AppendLine("  void TestMethod(decimal decimalValue);");
                source.AppendLine("}");
                break;

            case CreatePattern.GenericInterface:
                filePath = "GenericInterface.cs";

                source.AppendLine("public interface Inf<T,U> ");
                source.AppendLine("{");
                source.AppendLine("}");
                break;

            case CreatePattern.GenericsSubFixedType:
                filePath = "GenericsSubFixedType.cs";

                source.AppendLine("public interface Sub :Inf<string, int> ");
                source.AppendLine("{");
                source.AppendLine("}");
                break;

            case CreatePattern.GenericsSubFixedTypeMulti:
                filePath = "GenericsSubFixedTypeMulti.cs";

                source.AppendLine("public interface Inf2<T> ");
                source.AppendLine("{");
                source.AppendLine("}");

                source.AppendLine("public interface Sub :Inf<string, int>,Inf2<decimal> ");
                source.AppendLine("{");
                source.AppendLine("}");
                break;

            case CreatePattern.TempInnerClass:
                filePath = "TempInnerClass.cs";

                source.AppendLine("public class TempInnerClass");
                source.AppendLine("{");
                source.AppendLine("  public class InnerClass");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");

                source.AppendLine("public interface Inf2<T> ");
                source.AppendLine("{");
                source.AppendLine("}");

                break;

            case CreatePattern.InnerClassGenericInterface:
                filePath = "InnerClassGenericInterface.cs";

                source.AppendLine("public interface InnerClassGenericInterface:Inf2<TempInnerClass.InnerClass>");
                source.AppendLine("{");
                source.AppendLine("}");
                break;
            }

            return(new FileData(filePath, usingList.ToString(), source.ToString()));
        }
Beispiel #19
0
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var usingList = new StringBuilder();
            var source    = new List <string>();
            var filePath  = string.Empty;
            var addMember = new List <string>();
            var addSource = new StringBuilder();

            switch (pattern)
            {
            case CreatePattern.Standard:
                filePath = "Standard.cs";

                source.Add("var val=1;");
                source.Add("switch(val)");
                source.Add("{");
                source.Add("  case 1:");
                source.Add("  break;");
                source.Add("}");
                break;

            case CreatePattern.CaseDefault:
                filePath = "CaseDefault.cs";

                source.Add("var val=1;");
                source.Add("switch(val)");
                source.Add("{");
                source.Add("  case 1:");
                source.Add("  break;");
                source.Add("  default:");
                source.Add("  break;");
                source.Add("}");
                break;

            case CreatePattern.MultiCase:
                filePath = "MultiCase.cs";

                source.Add("var val=1;");
                source.Add("switch(val)");
                source.Add("{");
                source.Add("  case 1:");
                source.Add("  case 2:");
                source.Add("  break;");
                source.Add("}");
                break;

            case CreatePattern.TypeCase:
                filePath = "TypeCase.cs";

                addMember.Add("private enum EnumTest");
                addMember.Add("{");
                addMember.Add("  Test;");
                addMember.Add("}");

                source.Add("object val = 1;");
                source.Add("switch(val)");
                source.Add("{");
                source.Add("  case int b:");
                source.Add("  break;");
                source.Add("  case string b:");
                source.Add("  break;");
                source.Add("  case EnumTest e:");
                source.Add("  break;");
                source.Add("}");
                break;

            case CreatePattern.NestSwitch:
                filePath = "NestSwitch.cs";

                source.Add("object val = 1;");
                source.Add("switch(val)");
                source.Add("{");
                source.Add("  case int b:");
                source.Add("    switch(b)");
                source.Add("    {");
                source.Add("      case 1:");
                source.Add("      break;");
                source.Add("}");
                source.Add("  break;");
                source.Add("}");
                break;

            case CreatePattern.InstanceProperty:
                filePath = "InstanceProperty.cs";

                addMember.Add("private int Val{get;}= 1");

                source.Add("switch(Val)");
                source.Add("{");
                source.Add("  case 1:");
                source.Add("  break;");
                source.Add("}");
                break;

            case CreatePattern.InstanceMethod:
                filePath = "InstanceMethod.cs";

                addMember.Add("private int GetValue()");
                addMember.Add("{");
                addMember.Add("  return 1;");
                addMember.Add("{");

                source.Add("switch(GetValue())");
                source.Add("{");
                source.Add("  case 1:");
                source.Add("  break;");
                source.Add("}");
                break;
            }

            // ソースコード作成
            var targetSource = new StringBuilder();

            targetSource.AppendLine("public class Standard");
            targetSource.AppendLine("{");
            targetSource.AppendLine("  public void TestMethod()");
            targetSource.AppendLine("  {");
            source.ForEach(line => targetSource.AppendLine($"    {line }"));
            targetSource.AppendLine("  }");

            addMember.ForEach(line => targetSource.AppendLine($"  {line }"));
            targetSource.AppendLine("}");
            targetSource.AppendLine(addSource.ToString());

            return(new FileData(filePath, usingList.ToString(), targetSource.ToString()));
        }
Beispiel #20
0
 private void OnCreateRandomPattern()
 {
     CreatePattern?.Invoke(this, new NewPatternEventArgs(NewPatternSize, true));
 }
Beispiel #21
0
    void Awake()
    {
        worldmap.SetActive(true);

        npcsc_sc   = npc.GetComponent <NpcScript>();
        money_text = Money_tex.GetComponent <Text>();
        Singleton.getInstance.stage      = 999;
        Singleton.getInstance.MyPosition = Inanis_map.WorldTree;
        mapname_img = MapnameSeal.GetComponent <Image>();
        Screen.SetResolution(540, 960, false);

        if (PlayerPrefs.GetInt("Money") == 0)
        {
            if (PlayerPrefs.GetInt("First") == 0)
            {
                Debug.Log("f");
                PlayerPrefs.SetInt("First", 1);
                PlayerPrefs.SetInt("Money", 100);
                PlayerPrefs.Save();
            }
        }
        int i = PlayerPrefs.GetInt("Quest");

        if (i == 0)
        {
            Singleton.getInstance.quest = Quest.none;
        }
        else if (i == 1)
        {
            Singleton.getInstance.quest = Quest.going;
        }
        else if (i == 2)
        {
            Singleton.getInstance.quest = Quest.finish;
        }
        else if (i == 3)
        {
            Singleton.getInstance.quest = Quest.fd;
        }

        if (PlayerPrefs.GetInt("BerserkerLevel") == 0)
        {
            PlayerPrefs.SetInt("BerserkerLevel", 1);
        }
        Singleton.getInstance.Level          = PlayerPrefs.GetInt("BerserkerLevel");
        Singleton.getInstance.EnableWorld[0] = 1;
        Singleton.getInstance.EnableWorld[1] = 1;
        Singleton.getInstance.EnableWorld[2] = 0;
        Singleton.getInstance.EnableWorld[3] = 0;
        Singleton.getInstance.EnableWorld[4] = 0;
        Singleton.getInstance.EnableWorld[5] = 0;
        Singleton.getInstance.money          = PlayerPrefs.GetInt("Money");
        Singleton.getInstance.Level          = PlayerPrefs.GetInt("BerserkerLevel");

        int c = 50;
        int j = Singleton.getInstance.Level;

        for (int d = 1; d < j; d++)
        {
            c += ((d) * 2 + 1);
        }
        Singleton.getInstance.Power    = c;
        Singleton.getInstance.skill1lv = PlayerPrefs.GetInt("SKill1");
        Singleton.getInstance.skill2lv = PlayerPrefs.GetInt("SKill2");
        mapname.Add("메마른 오아시스 입구");
        mapname.Add("붉은 사막길3");
        mapname.Add("붉은 사막길2");
        mapname.Add("붉은 사막길1");
        mapname.Add("황폐화된 벌판2");
        mapname.Add("황페화된 벌판1");
        mapname.Add("메마른 오아시스");
        mapname.Add("메마른 오아시스");
        money_text.text = Singleton.getInstance.money.ToString() + " G";

        bossmanager_sc     = GetComponent <BossManager>();
        mapname_text       = Mapname_gb.GetComponent <Text>();
        createpattern_sc   = GetComponent <CreatePattern>();
        monstermananger_sc = GetComponent <MonsterMananger>();
        mapselector_sc     = GetComponent <MapSelector>();
        map_sc             = Map_gb.GetComponent <Map>();
    }
Beispiel #22
0
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var usingList = new StringBuilder();
            var source    = new List <string>();
            var filePath  = string.Empty;
            var addMember = new List <string>();
            var addSource = new StringBuilder();

            switch (pattern)
            {
            case CreatePattern.Standard:
                filePath = "Standard.cs";

                source.Add("var values = new int[]{1,2,3 };");
                source.Add("foreach(var value in values)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.ListStrings:
                filePath = "ListStrings.cs";

                source.Add("var values = new List<string>{\"1\",\"2\", \"3\" };");
                source.Add("foreach(var value in values)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.DictionaryKey:
                filePath = "DictionaryKey.cs";

                source.Add("var values = new Dictionary<int,string>{{10,\"1\"},{20,\"2\"}, {30,\"3\" }};");
                source.Add("foreach(var value in values.Keys)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.DictionaryValue:
                filePath = "DictionaryValue.cs";

                source.Add("var values = new Dictionary<int,string>{{10,\"1\"},{20,\"2\"}, {30,\"3\" }};");
                source.Add("foreach(var value in values.Values)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.Dictionary:
                filePath = "Dictionary.cs";

                source.Add("var values = new Dictionary<int,string>{{10,\"1\"},{20,\"2\"}, {30,\"3\" }};");
                source.Add("foreach(var value in values)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.GenericsNest:
                filePath = "GenericsNest.cs";

                source.Add("var values = new Dictionary<int,List<string>>");
                source.Add("{");
                source.Add("{0,new List<string>{\"a\",\"b\",\"c\",} },");
                source.Add("{1,new List<string>{\"A\",\"B\",\"C\",} },");
                source.Add("};");
                source.Add("foreach(var value in values)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.Indexer:
                filePath = "Indexer.cs";

                source.Add("var values = new Dictionary<int,List<string>>");
                source.Add("{");
                source.Add("{0,new List<string>{\"a\",\"b\",\"c\",} },");
                source.Add("{1,new List<string>{\"A\",\"B\",\"C\",} },");
                source.Add("};");
                source.Add("foreach(var value in values[0])");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.InstanceProperty:
                filePath = "InstanceProperty.cs";

                addMember.Add("private List<int> Values{get;}= new List<int>();");

                source.Add("Values.AddRange(new List<int>{0,1,2,3});");
                source.Add("foreach(var value in Values)");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.InstanceMethod:
                filePath = "InstanceMethod.cs";

                addMember.Add("private List<int> GetValues()");
                addMember.Add("{");
                addMember.Add("  return new List<int>{0,1,2,3};");
                addMember.Add("{");

                source.Add("foreach(var value in GetValues())");
                source.Add("{");
                source.Add("}");
                break;

            case CreatePattern.InnerClassMethod:
                filePath = "InnerClassMethod.cs";

                addMember.Add("public class InnerClass");
                addMember.Add("{");
                addMember.Add("}");
                addMember.Add("private List<Standard.InnerClass> GetValues()");
                addMember.Add("{");
                addMember.Add("  return new List<Standard.InnerClass>();");
                addMember.Add("{");

                source.Add("foreach(var value in GetValues())");
                source.Add("{");
                source.Add("}");
                break;
            }

            var targetSource = new StringBuilder();

            targetSource.AppendLine("public class Standard");
            targetSource.AppendLine("{");
            targetSource.AppendLine("  public void TestMethod()");
            targetSource.AppendLine("  {");
            source.ForEach(line => targetSource.AppendLine($"    {line }"));
            targetSource.AppendLine("  }");

            addMember.ForEach(line => targetSource.AppendLine($"  {line }"));
            targetSource.AppendLine("}");
            targetSource.AppendLine(addSource.ToString());

            return(new FileData(filePath, usingList.ToString(), targetSource.ToString()));
        }
Beispiel #23
0
        /// <summary>
        /// ファイル名、ソースコード取得処理
        /// </summary>
        /// <param name="pattern">生成パターン</param>
        /// <returns>ファイルパスとソースコード</returns>
        private FileData CreateSource(CreatePattern pattern)
        {
            var usingList = new StringBuilder();
            var source    = new StringBuilder();
            var filePath  = string.Empty;

            switch (pattern)
            {
            case CreatePattern.Standard:
                filePath = "Standard.cs";

                source.AppendLine("public class ClassTest");
                source.AppendLine("{");
                source.AppendLine("  public string PropertyString{set; get;}");
                source.AppendLine("  public int PropertydInt{get;} = 1;");
                source.AppendLine("}");
                break;

            case CreatePattern.RefField:
                filePath = "RefField.cs";

                source.AppendLine("public class RefFieldTest");
                source.AppendLine("{");
                source.AppendLine("  private string fieldString;");
                source.AppendLine("  public string PropertyString");
                source.AppendLine("  {");
                source.AppendLine("    set{");
                source.AppendLine("      fieldString = value;");
                source.AppendLine("    }");
                source.AppendLine("    get{");
                source.AppendLine("      return fieldString;");
                source.AppendLine("    }");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.Static:
                filePath = "Static.cs";

                source.AppendLine("public class StaticTest");
                source.AppendLine("{");
                source.AppendLine("  public static string PropertyString{set; get;}");
                source.AppendLine("}");
                break;

            case CreatePattern.ClassProperty:
                filePath = "ClassProperty.cs";

                source.AppendLine("public class ClassPropertyTest");
                source.AppendLine("{");
                source.AppendLine("  public ClassTest PropertyString{set; get;}");
                source.AppendLine("}");
                break;

            case CreatePattern.Generic:
                filePath = "Generic.cs";

                source.AppendLine("public class GenericTest");
                source.AppendLine("{");
                source.AppendLine("  public List<string> PropertyList{set; get;} = new List<string>();");
                source.AppendLine("}");
                break;

            case CreatePattern.LamdaGet:
                filePath = "LamdaGet.cs";

                source.AppendLine("public class GenericTest");
                source.AppendLine("{");
                source.AppendLine("  private string s;");
                source.AppendLine("  public string S => s; ");
                source.AppendLine("}");
                break;

            case CreatePattern.LamdaSetGet:
                filePath = "LamdaSetGet.cs";

                source.AppendLine("public class GenericTest");
                source.AppendLine("{");
                source.AppendLine("  private string s;");
                source.AppendLine("  public string S { get => s; set => s = value; }");
                source.AppendLine("}");
                break;

            case CreatePattern.TempInnerClass:
                filePath = "TempInnerClass.cs";

                source.AppendLine("public class TempInnerClass");
                source.AppendLine("{");
                source.AppendLine("  public class InnerClass");
                source.AppendLine("  {");
                source.AppendLine("  }");
                source.AppendLine("}");
                break;

            case CreatePattern.InnerClassProperty:
                filePath = "InnerClassProperty.cs";

                source.AppendLine("public class InnerClassField");
                source.AppendLine("{");
                source.AppendLine("  public TempInnerClass.InnerClass Property1 {get;} = new TempInnerClass.InnerClass()");
                source.AppendLine("}");
                break;
            }

            return(new FileData(filePath, usingList.ToString(), source.ToString()));
        }