private void parseLine()
 {
     if (_line.Contains(": error"))
     {
         BuildMessage message = parseMessage(": error");
         if (!_results.Errors.Contains(message))
         {
             _results.AddError(message);
         }
     }
     else if (_line.Contains(": warning"))
     {
         BuildMessage message = parseMessage(": warning");
         if (!_results.Warnings.Contains(message))
         {
             _results.AddWarning(message);
         }
     }
     else if (_line.StartsWith("\tfatal error "))
     {
         BuildMessage message = parseMessage("fatal error ");
         if (!_results.Errors.Contains(message))
         {
             _results.AddError(message);
         }
     }
     else if (isSolutionError())
     {
         BuildMessage message = parseMessage(": Solution file error");
         if (!_results.Errors.Contains(message))
         {
             _results.AddError(message);
         }
     }
 }
示例#2
0
        TestClient()
        {
            _logger = new Logger(GetType().Name);
            IPAddress ip = Array.FindLast(
                Dns.GetHostEntry(string.Empty).AddressList,
                a => a.AddressFamily == AddressFamily.InterNetwork);
            IPEndPoint ipEndPoint = new IPEndPoint(ip, port);

            _logger.Debug("Ip Endpoint");
            _logger.Debug(ipEndPoint);
            client = new TcpClient();
            client.Connect(ipEndPoint);
            _logger.Debug("Connected: " + client.Connected);

            sendMessage(new ConnectMessage(Environment.UserName));
            ConnectMessage msg = (ConnectMessage)ReceiveSingleMessage(client);

            this.clientId = msg.playerInfo.userId;

            BuildMessage buildMessage = new BuildMessage("test", new Vector(), new Vector());

            sendMessage(buildMessage);

            Thread.Sleep(2000);
            //client.Close();
        }
        private BuildMessage parseMessage(string type)
        {
            var message = new BuildMessage();

            try
            {
                if (_line.IndexOf('(') != -1)
                {
                    message.File = Path.Combine(_currentProjectPath, _line.Substring(0, _line.IndexOf('(')).Trim());
                    var position = _line.Substring(_line.IndexOf('(') + 1, _line.IndexOf(')') - (_line.IndexOf('(') + 1)).Split(',');
                    message.LineNumber   = int.Parse(position[0]);
                    message.LinePosition = int.Parse(position[1]);
                }
                message.ErrorMessage = _line.Substring(_line.IndexOf(type) + type.Length,
                                                       _line.Length - (_line.IndexOf(type) + type.Length)).Trim();
            }
            catch (Exception)
            {
                message.File         = "Unknown";
                message.LineNumber   = 0;
                message.LinePosition = 0;
                message.ErrorMessage = _line;
            }
            return(message);
        }
示例#4
0
文件: Player.cs 项目: corefan/yad2
 public void SendMessage(Message msg)
 {
     try {
         if (!_isDisconnected)
         {
             if (msg.Type == MessageType.Build)
             {
                 BuildMessage bm = (BuildMessage)msg;
                 InfoLog.WriteInfo("Sending build message to player: " + this.Id, EPrefix.Test);
                 InfoLog.WriteInfo("Buildmessage data: " + bm.ToString(), EPrefix.Test);
             }
             if (msg.Type == MessageType.BuildUnitMessage)
             {
                 BuildUnitMessage bum = (BuildUnitMessage)msg;
                 InfoLog.WriteInfo("Sending build unit message to player: " + this.Id, EPrefix.Test);
                 InfoLog.WriteInfo("BuildUnitMessage data: " + bum.ToString(), EPrefix.Test);
             }
             msg.Serialize(_writeStream);
             _writeStream.Flush();
             if (msg.Type == MessageType.DoTurn)
             {
                 _tac.Unset(this.Login);
             }
         }
     }
     catch (Exception ex) {
         InfoLog.WriteException(ex);
         ExecuteOnConnectionLost();
     }
 }
