public static bool UpdateGroup(LeagueGroup group) { try { var dc = new ManagementContext(); var g = dc.LeagueGroups.Where(x => x.Id == group.Id).FirstOrDefault(); if (g != null) { g.GroupName = group.GroupName; g.GroupTypeEnum = Convert.ToInt32(group.GroupTypeEnum); g.IsPublicToWorld = group.IsPublicToWorld; g.League = g.League; } if (g.ContactCard != null && g.ContactCard.Emails.Count > 0 && !String.IsNullOrEmpty(group.EmailAddress)) { var e = g.ContactCard.Emails.FirstOrDefault(); e.EmailAddress = group.EmailAddress; } else if (!String.IsNullOrEmpty(group.EmailAddress)) { if (g.ContactCard == null) g.ContactCard = new DataModels.ContactCard.ContactCard(); g.ContactCard.Emails.Add(new RDN.Library.DataModels.ContactCard.Email { EmailAddress = group.EmailAddress, IsDefault = true }); } foreach (var mem in group.GroupMembers) { var gm11 = g.GroupMembers.Where(x => x.Member.MemberId == mem.MemberId).FirstOrDefault(); if (mem.IsApartOfGroup) { if (gm11 == null) { GroupMember gm = new GroupMember(); gm.Group = g; gm.Member = dc.Members.Where(x => x.MemberId == mem.MemberId).FirstOrDefault(); gm.MemberAccessLevelEnum = Convert.ToInt32(mem.MemberAccessLevelEnum); g.GroupMembers.Add(gm); LeagueGroupFactory.EmailMemberAboutAddedToGroup(group.GroupName, mem.MemberId); } else { gm11.MemberAccessLevelEnum = Convert.ToInt32(mem.MemberAccessLevelEnum); gm11.IsMemRemoved = false; gm11.Member = gm11.Member; gm11.Group = gm11.Group; } } else { if (gm11 != null) { gm11.IsMemRemoved = true; gm11.Member = gm11.Member; gm11.Group = gm11.Group; } } } int c = dc.SaveChanges(); foreach (var mem in group.GroupMembers) { if (mem.IsApartOfGroup) { MemberCache.Clear(mem.MemberId); MemberCache.ClearApiCache(mem.MemberId); } } if (c > 0) return true; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return false; }
public static bool AddGroup(LeagueGroup group) { try { var dc = new ManagementContext(); RDN.Library.DataModels.League.Group.Group g = new DataModels.League.Group.Group(); g.GroupName = group.GroupName; g.GroupTypeEnum = Convert.ToInt32(group.GroupTypeEnum); g.IsPublicToWorld = group.IsPublicToWorld; g.League = dc.Leagues.Where(x => x.LeagueId == group.League.LeagueId).FirstOrDefault(); if (!String.IsNullOrEmpty(group.EmailAddress)) { g.ContactCard = new DataModels.ContactCard.ContactCard(); g.ContactCard.Emails.Add(new RDN.Library.DataModels.ContactCard.Email { EmailAddress = group.EmailAddress, IsDefault = true }); } foreach (var mem in group.GroupMembers) { GroupMember gm = new GroupMember(); gm.Group = g; gm.Member = dc.Members.Where(x => x.MemberId == mem.MemberId).FirstOrDefault(); gm.MemberAccessLevelEnum = Convert.ToInt32(mem.MemberAccessLevelEnum); g.GroupMembers.Add(gm); } dc.LeagueGroups.Add(g); int c = dc.SaveChanges(); var memId = RDN.Library.Classes.Account.User.GetMemberId(); MemberCache.Clear(memId); MemberCache.ClearApiCache(memId); if (c > 0) return true; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return false; }
public static bool AddMemberToGroup(long groupId, Guid leagueId, Guid memId, string memType) { try { var dc = new ManagementContext(); var memDb = dc.LeagueGroupMembers.Where(x => x.Member.MemberId == memId && x.Group.Id == groupId).FirstOrDefault(); if (memDb == null) { GroupMember mem = new GroupMember(); mem.Group = dc.LeagueGroups.Where(x => x.Id == groupId && x.League.LeagueId == leagueId).FirstOrDefault(); mem.Member = dc.Members.Where(x => x.MemberId == memId).FirstOrDefault(); mem.MemberAccessLevelEnum = Convert.ToInt32((GroupMemberAccessLevelEnum)Enum.Parse(typeof(GroupMemberAccessLevelEnum), memType)); dc.LeagueGroupMembers.Add(mem); EmailMemberAboutAddedToGroup(mem.Group.GroupName, memId); } else { memDb.Group = memDb.Group; memDb.Member = memDb.Member; memDb.IsMemRemoved = false; memDb.MemberAccessLevelEnum = Convert.ToInt32((GroupMemberAccessLevelEnum)Enum.Parse(typeof(GroupMemberAccessLevelEnum), memType)); EmailMemberAboutAddedToGroup(memDb.Group.GroupName, memId); } int c = dc.SaveChanges(); MemberCache.Clear(memId); MemberCache.ClearApiCache(memId); if (c > 0) return true; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return false; }