public void CrearOperador(Operador operador)
 {
     AgregarNuevasSucursales(operador);
     Uow.Operadores.Agregar(operador);
     Uow.Personales.Agregar(operador.Personal);
     Uow.Commit();
 }
 private void SeleccionarOperador()
 {
     _operador = (OperadorId.HasValue)
                     ? Uow.Operadores.Obtener(o => o.Id == OperadorId)
                     : null;
     OnSeleccionarSucursalFinished(_operador);
 }
 public void EditarOperador(Operador operador)
 {
     ActualizarSucursales(operador);
     
     Uow.Personales.Modificar(operador.Personal);
     Uow.Operadores.Modificar(operador);
     Uow.Commit();
 }
 private void OnOperadorAgregado(Operador cliente)
 {
     if (OperadorAgregado != null)
     {
         OperadorAgregado(this, cliente);
     }
 }
        private void CargarRoles(Operador operador)
        {
            var roles = Uow.Roles.Listado().ToList();
            var rolesAsignados = operador.Roles;

            if (!operador.Habilitado)
            {
                LbRoles.DataSource = rolesAsignados;
                return;
            }

            LbRoles.DataSource = roles;

            foreach (var item in LbRoles.Items)
            {
                var role = item.DataBoundItem as Role;
                if (role != null)
                {
                    item.Selected = rolesAsignados.Any(r => r.Id == role.Id);
                }
            }
        }
 private void CargarSucursales(Operador operador)
 {
     var sucursales = operador.OperadorSucursals.Select(op => op.Sucursal).AsQueryable().Project().To<SucursalDto>().ToList();
     DgvSucursales.DataSource = sucursales;
 }
        private void CargarOperador(Guid usuarioId)
        {
            if (usuarioId == default(Guid))
            {
                _operador = new Operador();
                _operador.Id = Guid.NewGuid();
                _operador.Personal = new Personal();
                _operador.Personal.Id = Guid.NewGuid();
                _operador.Habilitado = true;
            }
            else
            {
                _operador = Uow.Operadores.Obtener(c => c.Id == usuarioId, o => o.Roles, o => o.Personal,
                                                                           o => o.OperadorSucursals.Select(op => op.Sucursal.Provincia),
                                                                           o => o.OperadorSucursals.Select(op => op.Sucursal.Localidad));
                if (_operador.Personal == null)
                {
                    _operador.Personal = new Personal();
                    _operador.Personal.Id = Guid.NewGuid();
                }
            }

            this.NombreUsuario = _operador.Usuario;

            this.ApellidoNombre = _operador.Personal.Nombre;
            this.Domicilio = _operador.Personal.Domicilio;
            this.Telefono = _operador.Personal.Telefono;
            this.Celular = _operador.Personal.Celular;
            this.UcProvincia.ProvinciaId = _operador.Personal.ProvinciaId;
            this.UcLocalidad.LocalidadId = _operador.Personal.LocalidadId;
            this.Cuit = _operador.Personal.Cuit;

            CargarRoles(_operador);
            CargarSucursales(_operador);

            ToggleHabilitado();
        }
 private void OnSeleccionarSucursalFinished(Operador operador)
 {
     if (SeleccionarFinished != null)
     {
         SeleccionarFinished(this, operador);
     }
 }
        private void ActualizarSucursales(Operador operador)
        {
            var sucursales =
                Uow.OperadorSucursales.Listado().Where(os => os.OperadorId == operador.Id);

            foreach (var operadorSucursal in sucursales.ToList())
            {
                if (!operador.OperadorSucursals.Any(op => op.Id == operadorSucursal.Id))
                {
                    Uow.OperadorSucursales.Eliminar(operadorSucursal);
                }
            }

            foreach (var operadorSucursal in operador.OperadorSucursals)
            {
                if (!sucursales.Any(op => op.Id == operadorSucursal.Id))
                {
                    Uow.OperadorSucursales.Agregar(operadorSucursal);
                }
            }
        }
        private void EliminarSucursales(Operador operador)
        {
            var sucursales =
               Uow.OperadorSucursales.Listado().Where(os => os.OperadorId == operador.Id);

            foreach (var operadorSucursal in sucursales.ToList())
            {
                Uow.OperadorSucursales.Eliminar(operadorSucursal);
            }
        }
        private void AgregarNuevasSucursales(Operador operador)
        {
            var nuevasSucursales = operador.OperadorSucursals;

            foreach (var operadorSucursal in nuevasSucursales)
            {
                Uow.OperadorSucursales.Agregar(operadorSucursal);
            }
        }
        private void CargarUsuario(Guid operadorId)
        {
            _operador = Uow.Operadores.Obtener(c => c.Id == operadorId, 
                                                      c => c.Personal.Provincia,
                                                      c => c.Personal.Localidad,
                                                      o => o.OperadorSucursals.Select(op => op.Sucursal.Provincia),
                                                      o => o.OperadorSucursals.Select(op => op.Sucursal.Localidad));

            this.NombreUsuario = _operador.Usuario;

            if (_operador.Personal != null)
            {
                this.ApellidoNombre = _operador.Personal.Nombre;
                this.Domicilio = _operador.Personal.Domicilio;
                this.Telefono = _operador.Personal.Telefono;
                this.Celular = _operador.Personal.Celular;
                this.Provincia = _operador.Personal.Provincia != null ? _operador.Personal.Provincia.Nombre : string.Empty;
                this.Localidad = _operador.Personal.Localidad != null ? _operador.Personal.Localidad.Nombre : string.Empty;
                this.Cuit = _operador.Personal.Cuit;
            }

            CargarRoles(_operador);
            CargarSucursales(_operador);

            ToggleHabilitado();
        }