示例#5
0
 private void mergeBuildList(List<BuildItem> list, string key, BuildMessage[] results)
 {
     var itemsToRemove = new List<BuildItem>();
     foreach (var item in list)
     {
         var found = false;
         foreach (var message in results)
         {
             var resultItem = new BuildItem(key, message);
             if (resultItem.Equals(item))
             {
                 found = true;
                 break;
             }
         }
         if (!found && item.Key.Equals(key))
             itemsToRemove.Add(item);
     }
     foreach (var item in itemsToRemove)
         list.Remove(item);
     foreach (var message in results)
     {
         var item = new BuildItem(key, message);
         if (!list.Contains(item))
         {
             list.Insert(0, item);
         }
     }
 }
        private void ProcessRequest(BuildRequest obj)
        {
            var(idObservable, data) = obj;
            idObservable
            .Take(1)
            .ObserveOnSelf()
            .Subscribe(operationId =>
            {
                Context.Sender.Tell(BuildMessage.GatherData(operationId));

                _remaining = 0;
                _fail      = false;

                var toBuild = new List <PreparedBuild>(data.Projects.Count);

                toBuild.AddRange(from project in data.Projects
                                 let path = data.FindProjectPath(project)
                                            where !string.IsNullOrWhiteSpace(path)
                                            select new PreparedBuild(data.BuildInfo, project, data, operationId, path));

                if (toBuild.Count == 0)
                {
                    Context.Sender.Tell(BuildMessage.NoData(operationId));
                    return;
                }

                var agent = 1;
                foreach (var preparedBuild in toBuild)
                {
                    _remaining++;
                    Context.GetOrAdd <BuildAgent>("Agent-" + agent).Forward(preparedBuild);
                    agent++;
                }
            });
        }
示例#7
0
 public static void SaveBuildMessage(string fileName, BuildMessage bm)
 {
     if (string.IsNullOrEmpty(fileName))
     {
         throw new ArgumentNullException("fileName");
     }
     if (bm == null)
     {
         return;
     }
     using (var writer = new StreamWriter(fileName))
     {
         JsonUtility.Serialize(
             writer,
             bm.ToDictionary(
                 p => p.Key,
                 p =>
         {
             using (var sw = new StringWriter())
             {
                 p.Value.Save(sw);
                 return(sw.ToString());
             }
         }));
     }
 }
示例#8
0
 private void RaiseBuildMessage(object sender, engenious.Content.Pipeline.BuildMessageEventArgs e)
 {
     if (e.MessageType == engenious.Content.Pipeline.BuildMessageEventArgs.BuildMessageType.Error)
     {
         FailedBuilds++;
     }
     BuildMessage?.Invoke(sender, e);
 }
示例#9
0
文件: BuildForm.cs 项目: adbre/cab42
        /// <summary>
        /// Adds a build message to the listview.
        /// </summary>
        /// <param name="info">The build message to add</param>
        private void Bind(BuildMessage info)
        {
            var lvi = new ListViewItem();

            this.Bind(lvi, info);

            this.listView1.Items.Add(lvi);
        }
示例#10
0
        /// <summary>
        ///     Generates the items
        /// </summary>
        private void GenerateItems()
        {
            var rnd = new Random();

            m_Message = new BuildMessage();

            var oldMap = Pandora.Map.Map;

            Pandora.Map.Map = (Maps)m_Map;

            for (var x = 0; x < m_Rectangle.Width; x++)
            {
                for (var y = 0; y < m_Rectangle.Height; y++)
                {
                    if (!m_Grid[x, y])
                    {
                        continue;
                    }

                    var tile = m_TileSet.Tiles[rnd.Next(m_TileSet.Tiles.Count)] as RandomTile;

                    foreach (int id in tile.Items)
                    {
                        var item = new BuildItem();
                        item.ID = id;

                        // Hue
                        var hue = m_Hue;

                        if (RandomHues != null)
                        {
                            // Issue 10 - Update the code to Net Framework 3.5 - http://code.google.com/p/pandorasbox3/issues/detail?id=10 - Smjert
                            hue = RandomHues.Hues[rnd.Next(RandomHues.Hues.Count)];
                            // Issue 10 - End
                        }

                        item.Hue = hue;

                        // Location
                        item.X = m_Rectangle.X + x;
                        item.Y = m_Rectangle.Y + y;

                        if (Z != -1)
                        {
                            item.Z = Pandora.Map.GetMapHeight(new Point(item.X, item.Y));
                        }
                        else
                        {
                            item.Z = Z;
                        }

                        m_Message.Items.Add(item);
                    }
                }
            }

            Pandora.Map.Map = oldMap;
        }
