public IHttpActionResult PutAssetDef(decimal id, AssetDef assetDef) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != assetDef.ad_id) { return(BadRequest()); } db.Entry(assetDef).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!AssetDefExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public IHttpActionResult GetAssetDef(decimal id) { AssetDef assetDef = db.AssetDefs.Find(id); if (assetDef == null) { return(NotFound()); } return(Ok(assetDef)); }
public IHttpActionResult PostAssetDef(AssetDef assetDef) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.AssetDefs.Add(assetDef); db.SaveChanges(); return(CreatedAtRoute("DefaultApi", new { id = assetDef.ad_id }, assetDef)); }
//get public List <Assettype> GetAssetTypes(string name) { db.Configuration.ProxyCreationEnabled = true; AssetDef assetlist = db.AssetDefs.Where(x => x.ad_name == name).FirstOrDefault(); List <Assettype> atlist = new List <Assettype>(); if (assetlist != null) { atlist = db.Assettypes.Where(x => x.at_id == assetlist.ad_type_id).ToList(); } return(atlist); }
public IHttpActionResult DeleteAssetDef(decimal id) { AssetDef assetDef = db.AssetDefs.Find(id); if (assetDef == null) { return(NotFound()); } db.AssetDefs.Remove(assetDef); db.SaveChanges(); return(Ok(assetDef)); }
private AssetViewModel CreateAssetViewModel(AssetDef assetDef) { return(new AssetViewModel { Definition = AssetDefinitionViewModel.Create(assetDef), Built = assetRepository.HasAsset(currentUserContext.PlayerId, assetDef.Id), Prerequisites = string.Join(", ", gameDef.GetAssetNames(assetDef.Prerequisites)), PrerequisitesMet = assetRepository.PrerequisitesMet(currentUserContext.PlayerId, assetDef), Cost = CostViewModel.Create(assetDef.Cost), CanAfford = resourceRepository.CanAfford(currentUserContext.PlayerId, assetDef.Cost), AlreadyQueued = assetRepository.IsBuildQueued(currentUserContext.PlayerId, assetDef.Id), TicksLeftForBuild = assetRepository.TicksLeft(currentUserContext.PlayerId, assetDef.Id), AvailableUnits = gameDef.GetUnitsForAsset(assetDef.Id) .Select(x => UnitDefinitionViewModel.Create(x, unitRepository.PrerequisitesMet(currentUserContext.PlayerId, x))).ToList() }); }
public bool PrerequisitesMet(PlayerId playerId, AssetDef assetDef) { if (assetDef.PlayerTypeRestriction != playerRepository.GetPlayerType(playerId)) { return(false); } foreach (var prereq in assetDef.Prerequisites) { if (!HasAsset(playerId, prereq)) { return(false); } } return(true); }
public int PostAssetDef(AssetDef assetDef) { /* db.AssetDefs.Add(assetDef); * db.SaveChanges(); * * return CreatedAtRoute("DefaultApi", new { id = assetDef.ad_id }, assetDef);*/ AssetDef asset = new AssetDef(); asset = db.AssetDefs.Where(x => x.ad_name == assetDef.ad_name && x.ad_type_id == assetDef.ad_type_id && x.ad_class == assetDef.ad_class).FirstOrDefault(); if (asset == null) { db.AssetDefs.Add(assetDef); db.SaveChanges(); return(0); } else { return(1); } }
public void Visit(AssetDef assetDef, object[] args) { throw new NotImplementedException(); }
public override void Visit(AssetDef assetDef, object[] args) { checkLocation = assetDef.Location; assetDef.AssetData.CheckReference(this); base.Visit(assetDef, args); }
public void Visit(AssetDef assetDef, object[] args) { }
/* #region IAssetVisitor Members * * /// <summary> * /// * /// </summary> * /// <param name="actorAsset"></param> * /// <param name="args">XML Node</param> * public void Visit(ActorAsset actorAsset, object[] args) * { * //FINISH: 检查资源存在性 * actorAsset.Source = currentNode.Attributes["src"].Value; * * foreach (XmlNode child in currentNode.ChildNodes) * { * switch (dic[child.Name]) * { * case "group": * actorAsset.Group = child.InnerText; * break; * * default: * continue; * } * } * * if (assetMap.ContainsKey(actorAsset.Name)) * { * kernel.IssueError(ErrorType.DuplicatedAsset, new Location(currentFile), * actorAsset.Name, "Actor"); * return; * } * * assetMap.Add(actorAsset.Name, actorAsset); * } * * public void Visit(CGAsset cgAsset, object[] args) * { * //FINISH: 检查资源存在性 * cgAsset.Source = currentNode.Attributes["src"].Value; * * foreach (XmlNode child in currentNode.ChildNodes) * { * switch (dic[child.Name]) * { * case "group": * cgAsset.Group = child.InnerText; * break; * * default: * continue; * } * } * * if (assetMap.ContainsKey(cgAsset.Name)) * { * kernel.IssueError(ErrorType.DuplicatedAsset, new Location(currentFile), * cgAsset.Name, "CG"); * return; * } * * assetMap.Add(cgAsset.Name, cgAsset); * } * * public void Visit(MusicAsset musicAsset, object[] args) * { * //TODO: 检查资源存在性 * musicAsset.Source = currentNode.Attributes["src"].Value; * * foreach (XmlNode child in currentNode.ChildNodes) * { * switch (dic[child.Name]) * { * case "group": * musicAsset.Group = child.InnerText; * break; * * case "title": * musicAsset.Title = child.InnerText; * break; * * case "artist": * musicAsset.Artist = child.InnerText; * break; * * case "lyricsBy": * musicAsset.LyricsBy = child.InnerText; * break; * * case "musicBy": * musicAsset.MusicBy = child.InnerText; * break; * * case "description": * musicAsset.Description = child.InnerText; * break; * * case "lyrics": * musicAsset.Lyrics = child.InnerText; * break; * * case "lrc": * musicAsset.LRC = child.InnerText; * //TODO: 检查和解析LRC * break; * * default: * continue; * } * } * * if (assetMap.ContainsKey(musicAsset.Name)) * { * kernel.IssueError(ErrorType.DuplicatedAsset, new Location(currentFile), * musicAsset.Name, "Music"); * return; * } * * assetMap.Add(musicAsset.Name, musicAsset); * } * * public void Visit(VideoAsset videoAsset, object[] args) * { * //TODO: 检查资源存在性 * videoAsset.Source = currentNode.Attributes["src"].Value; * * if (assetMap.ContainsKey(videoAsset.Name)) * { * kernel.IssueError(ErrorType.DuplicatedAsset, new Location(currentFile), * videoAsset.Name, "Video"); * return; * } * * assetMap.Add(videoAsset.Name, videoAsset); * } * #endregion */ public void Build(string[] assetFiles, FireMLRoot root) { assetMap = root.AssetMap; foreach (string file in assetFiles) { currentFile = file; xmlError = false; XmlDocument doc = new XmlDocument(); doc.Schemas = kernel.FireMLSchemaSet; try { doc.Load(file); } catch (Exception e) { kernel.IssueError(ErrorType.ReadFileError, new Location(file), e.Message); continue; } doc.Validate(new System.Xml.Schema.ValidationEventHandler(settings_ValidationEventHandler)); if (xmlError) { continue; } XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); nsmgr.AddNamespace("fm", FireEngine.Library.FireEngineConstant.FIREML_XMLNS); foreach (XmlNode node in doc.SelectSingleNode("fm:FireMLAsset", nsmgr).ChildNodes) { AssetDef def = new AssetDef(); AssetDataBase data; switch (dic[node.Name]) { case "Actor": data = FireMLDataBase.Deserialize <ActorAsset>(node.OuterXml); break; case "CG": data = FireMLDataBase.Deserialize <CGAsset>(node.OuterXml); break; case "Music": data = FireMLDataBase.Deserialize <MusicAsset>(node.OuterXml); break; case "Video": data = FireMLDataBase.Deserialize <VideoAsset>(node.OuterXml); break; default: continue; } string name = node.Attributes["Name"].Value; def.Name = name; def.Location = new Location(file); def.AssetData = data; if (assetMap.ContainsKey(name)) { kernel.IssueError(ErrorType.DuplicatedAsset, new Location(currentFile), name, data.GetType().Name); } else { assetMap.Add(name, def); } currentNode = node; } } }