public SystemValidationModel Edit(ClientesEditViewModel viewModel) { var cliente = GetAll().FirstOrDefault(x => x.Id != viewModel.Id && x.RazonSocial == viewModel.RazonSocial); if (cliente != null) { return new SystemValidationModel() { Success = false, Message = "Ya existe un cliente registrado con el mismo razon social" } } ; cliente = GetAll().FirstOrDefault(x => x.Id != viewModel.Id && x.Ruc == viewModel.Ruc); if (cliente != null) { return new SystemValidationModel() { Success = false, Message = "Ya existe un cliente registrado con el mismo RUC" } } ; cliente = GetById(viewModel.Id); cliente = Mapper.Map(viewModel, cliente); _context.Entry(cliente).State = EntityState.Modified; var direccionesIdToDelete = cliente.Direcciones.Select(x => x.Id).Except(viewModel.Direcciones.Where(x => x.Id > 0).Select(x => x.Id)); foreach (var direccion in cliente.Direcciones.Where(x => direccionesIdToDelete.Contains(x.Id))) { _context.Entry(direccion).State = EntityState.Deleted; } foreach (var direccion in viewModel.Direcciones.Where(x => x.Id == 0)) { var direccionEntity = Mapper.Map <Direccion>(direccion); _context.Entry(direccionEntity).State = EntityState.Added; cliente.Direcciones.Add(direccionEntity); } var success = _context.SaveChanges() > 0; var validation = new SystemValidationModel() { Success = success, Message = success ? "Se ha editado correctamente el cliente" : "No se pudo editar el cliente" }; return(validation); }
public IActionResult AddClienteIFrame() { var viewModel = new ClientesEditViewModel(); return(View(viewModel)); }