示例#11
0
文件: BuildForm.cs 项目: adbre/cab42
        /// <summary>
        /// Binds a build message to the specified listview item.
        /// </summary>
        /// <param name="lvi">The ListViewItem</param>
        /// <param name="info">The BuildMessage</param>
        private void Bind(ListViewItem lvi, BuildMessage info)
        {
            lvi.Tag = info;

            int index = 0;

            this.BindValue(lvi, index++, info.Description);
            this.BindValue(lvi, index++, info.Configuration);
        }
示例#12
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            var towerBuilder = GameObject.FindObjectOfType <BuildTowerNetworkManager>();

            var tower = new BuildMessage();
            towerBuilder.CmdBuildTower(tower);
        }
    }
 private void updateMessage(BuildMessage x)
 {
     foreach (var file in _files.Files)
     {
         if (compare(file.Tempfile, x.File))
         {
             x.UpdateFile(file.Original);
         }
         x.ErrorMessage = x.ErrorMessage.Replace(file.Tempfile, file.Original);
     }
 }
示例#14
0
        public static BuildMessageInfo GetPhaseMessageInfo(BuildMessage messages, BuildPhase phase)
        {
            if (messages == null)
            {
                return(null);
            }

            if (!messages.TryGetValue(phase, out BuildMessageInfo message))
            {
                messages[phase] = message = new BuildMessageInfo();
            }
            return(message);
        }
