Пример #1
0
        public IEnumerable <Symbol> Paste(string text)
        {
            CircuitProject paste = null;

            try {
                paste = CircuitProject.CreateAndClose(XmlHelper.CreateReader(new StringReader(text)));
            } catch (XmlException xmlException) {
                throw new CircuitException(Cause.CorruptedFile, xmlException, Properties.Resources.ErrorClipboardCorrupted);
            }

            List <Symbol> result = new List <Symbol>();

            this.InTransaction(() => {
                LogicalCircuit target = this.ProjectSet.Project.LogicalCircuit;
                foreach (CircuitSymbol symbol in paste.ProjectSet.Project.LogicalCircuit.CircuitSymbols())
                {
                    result.Add(symbol.CopyTo(target));
                }
                foreach (Wire wire in paste.ProjectSet.Project.LogicalCircuit.Wires())
                {
                    result.Add(wire.CopyTo(target));
                }
                foreach (TextNote symbol in paste.ProjectSet.Project.LogicalCircuit.TextNotes())
                {
                    if (symbol.IsValid)
                    {
                        result.Add(symbol.CopyTo(target));
                    }
                }

                if (0 < result.Count)
                {
                    while (this.NeedToShift(result))
                    {
                        foreach (Symbol symbol in result)
                        {
                            symbol.Shift(2, 2);
                        }
                    }
                }
            });
            return(result);
        }
Пример #2
0
 public static CircuitProject Create(string file)
 {
     try {
         XmlReader xmlReader = XmlHelper.CreateReader((file != null ?
                                                       (TextReader) new StreamReader(file) :
                                                       (TextReader) new StringReader(
                                                           string.Format(CultureInfo.InvariantCulture, Schema.Empty,
                                                                         Guid.NewGuid(), //ProjectId
                                                                         Properties.Resources.CircuitProjectName,
                                                                         Guid.NewGuid(), //LogicalCircuitId
                                                                         Properties.Resources.LogicalCircuitMainName,
                                                                         Properties.Resources.LogicalCircuitMainNotation
                                                                         )
                                                           )
                                                       ));
         return(CircuitProject.CreateAndClose(xmlReader));
     } catch (XmlException xmlException) {
         throw new CircuitException(Cause.CorruptedFile, xmlException, Properties.Resources.ErrorFileCorrupted(file));
     }
 }