public override void ViewWillAppear(bool animated) { base.ViewWillAppear(animated); // setup the values GroupInfoView.DisplayView(GroupEntry, delegate { LayoutChanged( ); }); }
public FullGroupView GetGroup(int id, int userId) { var currentGroup = _groupRepository.GetGroupById(id); if (currentGroup.GroupInfo.IsPrivate) { if (!currentGroup.IsMember(userId) & !currentGroup.IsTeacher(userId)) { throw new NotEnoughPermissionsException(userId); } } var members = currentGroup.Members; var memberAmount = currentGroup.Members.Count; var votersAmount = currentGroup.Members.FindAll(m => m.CurriculumStatus == MemberCurriculumStatus.Accepted) .Count; var groupInfo = currentGroup.GroupInfo; var groupInfoView = new GroupInfoView(groupInfo.Id, groupInfo.Title, groupInfo.Size, memberAmount, groupInfo.Price, groupInfo.GroupType, groupInfo.Tags, groupInfo.Description, groupInfo.Curriculum, groupInfo.IsPrivate, groupInfo.IsActive, currentGroup.Status, votersAmount); var reviewView = new List <ReviewView>(); var membersInfo = new List <GroupMemberInfoView>(); members.ForEach(m => { var currentMember = _userRepository.GetUserById(m.UserId); membersInfo.Add(new GroupMemberInfoView(m.UserId, currentMember.UserProfile.Name, currentMember.UserProfile.AvatarLink, m.MemberRole, m.Paid, m.CurriculumStatus)); }); if (currentGroup.Teacher != null) { var teacher = _userRepository.GetUserById(currentGroup.Teacher.Id); membersInfo.Add(new GroupMemberInfoView(currentGroup.Teacher.Id, teacher.UserProfile.Name, teacher.UserProfile.AvatarLink, MemberRole.Teacher, false, MemberCurriculumStatus.Unknown)); teacher.TeacherProfile?.Reviews.Where(r => r.FromGroup == id).ToList() .ForEach(r => reviewView.Add(new ReviewView(r.FromUser, r.FromGroup, r.Title, r.Text, r.Date))); } var responseView = new FullGroupView(groupInfoView, membersInfo, reviewView); return(responseView); }
public override void OnResume() { base.OnResume(); ParentTask.NavbarFragment.NavToolbar.SetBackButtonEnabled(true); ParentTask.NavbarFragment.NavToolbar.SetCreateButtonEnabled(false, null); ParentTask.NavbarFragment.NavToolbar.SetShareButtonEnabled(false, null); ParentTask.NavbarFragment.NavToolbar.Reveal(false); GroupInfoView.DisplayView(GroupEntry, delegate { LayoutChanged( ); }); LayoutChanged( ); }
public override void LayoutChanged( ) { base.LayoutChanged( ); // default the scrollview to match the screen ScrollView.Bounds = View.Bounds; ScrollView.ContentSize = View.Bounds.Size; // now, let the actual view perform its layout RectangleF joinBounds = new RectangleF(0, 0, (float)View.Bounds.Width, (float)ScrollView.ContentSize.Height); GroupInfoView.LayoutChanged(joinBounds); // and finally update the scroll content nfloat controlBottom = GroupInfoView.GetControlBottom( ) + (View.Bounds.Height * .25f); ScrollView.ContentSize = new CGSize(0, (nfloat)Math.Max(controlBottom, View.Bounds.Height * 1.05f)); }
void LayoutChanged( ) { GroupInfoView.LayoutChanged(new System.Drawing.RectangleF(0, 0, NavbarFragment.GetCurrentContainerDisplayWidth( ), this.Resources.DisplayMetrics.HeightPixels)); ScrollViewLayout.LayoutParameters.Height = (int)(GroupInfoView.GetControlBottom( ) * 1.05f); }
public override void OnDestroyView() { base.OnDestroyView(); GroupInfoView.Destroy( ); }