Ejemplo n.º 1
0
        private int AddInstruction(InstructionEditViewModel model)
        {
            Instruction instruction = CreateInstruction(model);

            _context.Instructions.Add(instruction);
            _context.SaveChanges();
            return(instruction.Id);
        }
Ejemplo n.º 2
0
 private InstructionEditViewModel Update(InstructionEditViewModel model)
 {
     if (model.ChangeStepsCount == -1)
     {
         model.Steps.RemoveAt(model.Steps.Count - 1);
     }
     if (model.ChangeStepsCount == 1)
     {
         model.Steps.Add(new StepEditViewModel());
     }
     model.ChangeStepsCount = 0;
     return(model);
 }
Ejemplo n.º 3
0
        private int UpdateInstruction(InstructionEditViewModel model)
        {
            Instruction instruction = _context.Instructions.Include(a => a.Steps).Include(a => a.Category).FirstOrDefault(x => x.Id == model.Id);

            if (instruction != null)
            {
                _context.Remove(instruction);
                _context.SaveChanges();
                instruction = CreateInstruction(model);
                _context.Instructions.Add(instruction);
                _context.SaveChanges();
            }
            return(instruction.Id);
        }
Ejemplo n.º 4
0
        private InstructionEditViewModel CreateInstructionModel(Instruction instruction)
        {
            List <StepEditViewModel> stepList = new List <StepEditViewModel>();

            instruction.Steps.ToList().ForEach(step => stepList.Add(CreateStepViewModel(step)));
            InstructionEditViewModel model = new InstructionEditViewModel()
            {
                Id          = instruction.Id,
                AuthorId    = instruction.ApplicationUserId,
                Name        = instruction.Name,
                Category    = instruction.Category,
                Description = instruction.Description,
                Image       = instruction.Image,
                Steps       = stepList
            };

            return(model);
        }
Ejemplo n.º 5
0
        private Instruction CreateInstruction(InstructionEditViewModel model)
        {
            List <Step> stepList = new List <Step>();

            model.Steps.ForEach(step => stepList.Add(CreateStep(step)));
            Instruction instruction = new Instruction()
            {
                Name              = model.Name,
                CategoryId        = model.Category.Id,
                Description       = model.Description,
                Image             = model.Image,
                UpdateDate        = DateTime.Now,
                ApplicationUserId = model.AuthorId,
                Steps             = stepList
            };

            return(instruction);
        }
Ejemplo n.º 6
0
 public ActionResult Edit(string userId, int?id, InstructionEditViewModel model)
 {
     ViewBag.Categories = new SelectList(_context.Categories, "Id", "Name");
     if (model.ChangeStepsCount != 0)
     {
         return(View(Update(model)));
     }
     if (ModelState.IsValid)
     {
         int temp_id;
         if (model.Id == 0)
         {
             temp_id = AddInstruction(model);
         }
         else
         {
             temp_id = UpdateInstruction(model);
         }
         return(RedirectToAction("Index", "Instruction", new { id = temp_id }));
     }
     return(View(model));
 }
Ejemplo n.º 7
0
        public ActionResult Edit(string userId, int?id)
        {
            InstructionEditViewModel model;

            if (id == null)
            {
                model = new InstructionEditViewModel()
                {
                    AuthorId = userId, Steps = new List <StepEditViewModel> {
                        new StepEditViewModel()
                    }
                };
            }
            else
            {
                Instruction instruction = _context.Instructions.Include(a => a.Steps).Include(a => a.Category).Single(i => i.Id == id);
                instruction.Steps.OrderBy(i => i.Index);
                model = CreateInstructionModel(instruction);
            }
            ViewBag.Categories = new SelectList(_context.Categories, "Id", "Name");
            return(View(model));
        }