예제 #1
0
//GenerarMejorCombinacion se encarga de buscar cada una de las prendas por color y birllo para generar una combinacion.
func GenerarMejorCombinacion(usuarioID string) (prendas [][]modelo.Prenda) {
	u := modelo.Usuario{ID: bson.ObjectIdHex(usuarioID)}
	u.BuscarPorID()
	mejores := genetico.Genetico(u.ConsultarColoresPrendas())
	for _, mejor := range mejores {
		var combinacion []modelo.Prenda
		for i, color := range mejor.Genotipo {
			prenda := modelo.Prenda{}
			prenda.Brillo = color.Brillo
			prenda.Color.Tono = color.Tono
			switch i {
			case 0:
				prenda.TipoPrenda.Nombre = "Calzado"
			case 1:
				prenda.TipoPrenda.Nombre = "Pantalon/Falda"
			case 2:
				prenda.TipoPrenda.Nombre = "Playera"
			case 3:
				prenda.TipoPrenda.Nombre = "Chamarra"
			}
			prenda.BuscarPorBrilloTono(u.Prendas)
			combinacion = append(combinacion, prenda)
		}
		prendas = append(prendas, combinacion)
	}
	return prendas
}
예제 #2
0
func guadarImagen(c *gin.Context, p *modelo.Prenda) {
	file, _, err := c.Request.FormFile("foto")
	if err != nil {
		c.String(http.StatusSeeOther, "Sin imagen")
		return
	}
	defer file.Close()

	data, _ := ioutil.ReadAll(file)

	ruta := "/img/foto" + p.ID.Hex() + ".png"
	p.Foto = ruta

	out, err := os.Create("public" + p.Foto)
	if err != nil {
		c.String(http.StatusTemporaryRedirect, err.Error())
		return
	}

	_, err = out.Write(data)
	if err != nil {
		c.String(http.StatusTemporaryRedirect, err.Error())
		return
	}
	defer out.Close()
}
예제 #3
0
//RegistroPrendaPOST recibe el formulario y se encarga de registrarlo en la BD.
func RegistroPrendaPOST() gin.HandlerFunc {
	return func(c *gin.Context) {
		usuarioID := GetSession(sessions.Default(c).Get("UsuarioID"))
		if usuarioID != "0" {
			var p modelo.Prenda
			if c.Bind(&p) == nil {
				u := modelo.Usuario{ID: usuarioID}
				if u.BuscarPorID() {
					p.ID = bson.NewObjectId()
					p.Color.BuscarPorTono()

					p.Clima.ID = bson.ObjectIdHex(convertirID(c.PostForm("clima")))
					p.Clima.BuscarPorID()

					p.TipoPrenda.ID = bson.ObjectIdHex(convertirID(c.PostForm("tipoPrenda")))
					p.TipoPrenda.BuscarPorID()

					p.Ocasion.ID = bson.ObjectIdHex(convertirID(c.PostForm("ocasion")))
					p.Ocasion.BuscarPorID()

					guadarImagen(c, &p)

					u.Prendas = append(u.Prendas, p)
					if u.Modificar() {
						//BIEN
						fmt.Println(u)
					} else {
						fmt.Println("ALGO MAL", u)
					}
				} else {
					//No se encontró el usuario D:
					fmt.Println(u)
				}
			} else {
				fmt.Println("Algo salió mal")
			}
			return
		}
		c.Redirect(302, "/")
		return
	}
}