Пример #1
0
        public async Task <IActionResult> Edit(string id, [Bind("IdCategoria,Nombre,Descripcion,Foto,Stock,CantidadMinima,PrecioCosto,PrecioVenta,FechaVencimiento,UnidadMedida,AlarmaActivada")] ProductoViewModelEdit producto)
        {
            if (id == null)
            {
                return(NotFound());
            }

            if (!(await trabajadorRepository.EsJefe()).Item2)
            {
                return(Unauthorized("No tiene permisos para ver este contenido."));
            }

            if (ModelState.IsValid)
            {
                Producto?p = await productoRepository.GetById(id);

                if (p == null)
                {
                    return(NotFound());
                }

                if (producto.Foto != null)
                {
                    if (p.Foto != null)
                    {
                        await servicesAWSS3.EliminarFoto(p);
                    }

                    using (MemoryStream m = new())
                    {
                        producto.Foto.CopyTo(m);
                        await servicesAWSS3.SubirFotoProducto(m, p);

                        producto.FotoUrl = "foto.png";
                    }
                }
                else if (producto.Foto == null && p.Foto != null)
                {
                    producto.FotoUrl = "foto.png";
                }

                await productoRepository.Update(id, producto);

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdCategoria"] = new SelectList(await categoriaRepository.GetAll(), "IdCategoria", "Nombre", producto.IdCategoria);
            return(View(producto));
        }
Пример #2
0
        public async Task <IActionResult> DeleteConfirmed(string id)
        {
            try
            {
                if (id == null)
                {
                    return(NotFound());
                }
                Trabajador?trabajador = await trabajadorRepository.GetByRut(id);

                if (trabajador == null)
                {
                    return(NotFound());
                }
                await servicesAWSS3.EliminarFoto(trabajador);

                await trabajadorRepository.DespedirEmpleado(trabajador);

                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception e)
            {
                return(StatusCode((int)System.Net.HttpStatusCode.Unauthorized, e.Message));
                //return Unauthorized(e.Message);
            }
        }
Пример #3
0
        public async Task <int> Actualizar(TrabajadorUpdateViewModel trabajador)
        {
            var t = await GetCurrentTrabajador();

            if (t == null)
            {
                return(-1);
            }

            bool entro = false;

            if (trabajador.Foto != null)
            {
                if (t.Foto != null)
                {
                    await servicesAWSS3.EliminarFoto(t);
                }

                using (MemoryStream m = new())
                {
                    trabajador.Foto.CopyTo(m);
                    await servicesAWSS3.SubirFotoTrabajador(m, t);

                    entro = true;
                    trabajador.FotoUrl = "foto.png";
                }
            }
            else if (trabajador.Foto == null && t.Foto != null)
            {
                entro = true;
                trabajador.FotoUrl = "foto.png";
            }

            Console.WriteLine("UPDATE \"Trabajador\" SET \"Nombre\" = "
                              + ((!string.IsNullOrWhiteSpace(trabajador.Nombre)) ? trabajador.Nombre : t.Nombre) +
                              ", \"Apellido\" = " + ((!string.IsNullOrWhiteSpace(trabajador.Apellido)) ? trabajador.Apellido : t.Apellido) +
                              ", \"Correo\" = " + ((!string.IsNullOrWhiteSpace(trabajador.Correo)) ? trabajador.Correo : t.Correo) +
                              ", \"Contrasena\" = " + (BCrypt.Net.BCrypt.HashPassword(trabajador.Contrasena)) +
                              ", \"Foto\" = " + ((object)trabajador.FotoUrl ! ?? DBNull.Value) +
                              ", \"Telefono\" = " + ((!string.IsNullOrWhiteSpace(trabajador.Telefono)) ? trabajador.Telefono : t.Telefono) +
                              " WHERE \"Rut\" = " + (t !.Rut.Replace(".", "").Replace("-", "").Trim()));

            NpgsqlParameter param1 = new NpgsqlParameter("@p0", (!string.IsNullOrWhiteSpace(trabajador.Nombre)) ? trabajador.Nombre : t.Nombre);
            NpgsqlParameter param2 = new NpgsqlParameter("@p1", (!string.IsNullOrWhiteSpace(trabajador.Apellido)) ? trabajador.Apellido : t.Apellido);
            NpgsqlParameter param3 = new NpgsqlParameter("@p2", (!string.IsNullOrWhiteSpace(trabajador.Correo)) ? trabajador.Correo : t.Correo);
            NpgsqlParameter param4 = new NpgsqlParameter("@p3", BCrypt.Net.BCrypt.HashPassword(trabajador.Contrasena));
            NpgsqlParameter param6 = new NpgsqlParameter("@p4", (object)trabajador.FotoUrl ! ?? DBNull.Value);
            NpgsqlParameter param7 = new NpgsqlParameter("@p5", (!string.IsNullOrWhiteSpace(trabajador.Telefono)) ? trabajador.Telefono : t.Telefono);
            NpgsqlParameter param8 = new NpgsqlParameter("@p6", t !.Rut);

            return(await context.Database
                   .ExecuteSqlRawAsync("UPDATE \"Trabajador\" SET \"Nombre\" = @p0, \"Apellido\" = @p1, \"Correo\" = @p2, \"Contrasena\" = @p3, \"Foto\" = @p4, \"Telefono\" = @p5 WHERE \"Rut\" = @p6", param1, param2, param3, param4, param6, param7, param8));
        }