public static List <UserActionView> GetActionsForViewsForUser(ApplicationDbContext db, IPrincipal user) { List <UserActionView> list = new List <UserActionView>(); List <UserAction> userActionList = UserActionHelpers.GetActionsForUser(db, user); foreach (UserAction userAction in userActionList) { string referenceName = ""; switch (userAction.ActionLevel) { case LevelEnum.Company: referenceName = CompanyHelpers.GetCompanyNameTownPostCode(db, userAction.ReferenceKey); break; case LevelEnum.Branch: referenceName = BranchHelpers.GetBranchNameTownPostCode(db, userAction.ReferenceKey); break; case LevelEnum.User: referenceName = AppUserHelpers.GetAppUserName(db, userAction.ReferenceKey); break; } string createdByName = ""; //Get the user that created the action. Note, this could be at Company or Branch level, so try the user first, if that //fails then work through a switch try { createdByName = AppUserHelpers.GetAppUserName(db, userAction.CreatedBy); } catch { switch (userAction.ActionLevel) { case LevelEnum.Company: createdByName = CompanyHelpers.GetCompanyNameTownPostCode(db, userAction.CreatedBy); break; case LevelEnum.Branch: createdByName = BranchHelpers.GetBranchNameTownPostCode(db, userAction.CreatedBy); break; } } list.Add(CreateUserActionView(userAction, referenceName, createdByName)); } return(list); }
public static List <GroupListView> GetGroupListViewsCreatedByUser(ApplicationDbContext db, Guid appUserId) { List <GroupListView> list = new List <GroupListView>(); List <Group> allGroupsCreatedByUser = GroupHelpers.GetGroupsCreatedByUser(db, appUserId); foreach (Group group in allGroupsCreatedByUser) { //Get members of the group List <GroupMember> groupMembers = GroupMemberHelpers.GetMembersForGroup(db, group.GroupId); List <GroupMemberListView> groupMembersView = new List <GroupMemberListView>(); foreach (GroupMember member in groupMembers) { string memberName = null; switch (member.Type) { case LevelEnum.User: memberName = AppUserHelpers.GetAppUserName(db, member.ReferenceId); break; case LevelEnum.Branch: memberName = BranchHelpers.GetBranchNameTownPostCode(db, member.ReferenceId); break; case LevelEnum.Company: memberName = CompanyHelpers.GetCompanyNameTownPostCode(db, member.ReferenceId); break; } GroupMemberListView groupMemberListView = new GroupMemberListView() { GroupMember = member, GroupMemberName = memberName }; groupMembersView.Add(groupMemberListView); } //create view record to add to list of view records GroupListView view = new GroupListView(); view.Group = group; view.GroupOriginatorName = AppUserHelpers.GetAppUserName(db, view.Group.GroupOriginatorAppUserId); view.Members = groupMembersView; list.Add(view); } return(list); }
public static List <GroupListView> GetGroupListViewsRelevantToUser(ApplicationDbContext db, Guid appUserId) { List <GroupListView> list = new List <GroupListView>(); List <Group> allGroupsRelevantUser = new List <Group>(); //Get user groups containing this user allGroupsRelevantUser = GroupHelpers.GetGroupsForUser(db, appUserId); //Get branch groups containing this users branches List <Branch> usersBranches = BranchHelpers.GetBranchesForUser(db, appUserId); foreach (Branch branch in usersBranches) { List <Group> groups = GroupHelpers.GetGroupsForTypeAndReferenceId(db, LevelEnum.Branch, branch.BranchId); foreach (Group group in groups) { allGroupsRelevantUser.Add(group); } } //Get company groups containing this users company List <Group> companyGroups = GroupHelpers.GetGroupsForTypeAndReferenceId(db, LevelEnum.Company, CompanyHelpers.GetCompanyForUser(db, appUserId).CompanyId); foreach (Group group in companyGroups) { allGroupsRelevantUser.Add(group); } foreach (Group group in allGroupsRelevantUser) { //Get members of the group List <GroupMember> groupMembers = GroupMemberHelpers.GetMembersForGroup(db, group.GroupId); List <GroupMemberListView> groupMembersView = new List <GroupMemberListView>(); foreach (GroupMember member in groupMembers) { string memberName = null; switch (member.Type) { case LevelEnum.User: memberName = AppUserHelpers.GetAppUserName(db, member.ReferenceId); break; case LevelEnum.Branch: memberName = BranchHelpers.GetBranchNameTownPostCode(db, member.ReferenceId); break; case LevelEnum.Company: memberName = CompanyHelpers.GetCompanyNameTownPostCode(db, member.ReferenceId); break; } GroupMemberListView groupMemberListView = new GroupMemberListView() { GroupMember = member, GroupMemberName = memberName }; groupMembersView.Add(groupMemberListView); } //create view record to add to list of view records GroupListView view = new GroupListView(); view.Group = group; view.GroupOriginatorName = AppUserHelpers.GetAppUserName(db, view.Group.GroupOriginatorAppUserId); view.Members = groupMembersView; list.Add(view); } return(list); }
public static List <BlockView> GetBlockViewByType(ApplicationDbContext db, Guid appUserId, LevelEnum type) { List <BlockView> list = new List <BlockView>(); List <Block> blockList = null; //Depending on type passed through will depend on what level of blocks we are collecting switch (type) { case LevelEnum.User: blockList = BlockHelpers.GetBlocksCreatedByUser(db, appUserId); break; case LevelEnum.Branch: blockList = BlockHelpers.GetBlocksCreatedByUserBranches(db, appUserId); break; case LevelEnum.Company: blockList = BlockHelpers.GetBlocksCreatedByUserCompany(db, appUserId); break; } foreach (Block block in blockList) { //get the user/branch/company names depending on the block type string nameBy = ""; string nameOn = ""; switch (block.Type) { case LevelEnum.User: nameBy = AppUserHelpers.GetAppUserName(db, block.BlockedById); nameOn = AppUserHelpers.GetAppUserName(db, block.BlockedOfId); break; case LevelEnum.Branch: nameBy = BranchHelpers.GetBranchNameTownPostCode(db, block.BlockedById); nameOn = BranchHelpers.GetBranchNameTownPostCode(db, block.BlockedOfId); break; case LevelEnum.Company: nameBy = CompanyHelpers.GetCompanyNameTownPostCode(db, block.BlockedById); nameOn = CompanyHelpers.GetCompanyNameTownPostCode(db, block.BlockedOfId); break; } string blockedByUserName = AppUserHelpers.GetAppUserName(db, block.BlockedByUserId); bool blockedByLoggedInUser = false; if (block.BlockedByUserId == appUserId) { blockedByLoggedInUser = true; } BlockView view = new BlockView() { BlockId = block.BlockId, Type = block.Type, BlockedByName = nameBy, BlockedByUserName = blockedByUserName, BlockedOfName = nameOn, BlockedOn = block.BlockedOn, BlockedByLoggedInUser = blockedByLoggedInUser }; list.Add(view); } return(list); }
public static List <FriendView> GetFriendViewByType(ApplicationDbContext db, Guid appUserId, LevelEnum type) { List <FriendView> list = new List <FriendView>(); List <Friend> friendList = null; //Depending on type passed through will depend on what level of friends we are collecting switch (type) { case LevelEnum.User: friendList = FriendHelpers.GetFriendsCreatedByUser(db, appUserId); break; case LevelEnum.Branch: friendList = FriendHelpers.GetFriendsCreatedByUserBranches(db, appUserId); break; case LevelEnum.Company: friendList = FriendHelpers.GetFriendsCreatedByUserCompany(db, appUserId); break; } foreach (Friend friend in friendList) { //get the user/branch/company names depending on the block type string nameBy = ""; string nameOn = ""; switch (friend.Type) { case LevelEnum.User: nameBy = AppUserHelpers.GetAppUserName(db, friend.RequestedById); nameOn = AppUserHelpers.GetAppUserName(db, friend.RequestedOfId); break; case LevelEnum.Branch: nameBy = BranchHelpers.GetBranchNameTownPostCode(db, friend.RequestedById); nameOn = BranchHelpers.GetBranchNameTownPostCode(db, friend.RequestedOfId); break; case LevelEnum.Company: nameBy = CompanyHelpers.GetCompanyNameTownPostCode(db, friend.RequestedById); nameOn = CompanyHelpers.GetCompanyNameTownPostCode(db, friend.RequestedOfId); break; } string friendedByUserName = AppUserHelpers.GetAppUserName(db, friend.RequestedByUserId); bool friendedByLoggedInUser = false; if (friend.RequestedByUserId == appUserId) { friendedByLoggedInUser = true; } FriendView view = new FriendView() { FriendId = friend.FriendId, Type = friend.Type, RequestedByName = nameBy, RequestedByUserName = friendedByUserName, RequestedOfName = nameOn, Status = friend.Status, RequestedOn = friend.RequestedOn, AccceptedOn = friend.AccceptedOn, RejectedOn = friend.RequestedOn, ClosedOn = friend.ClosedOn, ClosedBy = friend.ClosedBy, FriendedByLoggedInUser = friendedByLoggedInUser }; list.Add(view); } return(list); }