コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }