コード例 #1
0
        public void AddStatement(string statement)
        {
            try
            {
                var statementViewModel = new StatementViewModel <decimal>(statement, _variableGraph, this);

                var existing = _statements.FirstOrDefault(s => s.Id.Equals(statementViewModel.Id, StringComparison.OrdinalIgnoreCase));
                if (existing != null)
                {
                    _statements.Remove(existing);
                }

                _statements.Add(statementViewModel);
                RefreshAssociatedStatements(statementViewModel);
                ClearError();
                StatementInput = string.Empty;
            }
            catch (ParseException)
            {
                Error    = Constants.Text.InvalidStatement;
                HasError = true;
            }
            catch (CyclicVertexException)
            {
                Error    = Constants.Text.CyclicStatement;
                HasError = true;
            }
        }
コード例 #2
0
 private void RefreshAssociatedStatements(StatementViewModel <decimal> addedStatement)
 {
     if (addedStatement?.IsEvaluated == true)
     {
         foreach (var node in _variableGraph.GetLinkedNodes(addedStatement.Id).ToList())
         {
             var statement = _statements.FirstOrDefault(s => s.Id.Equals(node, StringComparison.OrdinalIgnoreCase));
             statement?.RefreshResult();
             RefreshAssociatedStatements(statement);
         }
     }
 }
コード例 #3
0
 public bool Equals(StatementViewModel <T> other)
 {
     return(this.Id?.Equals(other?.Id, StringComparison.InvariantCultureIgnoreCase) == true);
 }