public bool AgregarEmpleado(EmpleadosDTO empleadoDTO)
        {
            Employees empleado = new Employees();
            bool agregado = false;
            try
            {
                empleado.FirstName = empleadoDTO.FirstName;
                empleado.LastName = empleadoDTO.LastName;
                empleado.Title = empleadoDTO.Title;
                empleado.TitleOfCourtesy = empleadoDTO.TitleOfCourtesy;
                empleado.BirthDate = empleadoDTO.BirthDate;
                empleado.HireDate = empleadoDTO.HireDate;
                empleado.Address = empleado.Address;
                empleado.City = empleadoDTO.City;
                empleado.Country = empleadoDTO.Country;
                empleado.Notes = empleadoDTO.Notes;
                empleado.HomePhone = empleadoDTO.HomePhone;
                empleado.Extension = empleadoDTO.Extension;
                empleado.Photo = empleadoDTO.Photo;
                empleado.PhotoPath = empleadoDTO.PhotoPath;
                empleado.PostalCode = empleadoDTO.PostalCode;
                empleado.Region = empleadoDTO.Region;

                _context.Employees.Add(empleado);

                if (_context.SaveChanges() > 0)
                    agregado = true;
            }
            catch (Exception)
            {

                throw;
            }
            return agregado;
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            idEmpleado = Request.QueryString["id"] ?? "-1";

            //Ver si el Id Existe en la URL
            if (idEmpleado == "-1")
                Response.Redirect("~/Empleados/Empleados.aspx");

            empleado = _emCRUD.ObtenerEmpleado(idEmpleado);

            //Ver si existe el Empleado con ese Id
            if (empleado == null)
                Response.Redirect("~/Empleados/Empleados.aspx");

            //Configurado User Control  para los mensajes del Modal
            AvisoModalsControl.UserControlButtonClicked += new EventHandler(btnEliminarClick);
            AvisoModalsControl.RetornoURLEvent += new EventHandler(retornoUrl);
            AvisoModalsControl.mensajeAviso = "Esta a punto de eliminar permanentemente un registro, todos los registros que dependan del mismo serán establecidos como articulos 'Sin Empleado'";
            AvisoModalsControl.mensajeNoExitoso = "Ha Ocurrido un problema al intentar borrar el registro, por lo tanto no se ha terminado la Operación Excitosamente.";
            AvisoModalsControl.mensajeExitoso = "Registro Eliminado Exitosamente.";
            AvisoModalsControl.mensajeExitosoAlternativo = "Registro Editado Correctamente";

            //Pasando los datos a los controles
            if (!IsPostBack)
            {
                CargarCombos();

                if (!DatosAControles(empleado))
                {
                    Label label = new Label();
                    label.Text = "Error al Convertir los datos del Empleado";
                    contenedor.Controls.Add(label);
                    System.Threading.Thread.Sleep(3000);
                    Response.Redirect("~/Empleados/Empleados.aspx");
                }

                HelperFechas.DefinirFechaPredefinida(Convert.ToDateTime(empleado.HireDate),
                selectDias, selectMeses, selectAnios);

                HelperFechas.DefinirFechaPredefinida(Convert.ToDateTime(empleado.BirthDate),
                selectDias2, selectMeses2, selectAnios2);
            }

            ListaSelects = new DropDownList[]
            {
                selectDias, selectMeses, selectAnios,
                selectDias2, selectMeses2, selectAnios2
            };
        }
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            EmpleadosDTO empleadoDTO = ControlesADatos();

            if (empleadoDTO == null || errores.Count > 0)
            {
                Label labelError = new Label();
                labelError.Text = "No se pudo Editar el empleado";
                phMensajeErrorEditar.Controls.Add(labelError);

                if (errores.Count > 0)
                {
                    foreach (string error in errores)
                    {
                        phMensajeErrorEditar.Controls.Add(new LiteralControl("<br />"));
                        Label _label = new Label();
                        _label.Text = error;
                        phMensajeErrorEditar.Controls.Add(_label);
                    }
                }
            }
            else
            {
                if (_emCRUD.EditarEmpleado(idEmpleado, empleadoDTO))
                {
                    toastrLiteral.Text = "<script> toastr.info('Empleado Editado Correctamente');</script>";
                    empleado = _emCRUD.ObtenerEmpleado(empleado.EmployeeID.ToString());
                    DatosAControles(empleado);
                }
                else
                {
                    Label label = new Label();
                    label.Text = "No se pude editar el empleado";
                    phMensajeErrorEditar.Controls.Add(label);
                }
            }
        }
        public bool DatosAControles(Employees empleado)
        {
            bool convertidos = false;
            try
            {
                inputFirstName.Value = empleado.FirstName ?? "";
                inputLastName.Value = empleado.LastName ?? "";
                inputTitle.Value = empleado.Title ?? "";
                inputTitleOfCourtesy.Value = empleado.TitleOfCourtesy ?? "";
                inputAdress.Value = empleado.Address ?? "";
                inputCity.Value = empleado.City ?? "";
                inputRegión.Value = empleado.Country ?? "";
                inputPostalCode.Value = empleado.PostalCode ?? "";
                inputCountry.Value = empleado.Country ?? "";
                inputHomePhone.Value = empleado.HomePhone ?? "";
                inputExtension.Value = empleado.Extension ?? "";
                inputNotes.Value = empleado.Notes ?? "";
                HelperFechas.DefinirFechaPredefinida(Convert.ToDateTime(empleado.HireDate),
                selectDias, selectMeses, selectAnios);
                HelperFechas.DefinirFechaPredefinida(Convert.ToDateTime(empleado.BirthDate),
                selectDias2, selectMeses2, selectAnios2);

                if (empleado.Photo != null)
                {
                    byte[] arregloImag = empleado.Photo;
                    string ImagenString = Convert.ToBase64String(arregloImag);
                    Imagen.Src = String.Format("data:image/jpeg;base64,{0}", ImagenString);
                }

                convertidos = true;
            }
            catch (Exception)
            {

                throw;
            }
            return convertidos;
        }
 protected void cellClick(object sender, CommandEventArgs e)
 {
     string empleadoID = e.CommandArgument.ToString();
     empleado = _empCRUD.ObtenerEmpleado(empleadoID);
     EjecutarModelDetalle.Text = "<script>$('#modalDetalleEmpleado').modal('toggle');</script>";
 }