Exemple #1
0
        private void SetProperties(v_site site, bool loadChildren)
        {
            SiteId                      = site.site_id;
            SiteName                    = site.name;
            CountryId                   = site.country_id ?? 0;
            CountryName                 = site.country_name;
            SiteTypeFieldId             = site.site_type_fieldid;
            SiteTypeValue               = site.site_type_value;
            AdministrativeDivisionId1   = site.administrative_division_id_1;
            AdministrativeDivisionName1 = site.administrative_division_name_1;
            AdministrativeDivisionType1 = site.administrative_division_type_1;
            AdministrativeDivisionId2   = site.administrative_division_id_2;
            AdministrativeDivisionName2 = site.administrative_division_name_2;
            AdministrativeDivisionType2 = site.administrative_division_type_2;
            AdministrativeDivisionId3   = site.administrative_division_id_3;
            AdministrativeDivisionName3 = site.administrative_division_name_3;
            AdministrativeDivisionType3 = site.administrative_division_type_3;
            AdministrativeDivisionId4   = site.administrative_division_id_4;
            AdministrativeDivisionName4 = site.administrative_division_name_4;
            AdministrativeDivisionType4 = site.administrative_division_type_4;
            FundingTypeFieldId          = site.funding_type_fieldid;
            FundingTypeValue            = site.funding_type_value;
            Partner                     = site.partner;
            Longitude                   = site.longitude;
            Latitude                    = site.latitude;
            QIIndexScoreFieldId         = site.qi_index_score_fieldid;
            QIIndexScoreValue           = site.qi_index_score_value;
            PopulationDensityFieldId    = site.rural_urban_fieldid;
            PopulationDensityValue      = site.rural_urban_value;
            OtherKeyInformation         = site.other_key_information;
            Active                      = site.active;

            if (loadChildren)
            {
                using (Entity context = new Entity())
                {
                    IsFavorite = context.t_user.Find(Identity.CurrentUser.Id).favorite_sites?.Select(e => e.site_id).Contains(site.site_id) ?? false;

                    t_site t_site = context.t_site.Find(site.site_id);

                    ICollection <t_note> notes = t_site.notes;
                    Notes = notes.Select(e => new Note(e)).ToArray();

                    ICollection <t_activity> activities =
                        t_site
                        .activities
                        .Select(e => e.activity)
                        .Where(e => (e.active.HasValue && e.active.Value) ||
                               (e.createdby_userid == Identity.CurrentUser.Id) ||
                               (Identity.CurrentUser.IsInRole(Role.SystemAdministrator)))
                        .ToArray();
                    Activities = activities.Select(e => new Activity(e)).ToArray();
                }
            }
        }
Exemple #2
0
        public User(int userId)
        {
            using (Entity db = new Entity())
            {
                byte languageId = IidCulture.CurrentLanguageId;

                t_user user = db.t_user.Find(userId);

                if (user == null)
                {
                    throw new ArgumentException("Invalid userId: " + UserId);
                }

                v_user[] roles = db.v_user.Where(e => e.user_id == user.user_id).ToArray();

                v_site site = null;
                if (user.site_id.HasValue)
                {
                    site = db.v_site.Find(user.site_id.Value);
                }

                UserId           = user.user_id;
                OrganizationId   = user.organization_id;
                Email            = user.email;
                UserStatusId     = user.user_status_id;
                SiteId           = user.site_id;
                SiteName         = site?.get_name_translated(languageId);
                FirstName        = user.first_name;
                LastName         = user.last_name;
                FullName         = user.first_name + " " + user.last_name + " (" + user.email + ")";
                Phone            = user.phone;
                Title            = user.title;
                LastLogin        = user.last_login_activity;
                CreatedByUserId  = user.createdby_userid;
                CreatedDate      = user.created_date;
                UpdatedDate      = user.updated_date;
                UpdatedByUserId  = user.updatedby_userid;
                UserRoleFieldIds = roles.Select(e => e.user_role_fieldid).ToArray();
                UserRoleValues   = roles.Select(e => e.user_role_fieldid_value).ToArray();
                Active           = user.active;

                var userAccess = db.v_user_access.Where(e => e.user_id == userId);
                AssignedActivities = userAccess.Where(e => e.access_level_type == "Activity").OrderBy(e => e.activity_name).ToArray();
                AssignedCountries  = userAccess.Where(e => e.access_level_type == "Country").OrderBy(e => e.country).ToArray();
                AssignedRegions    = userAccess.Where(e => e.access_level_type == "Regional").OrderBy(e => e.access_level_name).ToArray();
                AssignedSites      = userAccess.Where(e => e.access_level_type == "Site").OrderBy(e => e.site_name).ToArray();

                // Get all active sites. If the user is assigned to an inactive site, include it, too!
                int inactiveSiteId = (site != null && site.active == false) ? site.site_id : 0;
                Expression <Func <v_site, bool> > predicate = e => e.active == true || e.site_id == inactiveSiteId;
                AllSites = SelectLists.GetSites(predicate, true);
            }
        }
Exemple #3
0
        public Site(int siteId)
        {
            using (Entity context = new Entity())
            {
                v_site site = context.v_site.Where(e => e.site_id == siteId).FirstOrDefault();
                if (site == null)
                {
                    throw new ArgumentException("Invalid siteId: " + siteId);
                }

                SetProperties(site, true);
            }
        }
Exemple #4
0
 public Site(v_site site)
 {
     SetProperties(site, false);
 }