I need to register a group that has a friends list. My code:
[Table("Grupos")]
public class Grupo
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
public string IdNome { get; set; }
public string AnfitriaoId { get; set; }
public string Titulo { get; set; }
public byte[] Avatar { get; set; }
public int Arquivado { get; set; }
public DateTime DataCriacao { get; set; }
public DateTime? DataModificacao { get; set; }
public virtual List<GrupoUsuario> GrupoUsuario { get; set; }
}
[Table("GruposUsuarios")]
public class GrupoUsuario
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
public long GrupoId { get; set; }
public string ConvidadoId { get; set; }
public GrupoUsuarioStatusEnum Status { get; set; }
public DateTime DataCriacao { get; set; }
public DateTime? DataModificacao { get; set; }
public virtual Usuario Usuario { get; set; }
}
I started this code in my Controller but I do not know if it would be the best way because I need GrupoId and as I have not recorded the group I'm lost in how to do it. If anyone can help me. Thank you for your attention!
public class GrupoController : ApiController
{
[HttpPost]
[Authorize]
[Route("AddUpdateGrupo")]
public IHttpActionResult AddUpdateGrupo([FromBody]Grupo grupo)
{
_grupoService.AddUpdateGrupo(grupo);
return Ok(grupo.Id);
}
}
E at service
namespace Welook4.Service
{
public interface IGrupoService : IServiceBase
{
void AddUpdateGrupo(Grupo grupo);
}
public void AddUpdateGrupo(Grupo grupo)
{
if (grupo.Id == 0)
{
grupo.DataCriacao = DateTime.UtcNow;
_grupoRepository.Add(grupo);
_grupoAmigoService.AdicionarUsuariosGrupo(new GrupoUsuarios
{
Usuarios = grupo.GrupoUsuario,
GrupoId = grupo.Id
});
}
_unitOfWork.Commit();
}
}