using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.ComponentModel.DataAnnotations; using Sleis.Validation.Attribute; using Sleis.Utility; using Sleis.Models; namespace Sleis.ViewModels { public class SelectedFacilityView : BaseViewModel { public virtual List Roles { get; private set; } public virtual List AgencyRoles { get; private set; } public virtual SimpleFacilityModel Facility { get; private set; } public virtual FacilityAddressModel FacilityAddress { get; private set; } public virtual int NumberOfAuthorizedUsers { get; private set; } public SelectedFacilityView(SimpleFacilityModel facility, FacilityAddressModel facilityAddress, List roles, List agencyRoles, int numberOfAuthorizedUsers) { Facility = facility; FacilityAddress = facilityAddress; Roles = roles; AgencyRoles = agencyRoles; NumberOfAuthorizedUsers = numberOfAuthorizedUsers; } #region Helper Properties public virtual string AssignedRoles { get { return RoleUtility.ToDescriptionString(Roles); } } public virtual int Id { get { return (Facility == null) ? 0 : Facility.Id; } } //Workaround for UI needing to display the description atributes of the enum, not the enum itself public virtual string RoleNames { get { if (SessionUtility.CurrentUser.IsAgencyUser()) { return EnumUtility.GetDefaultDescriptionAsString(AgencyRoles); } else { return EnumUtility.GetDefaultDescriptionAsString(Roles); } } } public virtual bool IsFacilityAdmin { get { return Roles != null && Roles.Contains(AppUserRoleType.FacilityAdmin); } } public virtual bool IsFacilityEditor { get { return Roles != null && Roles.Contains(AppUserRoleType.FacilityEditor); } } public virtual bool IsFacilitySubmitter { get { return Roles != null && Roles.Contains(AppUserRoleType.FacilitySubmitter); } } public virtual bool IsFacilityViewer { get { return Roles != null && Roles.Contains(AppUserRoleType.FacilityViewer); } } public virtual bool IsAgencyAdmin { get { return AgencyRoles != null && AgencyRoles.Contains(AppUserRoleType.AgencyAdmin); } } public virtual bool IsAgencyEditor { get { return AgencyRoles != null && AgencyRoles.Contains(AppUserRoleType.AgencyEditor); } } public virtual bool IsAgencySubmitter { get { return AgencyRoles != null && AgencyRoles.Contains(AppUserRoleType.AgencySubmitter); } } public virtual bool IsAgencyViewer { get { return AgencyRoles != null && AgencyRoles.Contains(AppUserRoleType.AgencyViewer); } } public virtual bool IsAgencyAccepter { get { return AgencyRoles != null && AgencyRoles.Contains(AppUserRoleType.AgencyAcceptor); } } #endregion } }