Example #1
0
        public static List <ShipHull> GetShipHulls(string keelDesignator)
        {
            using (CodeFighterContext db = new CodeFighterContext())
            {
                List <ShipHull> result = new List <ShipHull>();

                IQueryable <ShipHullData> hullData = db.ShipHullData
                                                     .Include("PartCounts").Include("PartCounts.PartCountData");
                if (!string.IsNullOrEmpty(keelDesignator))
                {
                    hullData = hullData.Where(x => x.HullSize.Equals(keelDesignator));
                }
                foreach (ShipHullData shd in hullData)
                {
                    ShipHull hull = new ShipHull();
                    hull.Id             = shd.Id;
                    hull.ClassName      = shd.ClassName;
                    hull.Hitpoints      = new StatWithMax(shd.MaxHitPoints);
                    hull.Size           = Keel.ByDesignator(shd.HullSize);
                    hull.MaxParts       = Convert.ToInt32(Math.Round(hull.Size.MaxAddedMass / hull.Size.Classification.PartWeight));
                    hull.MaxPartsByType = new List <PartCount>();
                    foreach (ShipHullPartCountData shpcd in shd.PartCounts)
                    {
                        PartCount pc = new PartCount();
                        pc.PartType        = Type.GetType(shpcd.PartCountData.PartType);
                        pc.ActionMechanism = shpcd.PartCountData.ActionMechanism;
                        pc.CountOfParts    = shpcd.PartCountData.CountOfParts;
                        hull.MaxPartsByType.Add(pc);
                    }
                    result.Add(hull);
                }

                return(result);
            }
        }
Example #2
0
        /// <summary>
        /// Serializes the data of this instance and writes it into the specified <paramref name="stream" />.
        /// </summary>
        /// <param name="stream">The stream.</param>
        /// <param name="upgradeVersionNumber">if set to <c>true</c>, the version number is adjusted to match the current version.</param>
        public void WriteTo(Stream stream, bool upgradeVersionNumber)
        {
            if (upgradeVersionNumber)
            {
                FileVersion = MeshModel.MeshModelFileVersion;
            }

            var settings = new XmlWriterSettings
            {
                Indent      = false,
                Encoding    = System.Text.Encoding.UTF8,
                CloseOutput = false
            };

            using (var writer = XmlWriter.Create(stream, settings))
            {
                writer.WriteStartDocument(true);
                writer.WriteStartElement("MeshModelMetadata");

                writer.WriteElementString("FileVersion", FileVersion.ToString());
                writer.WriteElementString("SourceFormat", SourceFormat);
                writer.WriteElementString("Guid", Guid.ToString("N", System.Globalization.CultureInfo.InvariantCulture));
                writer.WriteElementString("TriangulationHash", TriangulationHash.ToString("N", System.Globalization.CultureInfo.InvariantCulture));
                writer.WriteElementString("Name", Name);
                writer.WriteElementString("PartCount", PartCount.ToString(System.Globalization.CultureInfo.InvariantCulture));

                if (Layer != null && Layer.Length > 0)
                {
                    writer.WriteStartElement("Layer");
                    foreach (var layer in Layer)
                    {
                        writer.WriteElementString("string", layer);
                    }
                    writer.WriteEndElement();
                }
                if (SourceModels != null && SourceModels.Length > 0)
                {
                    writer.WriteStartElement("SourceModels");
                    foreach (var layer in SourceModels)
                    {
                        writer.WriteElementString("Model", layer);
                    }
                    writer.WriteEndElement();
                }
                if (MeshValueEntries != null && MeshValueEntries.Length > 0)
                {
                    WriteMeshValueEntries(writer);
                }
                writer.WriteEndElement();
                writer.WriteEndDocument();
            }
        }
