示例#1
0
        OrganizationHomeViewModel CreateHomeViewModel(OrganizationHomeViewModel inputModel)
        {
            // Organization
            int          id  = inputModel.OrganizationId;
            Organization org = OrganizationService.Get(id);

            // Access level
            var isAdministrator = WebSecurityWrapper.IsUserInRole(Common.Constants.RoleAdmin);
            var isOrgAdmin      = HasOrgAdminAccess(id);

            // Volunteers
            var volunteers = VolunteerService.GetVolunteersByOrganization(id).OrderBy(p => p.IsOrganizationAdmin).Reverse();

            // Resources
            var resources     = AdminService.GetResourceCheckinsForOrganization(id);
            var resourceTypes = AdminService.GetResourceTypes();

            // Commitments
            var commitments = VolunteerService.GetCommitmentsForOrganization(id, false);

            // Lookup lists
            var allDisasters         = DisasterService.GetActiveList();
            var volunteersSelectList = VolunteerService.GetList().OrderBy(person => person.LastName).Select(person => new SelectListItem()
            {
                Value    = person.Id.ToString(),
                Text     = $"{person.LastName}, {person.FirstName} - {person.Email}",
                Selected = (person.Id == inputModel.AddVolunteerId)
            });

            // Disaster info breakdown - get all disasters with any volunteer or resource checkin
            var disasters = GetDisasterInfos(allDisasters, resources, commitments);

            // Create
            var model = new OrganizationHomeViewModel
            {
                OrganizationId        = id,
                Organization          = org,
                IsAdministrator       = isAdministrator,
                IsOrgAdmin            = isOrgAdmin,
                Volunteers            = volunteers,
                OrganizationResources = resources,
                Disasters             = disasters,
                ResourceTypes         = resourceTypes,
                AllDisasters          = allDisasters,
                VolunteersSelectList  = volunteersSelectList
            };

            // Resources form fields
            model.ResourceDisasterId  = inputModel.ResourceDisasterId;
            model.ResourceDescription = inputModel.ResourceDescription;
            model.ResourceQuantity    = inputModel.ResourceQuantity;
            model.ResourceTypeId      = inputModel.ResourceTypeId;
            model.ResourceStartDate   = inputModel.ResourceStartDate;
            model.ResourceEndDate     = inputModel.ResourceEndDate;
            model.ResourceLocation    = inputModel.ResourceLocation;
            model.RemoveResourceId    = inputModel.RemoveResourceId;

            return(model);
        }
示例#2
0
 public ActionResult Index()
 {
     if (_webSecurity.IsUserInRole(Constants.RoleAdmin))
     {
         return(RedirectToAction("List", "Disaster"));
     }
     return(View(GetDefaultViewModel()));
 }
示例#3
0
        public ActionResult Login(LoginModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    // First assume the username was typed in.
                    if (_webSecurity.Login(model.UserNameOrEmail, model.Password, model.RememberMe))
                    {
                        if (_webSecurity.IsUserInRole(model.UserNameOrEmail, Constants.RoleAdmin))
                        {
                            return(RedirectToAction("List", "Disaster"));
                        }
                        return(RedirectToLocal(returnUrl));
                    }

                    // If login fails, assume the email was typed in instead.
                    var user = _volunteerSvc.FindUserByEmail(model.UserNameOrEmail);
                    if (user != null)
                    {
                        if (_webSecurity.Login(user.UserName, model.Password, model.RememberMe))
                        {
                            if (_webSecurity.IsUserInRole(user.UserName, Constants.RoleAdmin))
                            {
                                return(RedirectToAction("List", "Disaster"));
                            }
                            return(RedirectToLocal(returnUrl));
                        }
                    }
                }
                catch (UserNotActivatedException)
                {
                    ModelState.AddModelError("", "Your account has to be confirmed by the link sent in the email before you can login.");
                    return(View(model));
                }
            }

            // If we got this far, something failed, redisplay form
            ModelState.AddModelError("", "The username/email or password provided is incorrect.");
            return(View(model));
        }