Esempio n. 1
0
        private RequestActiveFlags ConcatenateFlags(RequestActiveFlags[] flags)
        {
            RequestActiveFlags reqFlags = RequestActiveFlags.None;

            if (flags == null)
            {
                reqFlags = RequestActiveFlags.Pending;
            }
            else
            {
                foreach (var flag in flags)
                {
                    reqFlags = (reqFlags | flag);
                }
            }

            return(reqFlags);
        }
Esempio n. 2
0
        public static RequestModel GetRequestModel(int?userId, RequestActiveFlags flags)
        {
            RequestModel model = new RequestModel()
            {
                Flags = flags
            };

            bool allUsers = !userId.HasValue;
            bool pending  = flags.HasFlag(RequestActiveFlags.Pending);
            bool approved = flags.HasFlag(RequestActiveFlags.Approved);
            bool Denied   = flags.HasFlag(RequestActiveFlags.Denied);

            // var includePredicate = new Func<IRequestEntity, t_user>(e => e.createdby);

            var wherePredicate = new Func <IRequestEntity, bool>(e =>
                                                                 (allUsers || e.createdby_userid == userId)
                                                                 //&& ((approved && e.updated_date > DateTime.Now.AddDays(-30)) || (!approved))
                                                                 //&& ((Denied && e.updated_date > DateTime.Now.AddDays(-30)) || (!Denied))
                                                                 && ((pending && e.active == null) ||
                                                                     (approved && (e.active ?? false) && e.updated_date > DateTime.Now.AddDays(-30)) ||
                                                                     (Denied && !(e.active ?? true) && e.updated_date > DateTime.Now.AddDays(-30)))
                                                                 );

            using (Entity db = new Entity())
            {
                var projects    = db.t_project.Include(e => e.createdby).Where(wherePredicate).Select(e => new Request((t_project)e));
                var activities  = db.t_activity.Include(e => e.createdby).Where(wherePredicate).Select(e => new Request((t_activity)e));
                var aims        = db.t_aim.Include(e => e.createdby).Where(wherePredicate).Select(e => new Request((t_aim)e));
                var indicators  = db.t_indicator.Include(e => e.createdby).Where(wherePredicate).Select(e => new Request((t_indicator)e));
                var countries   = db.t_country.Include(e => e.createdby).Where(wherePredicate).Select(e => new Request((t_country)e));
                var sites       = db.t_site.Include(e => e.createdby).Where(wherePredicate).Select(e => new Request((t_site)e));
                var users       = db.t_user.Include(e => e.createdby).Where(wherePredicate).Select(e => new Request((t_user)e));
                var attachments = db.t_observation_attachment.Include(e => e.createdby).Where(wherePredicate).Select(e => new Request((t_observation_attachment)e));
                model.Requests = projects.Concat(activities).Concat(aims).Concat(attachments).Concat(countries).Concat(indicators)
                                 .Concat(sites).Concat(users).ToArray();
            }

            return(model);
        }