public Interactuable GetIntFromMeta(InteractuableMetadata meta) { Interactuable interactuable = new Interactuable(meta.interactuableID); interactuable.setCapacidad(meta.capacidad); if (meta.returnToBase) { interactuable.Return(); } var recursos = builder.getRelJugadorRecursoHandler().getRecursosByColonia(meta.interactuableID); var destacamento = builder.getRelJugadorDestacamentoHandler().getDestacamentosByColonia(meta.interactuableID); var recursoToAssign = new List <RelJugadorRecurso>(); var flotaToAssign = new List <RelJugadorDestacamento>(); var defensaToAssign = new List <RelJugadorDestacamento>(); foreach (var rec in meta.recursos) { int id = -1; int value = -1; foreach (var s in rec.ToBsonDocument().ToArray()) { if (s.Name.Equals("_id")) { id = s.Value.ToInt32(); } else { value = s.Value.ToInt32(); } } var recurso = recursos.Where(c => c.recurso.id == id).ToList().First(); recurso.cantidadR = value; recursoToAssign.Add(recurso); } foreach (var rec in meta.flota) { int id = -1; int value = -1; foreach (var s in rec.ToBsonDocument().ToArray()) { if (s.Name.Equals("_id")) { id = s.Value.ToInt32(); } else { value = s.Value.ToInt32(); } } var flota = destacamento.Where(c => c.destacamento.id == id).ToList().First(); flota.cantidad = value; flotaToAssign.Add(flota); } foreach (var rec in meta.defensa) { int id = -1; int value = -1; foreach (var s in rec.ToBsonDocument().ToArray()) { if (s.Name.Equals("_id")) { id = s.Value.ToInt32(); } else { value = s.Value.ToInt32(); } } var defensa = destacamento.Where(c => c.destacamento.id == id).ToList().First(); defensa.cantidad = value; defensaToAssign.Add(defensa); } interactuable.SetDefensas(defensaToAssign.Cast <IDestacamento>().ToList()); interactuable.SetRecursos(recursoToAssign.Cast <IResources>().ToList()); interactuable.SetFlota(flotaToAssign.Cast <IDestacamento>().ToList()); return(interactuable); }