Example #1
0
 public VolunteerView()
 {
     InitializeComponent();
     _volunteerService          = new VolunteerService(new MVCHContext());
     _volunteerListViewModel    = new VolunteerListViewModel(_volunteerService);
     _specialtyService          = new SpecialtyService(new MVCHContext());
     _volunteerSpecialtyService = new VolunteerSpecialtyService(new MVCHContext());
     _workUnitService           = new WorkUnitService(new MVCHContext());
     _personService             = new PersonService(new MVCHContext());
     DataContext = _volunteerListViewModel;
 }
 public AddVolunteerView(VolunteerListViewModel volunteerListViewModel,
                         VolunteerService volunteerService,
                         PersonService personService,
                         WorkUnitService workUnitService,
                         SpecialtyService specialtyService,
                         VolunteerSpecialtyService volunteerSpecialtyService)
 {
     _toAddVolunteer = new AddVolunteerViewModel(volunteerListViewModel,
                                                 volunteerService,
                                                 personService,
                                                 workUnitService,
                                                 specialtyService,
                                                 volunteerSpecialtyService);
     DataContext = _toAddVolunteer;
     InitializeComponent();
 }
Example #3
0
        public async Task <IViewComponentResult> InvokeAsync(int groupId, CancellationToken cancellationToken)
        {
            var user = await _authService.GetCurrentUser(HttpContext, cancellationToken);


            if (user == null)
            {
                throw new UnauthorizedAccessException("No user in session");
            }

            var group = await _groupService.GetGroupById(groupId, cancellationToken);

            var groupMembers = await _groupMemberService.GetAllGroupMembers(groupId, user.ID);

            var groupCompletedJobs = (await _requestService.GetGroupRequestsAsync(groupId, true, cancellationToken))
                                     .SelectMany(r => r.JobBasics).Where(j => j.JobStatus.Equals(JobStatuses.Done));
            var groupCredentials = await _groupService.GetGroupCredentials(groupId);

            var getEachUser = groupMembers.Select(async(userInGroup) =>
            {
                return(new VolunteerViewModel()
                {
                    DateJoined = userInGroup.UserRoleAudit.Where(ur => ur.Action == GroupAction.AddMember && ur.Role == GroupRoles.Member && ur.Success).LastOrDefault()?.DateRequested ?? DateTime.MinValue,
                    Roles = userInGroup.GroupRoles,
                    User = await _userService.GetUserAsync(userInGroup.UserId, cancellationToken),
                    CompletedRequests = groupCompletedJobs.Count(j => j.VolunteerUserID.Equals(userInGroup.UserId)),
                    Credentials = groupCredentials.Select(gc => new AnnotatedGroupCredential(gc, userInGroup.ValidCredentials)).ToList()
                });
            });

            var volunteerListViewModel = new VolunteerListViewModel
            {
                GroupId           = group.GroupId,
                GroupCredentials  = groupCredentials,
                Volunteers        = (await Task.WhenAll(getEachUser)).Where(v => v.User != null),
                UserId            = user.ID,
                UserHasEditRights = await _groupMemberService.GetUserHasRole(user.ID, groupId, GroupRoles.UserAdmin, true, cancellationToken),
            };


            return(View("VolunteerList", volunteerListViewModel));
        }