public async Task <ActionResult> Create(/*[Bind(Include = "DosePerMaterialID,ChocoName,MaterialName,QuantityPer100gr")]*/ ChocoDoseViewModel recipe) { if (ModelState.IsValid) { var choco = new Choco(); choco.ChocoName = recipe.Choco.ChocoName; db.Chocos.Add(choco); await db.SaveChangesAsync(); foreach (DoseFormViewModel dose in recipe.DosesViewModel) { var ids = db.Materials.Where(m => m.MaterialName == dose.MaterialName).Select(m => m.MaterialID).ToList(); var ds = new DosePerMaterial(); for (int i = 0; i < 3; i++) { ds.MaterialID = ids[i]; ds.ChocoID = choco.ChocoID; ds.QuantityPer100gr = dose.QuantityPer100gr; db.DosesPerMaterials.Add(ds); await db.SaveChangesAsync(); } } return(RedirectToAction("Index")); } return(View(recipe)); }
// GET: Choco/Edit/5 public async Task <ActionResult> Edit([Bind(Include = "ChocoID")] int id) { Choco choco = await db.Chocos.FindAsync(id); if (choco == null) { return(HttpNotFound()); } var distinctmaterials = db.Materials.Select(m => m.MaterialName).Distinct().ToList(); var numberOfMaterials = distinctmaterials.Count(); DoseFormViewModel[] Doses = new DoseFormViewModel[numberOfMaterials]; for (int i = 0; i < numberOfMaterials; i++) { var myMatId = distinctmaterials[i]; var query = db.DosesPerMaterials.Where(m => (m.Material.MaterialName == myMatId) && (m.ChocoID == choco.ChocoID)).Select(m => m.QuantityPer100gr).FirstOrDefault(); var viewModel = new DoseFormViewModel(); viewModel.MaterialName = distinctmaterials[i]; viewModel.ChocoName = choco.ChocoName; viewModel.QuantityPer100gr = query; Doses[i] = viewModel; } var recipe = new ChocoDoseViewModel { Choco = choco, DosesViewModel = Doses.ToList() }; return(View(recipe)); }
// GET: Choco/Create // GET: DosePerMaterial/Create public ActionResult Create() { var choco = new Choco(); var distinctmaterials = db.Materials.Select(m => m.MaterialName).Distinct().ToList(); var numberOfMaterials = distinctmaterials.Count(); DoseFormViewModel[] Doses = new DoseFormViewModel[numberOfMaterials]; for (int i = 0; i < numberOfMaterials; i++) { var viewModel = new DoseFormViewModel(); viewModel.MaterialName = distinctmaterials[i]; viewModel.ChocoName = choco.ChocoName; viewModel.QuantityPer100gr = 1; Doses[i] = viewModel; } var recipe = new ChocoDoseViewModel { Choco = choco, DosesViewModel = Doses.ToList() }; return(View(recipe)); }
public async Task <ActionResult> DeleteConfirmed(int id) { Choco choco = await db.Chocos.FindAsync(id); db.Chocos.Remove(choco); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task GetPackagePropertyAsync_Enum() { string id = "git"; Version v = new(2, 35, 1, 2); PackageStatus actual; actual = await Choco.GetPackagePropertyAsync(id, v, "PackageStatus", s => Enum.Parse <PackageStatus>(s)); Assert.Equal(PackageStatus.Approved, actual); }
public async Task GetPackageInt64PropertyAsync() { string id = "git"; Version v = new(2, 35, 1, 2); long actual; actual = await Choco.GetPackageInt64PropertyAsync(id, v, "PackageSize"); Assert.Equal(8170L, actual); }
public async Task GetPackageInt32PropertyAsync() { string id = "git"; Version v = new(2, 35, 1, 2); int actual; // Don't assert an exact value, download counts are subject to change actual = await Choco.GetPackageInt32PropertyAsync(id, v, "DownloadCount"); actual = await Choco.GetPackageInt32PropertyAsync(id, v, "VersionDownloadCount"); }
public async Task SearchAsync_MinimumWithSpace() { var actualResult = await Choco.SearchAsync("google chrome"); Assert.Equal(30, actualResult.Count); foreach (var result in actualResult) { Assert.StartsWith("http://community.chocolatey.org/api/v2/", result.Id); Assert.NotNull(result.Title); } }
public async Task SearchAsync_MinimumWithSpace() { var actualResult = await Choco.SearchAsync("google chrome"); Assert.Equal(30, actualResult.Count); foreach (var result in actualResult) { Assert.NotNull(result.Id); Assert.NotNull(result.Title); } }
public async Task SearchAsync_Minimum1() { var actualResult = await Choco.SearchAsync("git"); Assert.Equal(30, actualResult.Count); var firstResult = actualResult[0]; Assert.Equal("git", firstResult.Id); Assert.Equal("Git", firstResult.Title); Assert.StartsWith("https://community.chocolatey.org/api/v2/package/git/", firstResult.DownloadUrl); }
public async Task Upgrade(ProgramInformation pi) { if (!pi.UpgradeAvailable) { throw new Exception("Program does not have an upgrade available"); } string[] packages = { pi.Name }; ChocoUpgradeCommand upgradeCmd = Choco.CreateUpgradeCommand(packages: packages); upgradeCmd.OnCommandRunning += Cmd_OnCommandRunning; upgradeCmd.OnCommandUpdated += Cmd_OnCommandUpdated; await upgradeCmd.Run(); }
// GET: Choco/Delete/5 public async Task <ActionResult> Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Choco choco = await db.Chocos.FindAsync(id); if (choco == null) { return(HttpNotFound()); } return(View(choco)); }
public async Task Refresh() { Clear(); ChocoListCommand refreshCmd = Choco.CreateListCommand(localOnly: true); refreshCmd.OnUpdate += Cmd_OnListUpdate; refreshCmd.OnCommandUpdated += Cmd_OnCommandUpdated; refreshCmd.OnCommandRunning += Cmd_OnCommandRunning; await refreshCmd.Run(); ChocoOutdatedCommand outdatedCmd = Choco.CreateOutdatedCommand(); outdatedCmd.OnUpdate += OutdatedCmd_OnUpdate; outdatedCmd.OnCommandUpdated += Cmd_OnCommandUpdated; outdatedCmd.OnCommandRunning += Cmd_OnCommandRunning; await outdatedCmd.Run(); }
public async Task GetPackageBooleanPropertyAsync() { string id = "git"; Version v = new(2, 35, 1, 2); bool actual; actual = await Choco.GetPackageBooleanPropertyAsync(id, v, "IsPrerelease"); Assert.False(actual); actual = await Choco.GetPackageBooleanPropertyAsync(id, v, "IsApproved"); Assert.True(actual); actual = await Choco.GetPackageBooleanPropertyAsync(id, v, "RequireLicenseAcceptance"); Assert.False(actual); }
public async Task GetPackagePropertyAsync() { string id = "git"; Version v = new(2, 35, 1, 2); string actual; actual = await Choco.GetPackagePropertyAsync(id, v, "Title"); Assert.Equal("Git", actual); actual = await Choco.GetPackagePropertyAsync(id, v, "Id"); Assert.Equal(id, actual); actual = await Choco.GetPackagePropertyAsync(id, v, "GalleryDetailsUrl"); Assert.Equal($"https://community.chocolatey.org/packages/{id}/{v}", actual); }
public async Task UpgradeAll() { List <String> packages = new List <string>(); for (int i = 0; i < this.Count; i++) { if (this[i].UpgradeAvailable) { packages.Add(this[i].Name); } } ChocoUpgradeCommand upgradeCmd = Choco.CreateUpgradeCommand(packages.ToArray <String>()); upgradeCmd.OnCommandRunning += Cmd_OnCommandRunning; upgradeCmd.OnCommandUpdated += Cmd_OnCommandUpdated; await upgradeCmd.Run(); }
public async Task GetPackageDatePropertyAsync() { string id = "git"; Version v = new(2, 35, 1, 2); DateTimeOffset actual; actual = await Choco.GetPackageDatePropertyAsync(id, v, "Created"); Assert.Equal(DateTimeOffset.Parse("2022-02-01T18:09:34.013"), actual); actual = await Choco.GetPackageDatePropertyAsync(id, v, "Published"); Assert.Equal(DateTimeOffset.Parse("2022-02-01T18:09:34.013"), actual); actual = await Choco.GetPackageDatePropertyAsync(id, v, "PackageReviewedDate"); Assert.Equal(DateTimeOffset.Parse("2022-02-02T01:46:13.997"), actual); }
public async Task SearchAsync_Minimum2Pages() { string query = "python"; int pageSize = 10; var results1 = await Choco.SearchAsync(query, top : pageSize, skip : 0); Assert.Equal(pageSize, results1.Count); foreach (var result in results1) { Assert.StartsWith("http://community.chocolatey.org/api/v2/", result.Id); Assert.NotNull(result.Title); } var results2 = await Choco.SearchAsync(query, top : pageSize, skip : pageSize); Assert.Equal(pageSize, results2.Count); foreach (var result in results2) { Assert.StartsWith("http://community.chocolatey.org/api/v2/", result.Id); Assert.NotNull(result.Title); Assert.DoesNotContain(results1, r1 => r1.Id == result.Id); } }
// GET: Choco/Details/5 public async Task <ActionResult> Details(int id) { //if (id == null) //{ // return new HttpStatusCodeResult(HttpStatusCode.BadRequest); //} Choco choco = await db.Chocos.FindAsync(id); if (choco == null) { return(HttpNotFound()); } var dosesPerMaterials = db.DosesPerMaterials.Include(d => d.Choco).Include(d => d.Material).ToList(); var distinct = db.DosesPerMaterials.Where(m => m.ChocoID == id).Select(m => m.Material.MaterialName).Distinct().ToList(); var doselist = new List <DoseFormViewModel>(); for (int i = 0; i < distinct.Count(); i++) { var myDist = distinct[i]; DoseFormViewModel dose = new DoseFormViewModel { ChocoName = choco.ChocoName, MaterialName = myDist, QuantityPer100gr = db.DosesPerMaterials.First(c => c.Material.MaterialName == myDist && c.ChocoID == id).QuantityPer100gr }; doselist.Add(dose); } var ChocoDoses = new ChocoDoseViewModel { Choco = choco, DosesViewModel = doselist }; return(View(ChocoDoses)); }