示例#15
0
        private static Annotation CreateAnnotation(BuildDetails buildDetails, string repoOwner, string repoName,
                                                   string sha, BuildMessage buildMessage, ILookup <string, LogAnalyzerRule> lookup)
        {
            var filename =
                buildDetails.SolutionDetails.GetProjectItemPath(buildMessage.ProjectFile, buildMessage.File)
                .TrimStart('/');

            var blobHref = BlobHref(repoOwner, repoName, sha, filename);

            var logAnalyzerRule = lookup?[buildMessage.Code].FirstOrDefault();

            var checkWarningLevel = buildMessage.MessageLevel == BuildMessageLevel.Error
                ? CheckWarningLevel.Failure
                : CheckWarningLevel.Warning;

            if (logAnalyzerRule != null)
            {
                switch (logAnalyzerRule.ReportAs)
                {
                case ReportAs.AsIs:
                    break;

                case ReportAs.Ignore:
                    return(null);

                case ReportAs.Notice:
                    checkWarningLevel = CheckWarningLevel.Notice;
                    break;

                case ReportAs.Warning:
                    checkWarningLevel = CheckWarningLevel.Warning;
                    break;

                case ReportAs.Error:
                    checkWarningLevel = CheckWarningLevel.Failure;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(new Annotation(filename,
                                  checkWarningLevel,
                                  buildMessage.Code,
                                  $"{buildMessage.Code}: {buildMessage.Message}",
                                  buildMessage.LineNumber,
                                  buildMessage.EndLineNumber,
                                  blobHref));
        }
示例#16
0
 internal void Load(string baseDir)
 {
     Dependency   = IncrementalUtility.LoadDependency(Path.Combine(baseDir, DependencyFile));
     Attributes   = IncrementalUtility.LoadIntermediateFile <IDictionary <string, FileAttributeItem> >(Path.Combine(baseDir, AttributesFile));
     BuildOutputs = IncrementalUtility.LoadIntermediateFile <BuildOutputs>(Path.Combine(baseDir, OutputFile));
     Manifest     = IncrementalUtility.LoadIntermediateFile <IEnumerable <ManifestItem> >(Path.Combine(baseDir, ManifestFile));
     XRefSpecMap  = IncrementalUtility.LoadIntermediateFile <IDictionary <string, IEnumerable <XRefSpec> > >(Path.Combine(baseDir, XRefSpecMapFile));
     FileMap      = IncrementalUtility.LoadIntermediateFile <IDictionary <string, string> >(Path.Combine(baseDir, FileMapFile));
     BuildMessage = IncrementalUtility.LoadBuildMessage(Path.Combine(baseDir, BuildMessageFile));
     foreach (var processor in Processors)
     {
         processor.Load(baseDir);
     }
 }
        private static BuildMessageInfo GetPhaseMessageInfo(BuildMessage messages)
        {
            if (messages == null)
            {
                return null;
            }

            BuildMessageInfo message;
            if (!messages.TryGetValue(BuildPhase.PreBuildBuild, out message))
            {
                messages[BuildPhase.PreBuildBuild] = message = new BuildMessageInfo();
            }
            return message;
        }
示例#18
0
 private void HandleBuildMessage(BuildMessage message)
 {
     if (!message.IsSuccessfulBuild)
     {
         return;
     }
     // we should update collection view from another thread
     // https://stackoverflow.com/a/18336392/2219089
     Application.Current.Dispatcher.Invoke(delegate
     {
         Map[message.Coordinates.Coordinate_Y][message.Coordinates.Coordinate_X] = message.RouteCard;
     });
     OnPropertyChanged(nameof(Map));
 }
示例#19
0
        private static BuildMessageInfo GetPhaseMessageInfo(BuildMessage messages)
        {
            if (messages == null)
            {
                return(null);
            }

            BuildMessageInfo message;

            if (!messages.TryGetValue(BuildPhase.PreBuildBuild, out message))
            {
                messages[BuildPhase.PreBuildBuild] = message = new BuildMessageInfo();
            }
            return(message);
        }
示例#20
0
        public void Should_serialize_chache_build_message()
        {
            var item = new BuildMessage()
            {
                ErrorMessage = "message", File = "file", LineNumber = 1, LinePosition = 2
            };
            var message = new CacheBuildMessage("project", item);
            var output  = serializeDeserialize(message);

            Assert.AreEqual("project", output.Project);
            Assert.AreEqual("message", output.BuildItem.ErrorMessage);
            Assert.AreEqual("file", output.BuildItem.File);
            Assert.AreEqual(1, output.BuildItem.LineNumber);
            Assert.AreEqual(2, output.BuildItem.LinePosition);
        }
        public void Should_not_be_equal()
        {
            var message1 = new BuildMessage();
            message1.ErrorMessage = "error message";
            message1.File = "file";
            message1.LineNumber = 15;
            message1.LinePosition = 20;

            var message2 = new BuildMessage();
            message2.ErrorMessage = "another error message";
            message2.File = "file";
            message2.LineNumber = 17;
            message2.LinePosition = 10;

            message1.Equals(message2).ShouldBeFalse();
        }
示例#22
0
    public void CmdBuildTower(BuildMessage message)
    {
        // receives message from client
        // client has the intent to build a tower

        // validate that player can build tower
        // i.e.
        //      Does player have enough resources?
        //		Is location available?
        //		Is location valid? (meaning does it block the path? Is there something at that location?)
        //


        // call rpc method so that clients build the actual tower in their own game instance
        RpcBuildTower(message);
    }
示例#23
0
        protected override void OnMessageBuild(BuildMessage bm)
        {
            //InfoLog.WriteInfo("MessageBuild", EPrefix.SimulationInfo);
            InfoLog.WriteInfo("OnMessageBuild", EPrefix.Test);
            InfoLog.WriteInfo("BuildingType: " + bm.BuildingType + " CreatorID: " + bm.CreatorID, EPrefix.Test);
            BuildingData bd = GlobalSettings.Wrapper.buildingsMap[bm.BuildingType];

            if (!Building.CheckBuildPosition(bd, bm.Position, _map, bm.IdPlayer))
            {
                if (InvalidBuild != null)
                {
                    InfoLog.WriteInfo("Buidling: " + bm.BuildingType + " was not built because of location", EPrefix.BMan);
                    InvalidBuild(bm.CreatorID);

                    /*int cost = GlobalSettings.Wrapper.buildingsMap[bm.BuildingType].Cost;
                     * p.Credits += cost;
                     * OnCreditsUpdate(cost);*/
                }
                return;
            }
            int playerCredits = players[bm.IdPlayer].Credits;
            int buildingCost  = GlobalSettings.Wrapper.buildingsMap[bm.BuildingType].Cost;

            if (playerCredits < buildingCost)
            {
                InfoLog.WriteInfo("Buidling: " + bm.BuildingType + " was not built because of credits", EPrefix.BMan);
                if (InvalidBuild != null)
                {
                    InvalidBuild(bm.CreatorID);
                }
                return;
            }
            players[bm.IdPlayer].Credits -= buildingCost;
            if (OnCreditsUpdate != null)
            {
                OnCreditsUpdate(bm.IdPlayer, buildingCost);
            }
            Building b = AddBuilding(bm.IdPlayer, bm.CreatorID, bm.BuildingType, bm.Position);

            b.State       = Building.BuildingState.constructing;
            b.BuildStatus = new BuildStatus(bm.CreatorID, bm.BuildingType, b.BuildingData.BuildSpeed, BuildType.Building);
            UpdatePowerManagement(b);
            InfoLog.WriteInfo("OnMessageBuildEnd", EPrefix.BMan);
            //OnBuildingCompleted(b, bm.CreatorID);
            //194.29.178.207
        }
示例#24
0
        public BuildResults Build(string filename, string outputPath)
        {
            string launcherFilename = Path.GetFileName(LauncherPath);

            _results = new BuildResults();

            try
            {
                if (filename == null)
                {
                    _results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Error, "GenerateLauncher.InvalidInput"));
                    return(_results);
                }

                if (String.IsNullOrEmpty(outputPath))
                {
                    _results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Error, "GenerateLauncher.NoOutputPath"));
                    return(_results);
                }

                // Copy setup.bin to the output directory
                string strOutputExe = System.IO.Path.Combine(outputPath, launcherFilename);
                if (!CopyLauncherToOutputDirectory(strOutputExe))
                {
                    // Appropriate messages should have been stuffed into the results already
                    return(_results);
                }

                var resourceUpdater = new ResourceUpdater();
                resourceUpdater.AddStringResource(LAUNCHER_RESOURCE_TABLE, LAUNCHER_RESOURCENAME, filename);
                if (!resourceUpdater.UpdateResources(strOutputExe, _results))
                {
                    return(_results);
                }

                _results.SetKeyFile(launcherFilename);
                _results.BuildSucceeded();
            }
            catch (Exception ex)
            {
                _results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Error, "GenerateLauncher.General", ex.Message));
            }

            return(_results);
        }
