Exemple #1
0
        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));
        }
Exemple #2
0
        // 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));
        }
Exemple #3
0
        // 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));
        }
Exemple #4
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            Choco choco = await db.Chocos.FindAsync(id);

            db.Chocos.Remove(choco);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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");
        }
Exemple #8
0
        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);
            }
        }
Exemple #9
0
        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);
            }
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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();
        }
Exemple #12
0
        // 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));
        }
Exemple #13
0
        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();
        }
Exemple #14
0
        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);
        }
Exemple #15
0
        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);
        }
Exemple #16
0
        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();
        }
Exemple #17
0
        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);
        }
Exemple #18
0
        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);
            }
        }
Exemple #19
0
        // 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));
        }