public GuildBO Update(GuildBO guild) { using (var uow = _facade.UnitOfWork) { var guildFromDB = uow.GuildRepository.Get(guild.Id); if (guildFromDB == null) { throw new InvalidOperationException("Guild not found"); } var guildUpdated = conv.Convert(guild); guildFromDB.GuildName = guildUpdated.GuildName; guildFromDB.Description = guildUpdated.Description; if (guildUpdated.Users != null) { guildFromDB.Users.RemoveAll( gu => !guildUpdated.Users.Exists( u => u.UserId == gu.UserId && u.GuildId == gu.GuildId)); guildUpdated.Users.RemoveAll( gu => guildFromDB.Users.Exists( u => u.UserId == gu.UserId && u.GuildId == gu.GuildId)); guildFromDB.Users.AddRange( guildUpdated.Users); } uow.Complete(); return(conv.Convert(guildFromDB)); } }
public IActionResult Post([FromBody] GuildBO guild) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(Ok(facade.GuildService.Create(guild))); }
public GuildBO Create(GuildBO guild) { using (var uow = _facade.UnitOfWork) { var guildEnt = conv.Convert(guild); var guildEntity = uow.GuildRepository.Create(guildEnt); uow.Complete(); return(conv.Convert(guildEntity)); } }
public IActionResult Put(int id, [FromBody] GuildBO guild) { if (id != guild.Id) { return(BadRequest("Path Id does not match Guild Id in json object")); } try { var guildUpdated = facade.GuildService.Update(guild); return(Ok(guildUpdated)); } catch (InvalidOperationException e) { return(StatusCode(404, e.Message)); } }
internal Guild Convert(GuildBO guild) { if (guild == null) { return(null); } return(new Guild() { Id = guild.Id, GuildName = guild.GuildName, Description = guild.Description, Users = guild.UserIds?.Select(uID => new GuildUser() { UserId = uID, GuildId = guild.Id }).ToList() }); }