示例#25
0
        }                                             //Number of errors

        private void AddMessage(BuildMessage msg)
        {
            Messages.Add(msg);

            if (msg.Type == BuildMessageType.Error)
            {
                ErrorCount++;

                //An error limit - if reached we stop compilation
                if (Messages.Count >= ERROR_LIMIT)
                {
                    //Generate "too many errors" error message and terminate
                    Messages.Add(new BuildMessage(CompilerErrors.TooManyErrors, BuildMessageType.Error,
                                                  (int)CompilerError.TooManyErrors, msg.Line, msg.Column, unit.FileName));
                    throw new TerminationException();
                }
            }
        }
        public void Should_not_be_equal()
        {
            var message1 = new BuildMessage();

            message1.ErrorMessage = "error message";
            message1.File         = "file";
            message1.LineNumber   = 15;
            message1.LinePosition = 20;

            var message2 = new BuildMessage();

            message2.ErrorMessage = "another error message";
            message2.File         = "file";
            message2.LineNumber   = 17;
            message2.LinePosition = 10;

            message1.Equals(message2).ShouldBeFalse();
        }
 private void parseLine()
 {
     if (_line.Contains(": error"))
     {
         BuildMessage message = parseMessage(": error");
         if (!_results.Errors.Contains(message))
         {
             _results.AddError(message);
         }
     }
     else if (_line.Contains(": warning"))
     {
         BuildMessage message = parseMessage(": warning");
         if (!_results.Warnings.Contains(message))
         {
             _results.AddWarning(message);
         }
     }
 }
