Esempio n. 1
0
        public async Task <ActionResult> Edit(/*[Bind(Include = "ChocoID")]*/ ChocoDoseViewModel recipe)
        {
            if (ModelState.IsValid)
            {
                //var oldChocoName = db.Chocos.Where(c => c.ChocoID == recipe.Choco.ChocoID).Select(c => c.ChocoName).ToString();
                //var oldRecipeList = db.DosesPerMaterials.Where(d => d.ChocoID == oldChoco);

                var choco = recipe.Choco;

                db.Entry(choco).State = EntityState.Modified;
                //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.Entry(ds).State  = EntityState.Modified;
                        await db.SaveChangesAsync();
                    }
                }
                return(RedirectToAction("Index"));
            }
            return(View(recipe));
        }
Esempio n. 2
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));
        }
        // GET: DosePerMaterial
        public ActionResult Index()
        {
            var dosesPerMaterials = db.DosesPerMaterials.Include(d => d.Choco).Include(d => d.Material).ToList();

            var distinct = db.DosesPerMaterials.Select(m => m.Material.MaterialName).Distinct().ToList();
            var list     = new List <DosePerMaterial>();

            for (int i = 0; i < distinct.Count(); i++)
            {
                var             myDist = distinct[i];
                DosePerMaterial dose   = new DosePerMaterial
                {
                    ChocoID          = db.DosesPerMaterials.First(c => c.Material.MaterialName == myDist).ChocoID,
                    Choco            = db.DosesPerMaterials.First(c => c.Material.MaterialName == myDist).Choco,
                    MaterialID       = db.DosesPerMaterials.First(c => c.Material.MaterialName == myDist).MaterialID,
                    Material         = db.DosesPerMaterials.First(c => c.Material.MaterialName == myDist).Material,
                    QuantityPer100gr = db.DosesPerMaterials.First(c => c.Material.MaterialName == myDist).QuantityPer100gr
                };
                list.Add(dose);
            }

            IEnumerable <DosePerMaterial> doseList = list.AsEnumerable();

            return(View(doseList));
        }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            DosePerMaterial dosePerMaterial = await db.DosesPerMaterials.FindAsync(id);

            db.DosesPerMaterials.Remove(dosePerMaterial);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> Edit([Bind(Include = "DosePerMaterialID,ChocoID,MaterialID,QuantityPer100gr")] DosePerMaterial dosePerMaterial)
        {
            if (ModelState.IsValid)
            {
                db.Entry(dosePerMaterial).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.ChocoID    = new SelectList(db.Chocos, "ChocoID", "ChocoName", dosePerMaterial.ChocoID);
            ViewBag.MaterialID = new SelectList(db.Materials, "MaterialID", "MaterialName", dosePerMaterial.MaterialID);
            return(View(dosePerMaterial));
        }
        // GET: DosePerMaterial/Delete/5
        public async Task <ActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DosePerMaterial dosePerMaterial = await db.DosesPerMaterials.FindAsync(id);

            if (dosePerMaterial == null)
            {
                return(HttpNotFound());
            }
            return(View(dosePerMaterial));
        }
        //// GET: DosePerMaterial/Details/5
        //public async Task<ActionResult> Details(int? id)
        //{
        //    if (id == null)
        //    {
        //        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        //    }
        //    DoseFormViewModel viewModel = await db.DosesPerMaterials.FindAsync(id);
        //    if (dosePerMaterial == null)
        //    {
        //        return HttpNotFound();
        //    }
        //    return View(dosePerMaterial);
        //}

        // GET: DosePerMaterial/Create
        //    public ActionResult Create(int chocoID)
        //    {

        //        var distinctmaterials = db.Materials.Select(m => m.MaterialName).Distinct().ToList();
        //        var numberOfMaterials = distinctmaterials.Count();
        //        DoseFormViewModel[] DoseperMat = new DoseFormViewModel[numberOfMaterials];

        //        for (int i = 0; i < numberOfMaterials; i++)
        //        {
        //            var viewModel = new DoseFormViewModel();
        //            viewModel.MaterialName = distinctmaterials[i];
        //            viewModel.ChocoID = chocoID;
        //            viewModel.QuantityPer100gr = 1;

        //            DoseperMat[i] = viewModel;
        //        }

        //        var recipe = DoseperMat.AsEnumerable();

        //        return View(recipe);
        //    }
        //    //ViewBag.ChocoID = new SelectList(db.Chocos, "ChocoID", "ChocoName");

        //    //var query = db.Materials.Select(m => m.MaterialName).Distinct().ToList();

        //    //ViewBag.MaterialName = new SelectList(query);

        //    //return View();
        //}

        //    // POST: DosePerMaterial/Create
        //    // To protect from overposting attacks, please enable the specific properties you want to bind to, for
        //    // more details see https://go.microsoft.com/fwlink/?LinkId=317598.
        //    [HttpPost]
        //    [ValidateAntiForgeryToken]
        //    public async Task<ActionResult> Create([Bind(Include = "DosePerMaterialID,ChocoName,MaterialName,QuantityPer100gr")] DoseFormViewModel viewModel)
        //    {


        //        if (ModelState.IsValid)
        //        {

        //            var ids = db.Materials.Where(m => m.MaterialName == viewModel.MaterialName).Select(m => m.MaterialID).ToList();
        //            var dose = new DosePerMaterial();


        //            for (int i = 0; i < 3; i++)
        //            {
        //                dose.MaterialID = ids[i];
        //                dose.QuantityPer100gr = viewModel.QuantityPer100gr;
        //                dose.ChocoID = viewModel.ChocoID;

        //                db.DosesPerMaterials.Add(dose);
        //                await db.SaveChangesAsync();
        //            }

        //            return RedirectToAction("Index");
        //        }

        //        ViewBag.ChocoID = new SelectList(db.Chocos, "ChocoID", "ChocoName", viewModel.ChocoID);
        //        //ViewBag.MaterialID = new SelectList(db.Materials, "MaterialID", "MaterialName", viewModel.MaterialID);
        //        var query = db.Materials.Select(m => m.MaterialName).Distinct().ToList();
        //        ViewBag.MaterialName = new SelectList(query);
        //        return View(viewModel);
        //    }

        // GET: DosePerMaterial/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DosePerMaterial dosePerMaterial = await db.DosesPerMaterials.FindAsync(id);

            if (dosePerMaterial == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ChocoID    = new SelectList(db.Chocos, "ChocoID", "ChocoName", dosePerMaterial.ChocoID);
            ViewBag.MaterialID = new SelectList(db.Materials, "MaterialID", "MaterialName", dosePerMaterial.MaterialID);
            return(View(dosePerMaterial));
        }