private async Task Build(string str)
        {
            str = str.Trim();
            var resultCode = CheckCode(str);

            if (resultCode != 0)
            {
                Message = $"line {resultCode}: Error! IncorrectCommand";
                return;
            }
            BreakPoints.Clear();
            foreach (var command in Commands)
            {
                if (command.IsBreakpointSet)
                {
                    BreakPoints.Add(command.CommandId);
                }
            }
            Commands = FromsStringtoCommands(str);
            for (int i = 0; i < Commands.Count; i++)
            {
                if (BreakPoints.Contains(Commands[i].CommandId))
                {
                    Commands[i].IsBreakpointSet = true;
                }
            }
            CurrentCommand = Commands.First();

            SaveProjectCommand.Execute("Build");
            await Task.Factory.StartNew(() => SendMessage("Sucessfully Compiled!"));

            Start();
        }