示例#28
0
 public static void SaveBuildMessage(string fileName, BuildMessage bm)
 {
     if (string.IsNullOrEmpty(fileName))
     {
         throw new ArgumentNullException("fileName");
     }
     if (bm == null)
     {
         return;
     }
     using (var writer = new StreamWriter(fileName))
     {
         JsonUtility.Serialize(
             writer,
             bm.ToDictionary(
                 p => p.Key,
                 p => SaveSerializedBuildMessageInfo(p.Value, Path.GetDirectoryName(fileName))));
     }
 }
示例#29
0
 public static BuildMessage LoadBuildMessage(string file)
 {
     if (string.IsNullOrEmpty(file))
     {
         return(null);
     }
     using (var reader = new StreamReader(file))
     {
         var bm      = new BuildMessage();
         var content = JsonUtility.Deserialize <Dictionary <BuildPhase, string> >(reader);
         foreach (var c in content)
         {
             using (var sr = new StreamReader(Path.Combine(Path.GetDirectoryName(file), c.Value)))
             {
                 bm[c.Key] = BuildMessageInfo.Load(sr);
             }
         }
         return(bm);
     }
 }
        private Maybe <AgentCompled> OnBuild(Maybe <PreparedBuild> mayBuild)
        {
            var agentName = Context.Self.Path.Name + ": ";

            return(MatchMay(
                       from build in mayBuild
                       select Try(() =>
                                  from step1 in MayTell(Context.Sender, BuildMessage.GatherData(build.Operation, agentName))
                                  from data in GetData(build)

                                  from step2 in MayTell(Context.Sender, BuildMessage.GenerateLangFiles(build.Operation, agentName))
                                  from a in GenerateJson(data, build.TargetPath)

                                  from step3 in MayTell(Context.Sender, BuildMessage.GenerateCsFiles(build.Operation, agentName))
                                  from b in GenerateCode(data, build.TargetPath)

                                  from final in MayTell(Context.Sender, BuildMessage.AgentCompled(build.Operation, agentName))
                                  select new AgentCompled(false, Maybe <Exception> .Nothing, build.Operation)),
                       e => May(new AgentCompled(true, May(e), mayBuild.Value.Operation))));
        }
示例#31
0
        public void CreateBuilding(Position pos, short buildingId, int creatorID)
        {
            BuildingData bd = GlobalSettings.Wrapper.buildingsMap[buildingId];

            if (!Building.CheckBuildPosition(bd, pos, _sim.Map, CurrentPlayer.Id))
            {
                if (OnBadLocation != null)
                {
                    OnBadLocation(creatorID);
                }
                return;
            }

            BuildMessage bm = (BuildMessage)Yad.Net.Client.Utils.CreateMessageWithSenderId(MessageType.Build);

            //bm.BuildingID = CurrentPlayer.GenerateObjectID();//don't set object id here! it's not reflected in other simulations
            bm.IdPlayer     = CurrentPlayer.Id;
            bm.BuildingType = buildingId;
            bm.CreatorID    = creatorID;
            bm.Type         = MessageType.Build;
            bm.Position     = pos;
            Connection.Instance.SendMessage(bm);

            // building is not built yet
            //IncreaseBuildingCounter(buildingId);

            //TODO: need help - what is this for?

            /*
             * AddUnitCreation(bm.BuildingType);
             *
             * foreach (TechnologyDependence techRef in sim.GameSettingsWrapper.racesMap[currPlayer.Race].TechnologyDependences) {
             *      short ids = sim.GameSettingsWrapper.namesToIds[techRef.BuildingName];
             *      if (gf.IsStripContainingBuilding(ids) == true) continue;
             *      if (CheckReqBuildingsToAddNewBuilding(techRef.RequiredBuildings)) {
             *              // adds new building to strip
             *              OnNewBuilding(ids, currPlayer.Race);
             *      }
             * }
             */
        }