Example #3
0
        public void WriteXml(System.Xml.XmlWriter writer)
        {
            var s = new XmlSerializer(typeof(string));
            var b = new XmlSerializer(typeof(bool));
            var l = new XmlSerializer(typeof(List <AutoAnswer>));

            writer.WriteStartElement("TaskInfo");

            //taskid
            writer.WriteStartElement("TaskId");
            s.Serialize(writer, TaskId.ToString());
            writer.WriteEndElement();

            //pluginname
            writer.WriteStartElement("PluginName");
            s.Serialize(writer, PluginName);
            writer.WriteEndElement();

            //url
            writer.WriteStartElement("Url");
            s.Serialize(writer, Url);
            writer.WriteEndElement();

            //title
            writer.WriteStartElement("Title");
            s.Serialize(writer, Title);
            writer.WriteEndElement();

            //status
            writer.WriteStartElement("Status");
            DownloadStatus tmpds = Status;

            if (tmpds == DownloadStatus.正在下载 || tmpds == DownloadStatus.正在停止 || tmpds == DownloadStatus.等待开始)
            {
                tmpds = DownloadStatus.已经停止;
            }
            s.Serialize(writer, tmpds.ToString());
            writer.WriteEndElement();

            //createtime
            writer.WriteStartElement("CreateTime");
            s.Serialize(writer, CreateTime.ToString());
            writer.WriteEndElement();

            //finishtime
            if (FinishTime != null)
            {
                writer.WriteStartElement("FinishTime");
                s.Serialize(writer, FinishTime.ToString());
                writer.WriteEndElement();
            }

            //savedirectory
            writer.WriteStartElement("SaveDirectory");
            s.Serialize(writer, SaveDirectory.ToString());
            writer.WriteEndElement();

            //PartCount
            writer.WriteStartElement("PartCount");
            s.Serialize(writer, PartCount.ToString());
            writer.WriteEndElement();

            //CurrentPart
            writer.WriteStartElement("CurrentPart");
            s.Serialize(writer, CurrentPart.ToString());
            writer.WriteEndElement();

            //is be added
            writer.WriteStartElement("IsBeAdded");
            b.Serialize(writer, IsBeAdded);
            writer.WriteEndElement();

            //partialfinished
            writer.WriteStartElement("PartialFinished");
            b.Serialize(writer, PartialFinished);
            writer.WriteEndElement();

            //partialfinished detail
            writer.WriteStartElement("PartialFinishedDetail");
            s.Serialize(writer, PartialFinishedDetail);
            writer.WriteEndElement();

            //autoanswer
            writer.WriteStartElement("AutoAnswers");
            l.Serialize(writer, AutoAnswer);
            writer.WriteEndElement();

            //extract cache
            writer.WriteStartElement("ExtractCache");
            b.Serialize(writer, ExtractCache);
            writer.WriteEndElement();

            //FilePath
            writer.WriteStartElement("Files");
            foreach (string item in FilePath)
            {
                writer.WriteStartElement("File");
                s.Serialize(writer, item);
                writer.WriteEndElement();
            }
            writer.WriteEndElement();

            //SubFilePath
            writer.WriteStartElement("SubFiles");
            foreach (string item in SubFilePath)
            {
                writer.WriteStartElement("SubFile");
                s.Serialize(writer, item);
                writer.WriteEndElement();
            }
            writer.WriteEndElement();

            //DownloadType
            writer.WriteStartElement("DownloadType");
            s.Serialize(writer, DownloadTypes.ToString("D"));
            writer.WriteEndElement();

            //proxy
            XmlSerializer sProxy = new XmlSerializer(typeof(AcDownProxy));

            writer.WriteStartElement("Proxy");
            sProxy.Serialize(writer, new AcDownProxy().FromWebProxy(Proxy));
            writer.WriteEndElement();

            //source url
            writer.WriteStartElement("SourceUrl");
            s.Serialize(writer, SourceUrl);
            writer.WriteEndElement();

            //comment
            writer.WriteStartElement("Comment");
            s.Serialize(writer, Comment);
            writer.WriteEndElement();

            //hash
            writer.WriteStartElement("Hash");
            s.Serialize(writer, Hash);
            writer.WriteEndElement();

            //Progress
            writer.WriteStartElement("Progress");
            s.Serialize(writer, GetProgress().ToString());
            writer.WriteEndElement();

            //settings
            XmlSerializer sSettings = new XmlSerializer(typeof(SerializableDictionary <string, string>));

            writer.WriteStartElement("Settings");
            sSettings.Serialize(writer, Settings);
            writer.WriteEndElement();

            writer.WriteEndElement();
        }