public static bool DeleteGroup(int groupId)
{
try
{
using (SqlConnection connection = ConnectionManager.GetConnection())
{
var data = new ActivEarthDataProvidersDataContext(connection);
GroupDataProvider dbGroup = (from g in data.GroupDataProviders
where g.id == groupId
select g).FirstOrDefault();
if (dbGroup != null)
{
data.GroupDataProviders.DeleteOnSubmit(dbGroup);
//Delete entries in the group_hashtags table
List<GroupHashtagDataProvider> hashtags = (from h in data.GroupHashtagDataProviders
where h.group_id == groupId
select
h
).ToList();
foreach (GroupHashtagDataProvider hashtagData in hashtags)
{
data.GroupHashtagDataProviders.DeleteOnSubmit(hashtagData);
}
//Delete entries in group_members table
List<GroupMemberDataProvider> members = (from u in data.GroupMemberDataProviders
where u.group_id == groupId
select
u
).ToList();
foreach (GroupMemberDataProvider memberData in members)
{
data.GroupMemberDataProviders.DeleteOnSubmit(memberData);
}
//Delete entires in group_contests table
List<TeamDataProvider> contests = (from c in data.TeamDataProviders
where c.group_id == groupId
select
c
).ToList();
foreach (TeamDataProvider contestData in contests)
{
data.TeamDataProviders.DeleteOnSubmit(contestData);
}
//Remove entires in messages table
List<MessageDataProvider> messages = (from m in data.MessageDataProviders
where m.group_id == groupId
select
m
).ToList();
foreach (MessageDataProvider messageData in messages)
{
data.MessageDataProviders.DeleteOnSubmit(messageData);
}
data.SubmitChanges();
return true;
}
else
{
return false;
}
}
}
catch (Exception)
{
return false;
}
}