Exemplo n.º 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));
        }
Exemplo n.º 2
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));
        }
Exemplo n.º 3
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));
        }
Exemplo n.º 4
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));
        }
Exemplo n.º 5
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));
        }