public ActionResult Create(EquipamentoViewModel model)
        {
            if (ModelState.IsValid) {
            Equipamentos equipamento = new Equipamentos();
            fillEquipamento(equipamento, model);

            EquipamentoService.saveEquipamento(equipamento);
            this.addMensagemSucesso("Produto criado com sucesso!");
              } else {
            return View(model);
              }
              return RedirectToAction("Index", "Equipamento");
        }
 private EquipamentoViewModel getBasicViewModel(Equipamentos equipamento)
 {
     return new EquipamentoViewModel() {
     IDEquipamento = equipamento.IDEquipamento,
     IDEmpresa = equipamento.IDEmpresa,
     Descricao = equipamento.Descricao,
     Fabricante = equipamento.Fabricante,
     Modelo = equipamento.Modelo,
     PrecoMaximo = equipamento.PrecoMaximo,
     PrecoMinimo = equipamento.PrecoMinimo
       };
 }
        private EquipamentoViewModel getViewModel(Equipamentos equipamento)
        {
            var model = getBasicViewModel(equipamento);

              fillModelLists(model);

              if (equipamento.EquipamentosServicos != null)
            foreach (var equipamentoServico in equipamento.EquipamentosServicos) {
              var equipamentoServicoViewModel = new EquipamentoServicoViewModel() {
            IdServico = equipamentoServico.IDServico,
            PrecoMaximo = equipamentoServico.PrecoMaximo,
            PrecoMinimo = equipamentoServico.PrecoMinimo,
            ServicosDisponiveis = model.ServicosDisponiveis.Select(c => new SelectListItem() { Text = c.Text.ToUpper(), Value = c.Value, Selected = equipamentoServico.IDServico.ToString() == c.Value ? true : false }).ToList(),
              };
              equipamentoServicoViewModel.ServicosDisponiveis.First(c => c.Value == equipamentoServico.IDServico.ToString()).Selected = true;
              model.Servicos.Add(equipamentoServicoViewModel);
            }

              if (model.Servicos.Count == 0)
            model.Servicos.Add(new EquipamentoServicoViewModel() { ServicosDisponiveis = model.ServicosDisponiveis });

              return model;
        }
        private void fillEquipamento(Equipamentos equipamento, EquipamentoViewModel model)
        {
            equipamento.IDEmpresa = 1;
              equipamento.IDUsuario = visitor.ID;
              equipamento.Descricao = model.Descricao;
              equipamento.Modelo = model.Modelo;
              equipamento.PrecoMaximo = model.PrecoMaximo.Value;
              equipamento.PrecoMinimo = model.PrecoMinimo.Value;
              equipamento.Servico = false;
              equipamento.Fabricante = model.Fabricante;

              var equipamentosServicosNew = new List<EquipamentosServicos>();
              foreach (var equipamentoServicoModel in model.Servicos) {

              if (equipamentoServicoModel.IdServico.HasValue)
              {
              var equipamentoServico =
                  equipamento.EquipamentosServicos.Where(c => c.IDServico == equipamentoServicoModel.IdServico)
                             .FirstOrDefault();

              if (equipamentoServico == null)
              {
                  equipamentoServico = new EquipamentosServicos()
                      {
                          IDServico = Convert.ToInt32(equipamentoServicoModel.IdServico)
                      };
              }

              equipamentoServico.IDUsuario = visitor.ID;
              equipamentoServico.PrecoMaximo = equipamentoServicoModel.PrecoMaximo.GetValueOrDefault();
              equipamentoServico.PrecoMinimo = equipamentoServicoModel.PrecoMinimo.GetValueOrDefault();
              equipamentosServicosNew.Add(equipamentoServico);
              }

              }

              equipamento.EquipamentosServicos = equipamentosServicosNew;
        }