Ejemplo n.º 1
0
        private VolunteerViewModel GetDefaultViewModel(VolunteerViewModel viewModel = null)
        {
            var person      = _volunteerSvc.FindByUserId(_webSecurity.CurrentUserId);
            var commitments = (person != null) ?
                              _volunteerSvc.RetrieveCommitments(person.Id, true) :
                              new List <Commitment>().AsEnumerable();

            var clusterCoordinators = (person != null && person.ClusterId.HasValue) ?
                                      _clusterCoordinatorService.GetAllCoordinatorsForCluster(person.ClusterId.Value).ToList() :
                                      new List <ClusterCoordinator>().AsEnumerable();

            var model = new VolunteerViewModel
            {
                Disasters           = _disasterSvc.GetActiveList(),
                MyCommitments       = commitments,
                VolunteerTypes      = _volunteerTypes.GetList(),
                Person              = person,
                ClusterCoordinators = clusterCoordinators
            };

            if (viewModel != null)
            {
                model.SelectedDisasterId = viewModel.SelectedDisasterId;
                model.SelectedStartDate  = viewModel.SelectedStartDate;
                model.SelectedEndDate    = viewModel.SelectedEndDate;
            }

            return(model);
        }
        private VolunteerViewModel GetDefaultViewModel(VolunteerViewModel viewModel = null)
        {
            var person      = _volunteerSvc.FindByUserId(_webSecurity.CurrentUserId);
            var commitments = (person != null) ?
                              _volunteerSvc.RetrieveCommitments(person.Id, true) :
                              new List <Commitment>().AsEnumerable();
            var commitmentForToday = commitments.FirstOrDefault(x => x.StartDate <= DateTime.Today && DateTime.Today <= x.EndDate);

            var clusterCoordinators = (commitmentForToday != null && commitmentForToday.ClusterId.HasValue) ?
                                      _clusterCoordinatorService.GetAllCoordinatorsForCluster(commitmentForToday.ClusterId.Value).ToList() :
                                      new List <ClusterCoordinator>().AsEnumerable();


            List <AvailableAction> availableActions = new List <AvailableAction>();

            if (commitmentForToday != null)
            {
                if (commitmentForToday.Status != CommitmentStatus.Here)
                {
                    availableActions.Add(new AvailableAction
                    {
                        ActionName  = "Checkin",
                        ButtonText  = "Check-in",
                        Description = " and start helping now!",
                        ButtonId    = "check-in-button"
                    });
                }
                if (commitmentForToday.Status == CommitmentStatus.Planned)
                {
                    availableActions.Add(new AvailableAction
                    {
                        ActionName  = "ReportDelay",
                        ButtonText  = "Delayed",
                        Description = " I'll be there when I can.",
                        ButtonId    = "delayed-button",
                        FormId      = "delayed-form"
                    });
                }
                if (commitmentForToday.Status == CommitmentStatus.Here)
                {
                    availableActions.Add(new AvailableAction
                    {
                        ActionName  = "Checkout",
                        ButtonText  = "Check-out",
                        Description = " Thank you for your help today!",
                        ButtonId    = "check-out-button"
                    });
                }
                if (commitmentForToday.Status != CommitmentStatus.Unavailable)
                {
                    availableActions.Add(new AvailableAction
                    {
                        ActionName  = "ReportUnavailable",
                        ButtonText  = "Unavailable",
                        Description = " I can't help you at this time.",
                        ButtonId    = "unavailable-button"
                    });
                }
            }

            var model = new VolunteerViewModel
            {
                Disasters           = _disasterSvc.GetActiveList(),
                DisasterClusters    = _disasterClusterSvc.GetClustersForADisaster(0),
                MyCommitments       = commitments,
                AvailableActions    = availableActions,
                VolunteerTypes      = _volunteerTypes.GetList(),
                Person              = person,
                ClusterCoordinators = clusterCoordinators
            };

            if (viewModel != null)
            {
                model.SelectedDisasterId = viewModel.SelectedDisasterId;
                model.SelectedStartDate  = viewModel.SelectedStartDate;
                model.SelectedEndDate    = viewModel.SelectedEndDate;
                model.SelectedClusterId  = viewModel.SelectedClusterId;

                if (model.SelectedDisasterId != 0)
                {
                    model.DisasterClusters
                        = _disasterClusterSvc.GetClustersForADisaster(model.SelectedDisasterId);
                }
            }

            return(model);
        }