Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public IActionResult AddClienteIFrame()
        {
            var viewModel = new ClientesEditViewModel();

            return(View(viewModel));
        }