/// <summary> /// Creates an <see cref="Action{T}"/> needed for the <see cref="GuildMemberPerformer"/> to save the guild /// state of a <see cref="IGuildMember"/>. /// </summary> /// <param name="dbController"></param> /// <returns></returns> static Action<IGuildMember> GetSaveHandler(IDbController dbController) { var replaceQuery = dbController.GetQuery<InsertGuildMemberQuery>(); var deleteQuery = dbController.GetQuery<DeleteGuildMemberQuery>(); return delegate(IGuildMember target) { if (target.Guild == null) { var id = new CharacterID(target.ID); deleteQuery.Execute(id); } else { var id = new CharacterID(target.ID); var guildID = target.Guild.ID; var rank = target.GuildRank; var args = new InsertGuildMemberQuery.QueryArgs(id, guildID, rank); replaceQuery.Execute(args); } }; }
/// <summary> /// Creates an <see cref="Action{T}"/> needed for the <see cref="GuildMemberPerformer"/> to save the guild /// state of a <see cref="IGuildMember"/>. /// </summary> /// <param name="dbController"></param> /// <returns></returns> static Action <IGuildMember> GetSaveHandler(IDbController dbController) { var replaceQuery = dbController.GetQuery <InsertGuildMemberQuery>(); var deleteQuery = dbController.GetQuery <DeleteGuildMemberQuery>(); return(delegate(IGuildMember target) { if (target.Guild == null) { var id = new CharacterID(target.ID); deleteQuery.Execute(id); } else { var id = new CharacterID(target.ID); var guildID = target.Guild.ID; var rank = target.GuildRank; var args = new InsertGuildMemberQuery.QueryArgs(id, guildID, rank); replaceQuery.Execute(args); } }); }