示例#32
0
 private BuildMessage parseMessage(string type)
 {
     var message = new BuildMessage();
     try
     {
         message.File = Path.Combine(_currentProjectPath, _line.Substring(0, _line.IndexOf('(')).Trim());
         var position = _line.Substring(_line.IndexOf('(') + 1, _line.IndexOf(')') - (_line.IndexOf('(') + 1)).Split(',');
         message.LineNumber = int.Parse(position[0]);
         message.LinePosition = int.Parse(position[1]);
         message.ErrorMessage = _line.Substring(_line.IndexOf(type) + type.Length,
                                                _line.Length - (_line.IndexOf(type) + type.Length)).Trim();
     }
     catch (Exception)
     {
         message.File = "Unknown";
         message.LineNumber = 0;
         message.LinePosition = 0;
         message.ErrorMessage = _line;
     }
     return message;
 }
示例#33
0
        private bool CopyLauncherToOutputDirectory(string strOutputExe)
        {
            if (!FileSystems.Default.FileExists(LauncherPath))
            {
                _results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Error, "GenerateLauncher.MissingLauncherExe", LauncherPath));
                return(false);
            }

            try
            {
                EnsureFolderExists(Path.GetDirectoryName(strOutputExe));
                File.Copy(LauncherPath, strOutputExe, true);
                ClearReadOnlyAttribute(strOutputExe);
            }
            catch (Exception ex) when(ExceptionHandling.IsIoRelatedException(ex))
            {
                _results.AddMessage(BuildMessage.CreateMessage(BuildMessageSeverity.Error, "GenerateLauncher.CopyError", LauncherPath, strOutputExe, ex.Message));
                return(false);
            }

            return(true);
        }
示例#34
0
        private static void WriteXmlBuildMessage(XmlWriter xmlWriter, BuildMessage message)
        {
            if (message.Type == MessageType.Error)
            {
                xmlWriter.WriteStartElement("error");
            }
            else
            {
                xmlWriter.WriteStartElement("warning");
            }

            xmlWriter.WriteAttributeString("message", message.Description);
            xmlWriter.WriteAttributeString("code", message.Code);  // may be null or empty

            if (message.Line > 0 || !string.IsNullOrEmpty(message.File))
            {
                xmlWriter.WriteAttributeString("name", message.File);
                xmlWriter.WriteAttributeString("line", message.Line.ToString());
            }

            xmlWriter.WriteEndElement();
        }
 /// <remarks/>
 public void BeginBuildAsync(BuildMessage message) {
     this.BeginBuildAsync(message, null);
 }
 /// <remarks/>
 public System.IAsyncResult BeginBeginBuild(BuildMessage message, System.AsyncCallback callback, object asyncState) {
     return this.BeginInvoke("BeginBuild", new object[] {
                 message}, callback, asyncState);
 }
 private void mergeBuildList(Dictionary<int, BuildItem> list, string key, BuildMessage[] results)
 {
     var itemsToRemove = new List<int>();
     var buildResults = new Dictionary<int, BuildItem>();
     results.ToList().ForEach(x =>
                                  {
                                      var resultItem = new BuildItem(key, x);
                                      buildResults.Add(resultItem.GetHashCode(), resultItem);
                                  });
     foreach (var item in list)
     {
         if (item.Value.Key.Equals(key) && !buildResults.ContainsKey(item.Key))
         {
             //Debug.WriteDebug("Removing old build item from {0} in {1}, {2} {3}:{4}", item.Value.Key, item.Value.Value.File, item.Value.Value.ErrorMessage, item.Value.Value.LineNumber, item.Value.Value.LinePosition);
             itemsToRemove.Add(item.Key);
         }
     }
     foreach (var item in itemsToRemove)
         list.Remove(item);
     foreach (var item in buildResults)
     {
         if (!list.ContainsKey(item.Key))
         {
             //Debug.WriteDebug("Adding new build item from {0} in {1}, {2} {3}:{4}", item.Value.Key, item.Value.Value.File, item.Value.Value.ErrorMessage, item.Value.Value.LineNumber, item.Value.Value.LinePosition);
             //list.Insert(0, item);
             list.Add(item.Key, item.Value);
         }
     }
 }
        private void updateMessage(BuildMessage x)
        {
            foreach (var file in _files.Files)
            {
                if (compare(file.Tempfile, x.File))
                    x.UpdateFile(file.Original);
                x.ErrorMessage = x.ErrorMessage.Replace(file.Tempfile, file.Original);
            }

        }
