Ejemplo n.º 1
0
        public async Task <IHttpActionResult> CambiarFoto([FromBody] string profilePictureBase64)
        {
            try
            {
                var usuarioHV = await db.UsuarioHV.FirstOrDefaultAsync(u => u.UsuarioId == Seguridadcll.Usuario.UsuarioId);

                string[] profilePicture = profilePictureBase64.Split(',');

                using (var ms = new MemoryStream(Convert.FromBase64String(profilePicture[1])))
                {
                    var bitmap = Fn.ResizeBitmap(new System.Drawing.Bitmap(ms), 200, 200);

                    if (usuarioHV == null)
                    {
                        usuarioHV = new UsuarioHV
                        {
                            UsuarioId     = Seguridadcll.Usuario.UsuarioId,
                            FotoMediaType = profilePicture[0].Replace("data:", "").Replace(";base64", ""),
                            Foto          = Fn.BitmapToByte(bitmap),
                        };
                        db.UsuarioHV.Add(usuarioHV);
                    }
                    else
                    {
                        usuarioHV.FotoMediaType   = profilePicture[0].Replace("data:", "").Replace(";base64", "");
                        usuarioHV.Foto            = Fn.BitmapToByte(bitmap);
                        db.Entry(usuarioHV).State = EntityState.Modified;
                    }
                }

                await db.SaveChangesAsync();

                AddLog("", usuarioHV.UsuarioId, null);

                return(Ok(true));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }