Exemplo n.º 1
0
        /// <summary>
        /// News up an entity with its backing data and where to spawn it into
        /// </summary>
        /// <param name="backingStore">the backing data</param>
        /// <param name="spawnTo">where to spawn this into</param>
        public Inanimate(IInanimateData backingStore, IContains spawnTo)
        {
            Contents      = new EntityContainer <IInanimate>(backingStore.InanimateContainers);
            Pathways      = new EntityContainer <IPathway>();
            MobilesInside = new EntityContainer <IMobile>(backingStore.MobileContainers);

            DataTemplate = backingStore;
            SpawnNewInWorld(spawnTo);
        }
Exemplo n.º 2
0
        /// <summary>
        /// News up an entity with its backing data and where to spawn it into
        /// </summary>
        /// <param name="backingStore">the backing data</param>
        /// <param name="spawnTo">where to spawn this into</param>
        public Inanimate(IInanimateData backingStore, IContains spawnTo)
        {
            Contents = new EntityContainer<IInanimate>(backingStore.InanimateContainers);
            Pathways = new EntityContainer<IPathway>();
            MobilesInside = new EntityContainer<IMobile>(backingStore.MobileContainers);

            DataTemplateId = backingStore.ID;
            SpawnNewInWorld(spawnTo);
        }
Exemplo n.º 3
0
        /// <summary>
        /// insert this into the db
        /// </summary>
        /// <returns>the object with ID and other db fields set</returns>
        public override IData Create()
        {
            var parms = new Dictionary <string, object>();

            IInanimateData returnValue = default(IInanimateData);

            var inanimateContainersJson = JsonConvert.SerializeObject(InanimateContainers);
            var mobileContainersJson    = JsonConvert.SerializeObject(MobileContainers);

            var sql = new StringBuilder();

            sql.Append("insert into [dbo].[InanimateData]([Name], [MobileContainers], [InanimateContainers]");
            sql.Append(", [DimensionalModelLength], [DimensionalModelHeight], [DimensionalModelWidth], [DimensionalModelID], [DimensionalModelMaterialCompositions]");
            sql.Append(", [InternalComposition])");
            sql.AppendFormat(" values('{0}', '{1}', '{2}', {3}, {4}, {5}, {6}, '{7}', '{8}')"
                             , Name, mobileContainersJson, inanimateContainersJson
                             , Model.Height, Model.Length, Model.Width, Model.ModelBackingData.ID, Model.SerializeMaterialCompositions()
                             , SerializeInternalCompositions());
            sql.Append(" select * from [dbo].[InanimateData] where ID = Scope_Identity()");

            try
            {
                var ds = SqlWrapper.RunDataset(sql.ToString(), CommandType.Text, parms);

                if (ds.Rows != null)
                {
                    foreach (DataRow dr in ds.Rows)
                    {
                        Fill(dr);
                        returnValue = this;
                    }
                }
            }
            catch (Exception ex)
            {
                LoggingUtility.LogError(ex);
            }

            return(returnValue);
        }