示例#39
0
 internal void Load(string baseDir)
 {
     Dependency = IncrementalUtility.LoadDependency(Path.Combine(baseDir, DependencyFile));
     Attributes = IncrementalUtility.LoadIntermediateFile<IDictionary<string, FileAttributeItem>>(Path.Combine(baseDir, AttributesFile));
     BuildOutputs = IncrementalUtility.LoadIntermediateFile<BuildOutputs>(Path.Combine(baseDir, OutputFile));
     Manifest = IncrementalUtility.LoadIntermediateFile<IEnumerable<ManifestItem>>(Path.Combine(baseDir, ManifestFile));
     XRefSpecMap = IncrementalUtility.LoadIntermediateFile<IDictionary<string, IEnumerable<XRefSpec>>>(Path.Combine(baseDir, XRefSpecMapFile));
     FileMap = IncrementalUtility.LoadIntermediateFile<IDictionary<string, string>>(Path.Combine(baseDir, FileMapFile));
     BuildMessage = IncrementalUtility.LoadBuildMessage(Path.Combine(baseDir, BuildMessageFile));
     foreach (var processor in Processors)
     {
         processor.Load(baseDir);
     }
 }
示例#40
0
文件: BuildForm.cs 项目: adbre/cab42
        /// <summary>
        /// Binds a build message to the specified listview item.
        /// </summary>
        /// <param name="lvi">The ListViewItem</param>
        /// <param name="info">The BuildMessage</param>
        private void Bind(ListViewItem lvi, BuildMessage info)
        {
            lvi.Tag = info;

            int index = 0;
            this.BindValue(lvi, index++, info.Description);
            this.BindValue(lvi, index++, info.Configuration);
        }
示例#41
0
文件: BuildForm.cs 项目: adbre/cab42
        /// <summary>
        /// Adds a build message to the listview.
        /// </summary>
        /// <param name="info">The build message to add</param>
        private void Bind(BuildMessage info)
        {
            var lvi = new ListViewItem();

            this.Bind(lvi, info);

            this.listView1.Items.Add(lvi);
        }
 /// <remarks/>
 public void BeginBuildAsync(BuildMessage message, object userState) {
     if ((this.BeginBuildOperationCompleted == null)) {
         this.BeginBuildOperationCompleted = new System.Threading.SendOrPostCallback(this.OnBeginBuildOperationCompleted);
     }
     this.InvokeAsync("BeginBuild", new object[] {
                 message}, this.BeginBuildOperationCompleted, userState);
 }
示例#43
0
 private void mergeBuildList(List<BuildItem> list, string key, BuildMessage[] results)
 {
     var itemsToRemove = new List<BuildItem>();
     foreach (var item in list)
     {
         var found = false;
         foreach (var message in results)
         {
             var resultItem = new BuildItem(key, message);
             if (resultItem.Equals(item))
             {
                 found = true;
                 break;
             }
         }
         if (!found && item.Key.Equals(key))
         {
             Debug.WriteDebug("Removing old build item from {0} in {1}, {2} {3}:{4}", item.Key, item.Value.File, item.Value.ErrorMessage, item.Value.LineNumber, item.Value.LinePosition);
             itemsToRemove.Add(item);
         }
     }
     foreach (var item in itemsToRemove)
         list.Remove(item);
     foreach (var message in results)
     {
         var item = new BuildItem(key, message);
         if (!list.Contains(item))
         {
             Debug.WriteDebug("Adding new build item from {0} in {1}, {2} {3}:{4}", item.Key, item.Value.File, item.Value.ErrorMessage, item.Value.LineNumber, item.Value.LinePosition);
             list.Insert(0, item);
         }
     }
 }
示例#44
0
 public BuildItem(string key, BuildMessage value)
 {
     Key = key;
     Value = value;
 }