public AssetContentFormViewModel CreateFormViewModelFor(AssetContent assetContent) { AssetContentFormViewModel viewModel = CreateFormViewModel(); viewModel.AssetContent = assetContent; return(viewModel); }
/// <summary> /// 根据一个Asset信息,下载实际的Asset内容 /// </summary> /// <param name="asset"></param> public void DownloadAsset(Asset asset, System.Action <string> cbFinish) { string fileName = null; long fileSize = 0; // 寻找文件名 if (asset.contents != null) { for (int i = 0; i < asset.contents.Length; i++) { AssetContent content = asset.contents[i]; if (content.platform == currentPlatform) { fileName = content.bundleHash; fileSize = content.bundleSize; } } } cbDownloadResourceFinish = cbFinish; if (fileName == null) { // 没找到文件,直接返回null; StorageReady(null); } else { CheckStorageFile(asset.id, fileName, fileSize, DownloadAssetFile); } }
public void WriteToFile(BinaryWriter Writer) { StringHelpers.WriteString16(Writer, CutsceneName); Writer.Write(unk05); Writer.Write(gcsSize); AssetContent.WriteToFile(Writer); if (SoundContent != null) { Writer.Write(true); // Has SPD SoundContent.WriteToFile(Writer); } // TODO: Not sure if this is fully valid or not.. if (VehicleContent != null && VehicleContent.Length > 0) { Writer.Write(VehicleContent.Length); // Num GCR foreach (GCRData VehicleData in VehicleContent) { VehicleData.WriteToFile(Writer); } } else { Writer.Write(0); } }
public ActionConfirmation Delete(int id) { AssetContent assetContentToDelete = assetContentRepository.Get(id); if (assetContentToDelete != null) { assetContentRepository.Delete(assetContentToDelete); try { assetContentRepository.DbContext.CommitChanges(); return(ActionConfirmation.CreateSuccessConfirmation( "The assetContent was successfully deleted.")); } catch { assetContentRepository.DbContext.RollbackTransaction(); return(ActionConfirmation.CreateFailureConfirmation( "A problem was encountered preventing the assetContent from being deleted. " + "Another item likely depends on this assetContent.")); } } else { return(ActionConfirmation.CreateFailureConfirmation( "The assetContent could not be found for deletion. It may already have been deleted.")); } }
public void CanCompareAssetContents() { AssetContent instance = new AssetContent(); EntityIdSetter.SetIdOf <int>(instance, 1); AssetContent instanceToCompareTo = new AssetContent(); EntityIdSetter.SetIdOf <int>(instanceToCompareTo, 1); instance.ShouldEqual(instanceToCompareTo); }
public void CannotSaveOrUpdateInvalidAssetContent() { // Establish Context AssetContent invalidAssetContent = new AssetContent(); // Act ActionConfirmation confirmation = assetContentManagementService.SaveOrUpdate(invalidAssetContent); // Assert confirmation.ShouldNotBeNull(); confirmation.WasSuccessful.ShouldBeFalse(); confirmation.Value.ShouldBeNull(); }
public void WriteToFile(BinaryWriter Writer) { StringHelpers.WriteString16(Writer, CutsceneName); Writer.Write(unk05); Writer.Write(gcsSize); AssetContent.WriteToFile(Writer); if (SoundContent != null) { Writer.Write(true); // Has SPD SoundContent.WriteToFile(Writer); } Writer.Write(0); // Num GCR }
public void CanSaveOrUpdateValidAssetContent() { // Establish Context AssetContent validAssetContent = AssetContentInstanceFactory.CreateValidTransientAssetContent(); // Act ActionConfirmation confirmation = assetContentManagementService.SaveOrUpdate(validAssetContent); // Assert confirmation.ShouldNotBeNull(); confirmation.WasSuccessful.ShouldBeTrue(); confirmation.Value.ShouldNotBeNull(); confirmation.Value.ShouldEqual(validAssetContent); }
private async void QueryAssetHash(Dictionary <string, StorageManager.DownloadAssetInfo> infoList, System.Action <Dictionary <string, StorageManager.DownloadAssetInfo> > OnQueryFinish) { // 先连接server,检查所有Asset对应当前平台的文件Hash,并回填数据 string[] assetIds = new string[infoList.Count]; int index = 0; foreach (DownloadAssetInfo info in infoList.Values) { assetIds[index] = info.id; index++; } try { List <Asset> queryRs = await assetAPI.ListAssetsByIds(assetIds, currentPlatform); Debug.Log("Query find [" + queryRs.Count + "] assets!"); for (int i = 0; i < queryRs.Count; i++) { Asset asset = queryRs[i]; if (infoList.ContainsKey(asset.id)) { for (int j = 0; j < asset.contents.Length; j++) { AssetContent content = asset.contents[j]; if (content.platform == currentPlatform) { DownloadAssetInfo info = infoList[asset.id]; info.hash = content.bundleHash; Debug.Log("Fill Hash for asset [" + asset.id + "]"); } } } } } catch (System.Exception e) { Debug.LogError(e); err = e.ToString(); } MEHoloEntrance.Instance.Dispatch((param) => { if (OnQueryFinish != null) { OnQueryFinish(infoList); } }); }
public void CanCreateValidAssetContentFromForm() { // Establish Context AssetContent assetContentFromForm = new AssetContent(); assetContentManagementService.Expect(r => r.SaveOrUpdate(assetContentFromForm)) .Return(ActionConfirmation.CreateSuccessConfirmation("saved")); // Act RedirectToRouteResult redirectResult = assetContentsController.Create(assetContentFromForm) .AssertActionRedirect().ToAction("Index"); // Assert assetContentsController.TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()].ToString() .ShouldEqual("saved"); }
public void CanGetAssetContent() { // Establish Context AssetContent assetContentToExpect = AssetContentInstanceFactory.CreateValidTransientAssetContent(); assetContentRepository.Expect(r => r.Get(1)) .Return(assetContentToExpect); // Act AssetContent assetContentRetrieved = assetContentManagementService.Get(1); // Assert assetContentRetrieved.ShouldNotBeNull(); assetContentRetrieved.ShouldEqual(assetContentToExpect); }
public void CanDeleteAssetContent() { // Establish Context AssetContent assetContentToDelete = new AssetContent(); assetContentRepository.Expect(r => r.Get(1)) .Return(assetContentToDelete); // Act ActionConfirmation confirmation = assetContentManagementService.Delete(1); // Assert confirmation.ShouldNotBeNull(); confirmation.WasSuccessful.ShouldBeTrue(); confirmation.Value.ShouldBeNull(); }
public void CanShowAssetContent() { // Establish Context AssetContent assetContent = AssetContentInstanceFactory.CreateValidTransientAssetContent(); assetContentManagementService.Expect(r => r.Get(1)) .Return(assetContent); // Act ViewResult result = assetContentsController.Show(1).AssertViewRendered(); // Assert result.ViewData.Model.ShouldNotBeNull(); (result.ViewData.Model as AssetContent).ShouldNotBeNull(); (result.ViewData.Model as AssetContent).ShouldEqual(assetContent); }
public string GetFileNameFromAsset(Asset asset) { string fileName = null; if (asset.contents != null) { for (int i = 0; i < asset.contents.Length; i++) { AssetContent content = asset.contents[i]; if (content.platform == currentPlatform) { fileName = content.bundleHash; } } } return(fileName); }
public void CannotUpdateInvalidAssetContentFromForm() { // Establish Context AssetContent assetContentFromForm = new AssetContent(); AssetContentFormViewModel viewModelToExpect = new AssetContentFormViewModel(); assetContentManagementService.Expect(r => r.UpdateWith(assetContentFromForm, 0)) .Return(ActionConfirmation.CreateFailureConfirmation("not updated")); assetContentManagementService.Expect(r => r.CreateFormViewModelFor(assetContentFromForm)) .Return(viewModelToExpect); // Act ViewResult result = assetContentsController.Edit(assetContentFromForm).AssertViewRendered(); // Assert result.ViewData.Model.ShouldNotBeNull(); (result.ViewData.Model as AssetContentFormViewModel).ShouldNotBeNull(); }
public void CanCreateFormViewModelForAssetContent() { // Establish Context AssetContentFormViewModel viewModelToExpect = new AssetContentFormViewModel(); AssetContent assetContent = AssetContentInstanceFactory.CreateValidTransientAssetContent(); assetContentRepository.Expect(r => r.Get(1)) .Return(assetContent); // Act AssetContentFormViewModel viewModelRetrieved = assetContentManagementService.CreateFormViewModelFor(1); // Assert viewModelRetrieved.ShouldNotBeNull(); viewModelRetrieved.AssetContent.ShouldNotBeNull(); viewModelRetrieved.AssetContent.ShouldEqual(assetContent); }
public ActionConfirmation SaveOrUpdate(AssetContent assetContent) { if (assetContent.IsValid()) { assetContentRepository.SaveOrUpdate(assetContent); ActionConfirmation saveOrUpdateConfirmation = ActionConfirmation.CreateSuccessConfirmation( "The assetContent was successfully saved."); saveOrUpdateConfirmation.Value = assetContent; return(saveOrUpdateConfirmation); } else { assetContentRepository.DbContext.RollbackTransaction(); return(ActionConfirmation.CreateFailureConfirmation( "The assetContent could not be saved due to missing or invalid information.")); } }
public ActionResult Edit(AssetContent assetContent) { if (ViewData.ModelState.IsValid) { ActionConfirmation updateConfirmation = assetContentManagementService.UpdateWith(assetContent, assetContent.Id); if (updateConfirmation.WasSuccessful) { TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()] = updateConfirmation.Message; return(RedirectToAction("Index")); } } AssetContentFormViewModel viewModel = assetContentManagementService.CreateFormViewModelFor(assetContent); return(View(viewModel)); }
public void CannotUpdateWithInvalidAssetContentFromForm() { // Establish Context AssetContent invalidAssetContentFromForm = new AssetContent(); // Intentionally empty to ensure successful transfer of values AssetContent assetContentFromDb = new AssetContent(); assetContentRepository.Expect(r => r.Get(1)) .Return(assetContentFromDb); // Act ActionConfirmation confirmation = assetContentManagementService.UpdateWith(invalidAssetContentFromForm, 1); // Assert confirmation.ShouldNotBeNull(); confirmation.WasSuccessful.ShouldBeFalse(); confirmation.Value.ShouldBeNull(); }
private void TransferFormValuesTo(AssetContent assetContentToUpdate, AssetContent assetContentFromForm) { assetContentToUpdate.Name = assetContentFromForm.Name; assetContentToUpdate.Caption = assetContentFromForm.Caption; assetContentToUpdate.GUID = assetContentFromForm.GUID; assetContentToUpdate.ImageName = assetContentFromForm.ImageName; assetContentToUpdate.ImagePath = assetContentFromForm.ImagePath; assetContentToUpdate.ImagePathWinFS = assetContentFromForm.ImagePathWinFS; assetContentToUpdate.AddDate = assetContentFromForm.AddDate; assetContentToUpdate.Creator = assetContentFromForm.Creator; assetContentToUpdate.DisplayDuration = assetContentFromForm.DisplayDuration; assetContentToUpdate.EditDate = assetContentFromForm.EditDate; assetContentToUpdate.Filename = assetContentFromForm.Filename; assetContentToUpdate.FilenameExtension = assetContentFromForm.FilenameExtension; assetContentToUpdate.FilenameNoPath = assetContentFromForm.FilenameNoPath; assetContentToUpdate.Length = assetContentFromForm.Length; assetContentToUpdate.PreviewType = assetContentFromForm.PreviewType; assetContentToUpdate.SubDir = assetContentFromForm.SubDir; assetContentToUpdate.URL = assetContentFromForm.URL; assetContentToUpdate.UserGivenDate = assetContentFromForm.UserGivenDate; }
/// <summary> /// Renders a single page using the input asset and a layout. /// </summary> /// <param name="input">The input file to render.</param> /// <param name="layout">The layout to use for the render.</param> /// <returns>The content generated.</returns> public AssetContent RenderPage(IAssetFile input, string layout) { // Create the template with the specified layout var headers = input.Meta; var content = this.GetUsings() + Environment.NewLine + "@{Layout=\"" + layout + "\";}" + Environment.NewLine + input.Content.AsString(); // Using a new scope, avoiding state sharing problems that way using (var service = new TemplateService()) { // Process the content this.ProcessContent(content, service, headers); // Parse without caching return(AssetContent.FromString( service.Parse(content, headers, null, null) )); } }
public void CanUpdateWithValidAssetContentFromForm() { // Establish Context AssetContent validAssetContentFromForm = AssetContentInstanceFactory.CreateValidTransientAssetContent(); // Intentionally empty to ensure successful transfer of values AssetContent assetContentFromDb = new AssetContent(); assetContentRepository.Expect(r => r.Get(1)) .Return(assetContentFromDb); // Act ActionConfirmation confirmation = assetContentManagementService.UpdateWith(validAssetContentFromForm, 1); // Assert confirmation.ShouldNotBeNull(); confirmation.WasSuccessful.ShouldBeTrue(); confirmation.Value.ShouldNotBeNull(); confirmation.Value.ShouldEqual(assetContentFromDb); confirmation.Value.ShouldEqual(validAssetContentFromForm); }
public void CanGetAllAssetContents() { // Establish Context IList <AssetContent> assetContentsToExpect = new List <AssetContent>(); AssetContent assetContent = AssetContentInstanceFactory.CreateValidTransientAssetContent(); assetContentsToExpect.Add(assetContent); assetContentRepository.Expect(r => r.GetAll()) .Return(assetContentsToExpect); // Act IList <AssetContent> assetContentsRetrieved = assetContentManagementService.GetAll(); // Assert assetContentsRetrieved.ShouldNotBeNull(); assetContentsRetrieved.Count.ShouldEqual(1); assetContentsRetrieved[0].ShouldNotBeNull(); assetContentsRetrieved[0].ShouldEqual(assetContent); }
public ActionConfirmation UpdateWith(AssetContent assetContentFromForm, int idOfAssetContentToUpdate) { AssetContent assetContentToUpdate = assetContentRepository.Get(idOfAssetContentToUpdate); TransferFormValuesTo(assetContentToUpdate, assetContentFromForm); if (assetContentToUpdate.IsValid()) { ActionConfirmation updateConfirmation = ActionConfirmation.CreateSuccessConfirmation( "The assetContent was successfully updated."); updateConfirmation.Value = assetContentToUpdate; return(updateConfirmation); } else { assetContentRepository.DbContext.RollbackTransaction(); return(ActionConfirmation.CreateFailureConfirmation( "The assetContent could not be saved due to missing or invalid information.")); } }
public ActionResult Create(AssetContent assetContent) { if (ViewData.ModelState.IsValid) { ActionConfirmation saveOrUpdateConfirmation = assetContentManagementService.SaveOrUpdate(assetContent); if (saveOrUpdateConfirmation.WasSuccessful) { TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()] = saveOrUpdateConfirmation.Message; return(RedirectToAction("Index")); } } else { assetContent = null; } AssetContentFormViewModel viewModel = assetContentManagementService.CreateFormViewModelFor(assetContent); return(View(viewModel)); }
public AssetContentFormViewModel CreateFormViewModelFor(int assetContentId) { AssetContent assetContent = assetContentRepository.Get(assetContentId); return(CreateFormViewModelFor(assetContent)); }
public ActionResult Show(int id) { AssetContent assetContent = assetContentManagementService.Get(id); return(View(assetContent)); }