コード例 #1
0
        public void AppsFilterTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.AgencyUser
            };
            IPermissionsBase target     = PermissionsFactory.GetPermissionsFor(user);
            Func <App, bool> AppsFilter = target.AppsFilter.Compile();
            App a = new App()
            {
                AgencyGroup = new AgencyGroup()
                {
                    Agencies = new List <Agency>()
                    {
                        new Agency()
                        {
                            Id = 0
                        }
                    }
                }
            };

            Assert.IsFalse(AppsFilter(a));
            a.AgencyGroup.Agencies.Add(new Agency()
            {
                Id = 1
            });
            Assert.IsTrue(AppsFilter(a));
        }
コード例 #2
0
        public void ClientsFilterTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.Ser
            };
            IPermissionsBase    target        = PermissionsFactory.GetPermissionsFor(user);
            Func <Client, bool> ClientsFilter = target.ClientsFilter.Compile();
            Client c = new Client()
            {
                Agency = new Agency()
                {
                    AgencyGroup = new AgencyGroup()
                    {
                        Users = new List <User>()
                        {
                            new User()
                            {
                                Id = 0
                            }
                        }
                    }
                }
            };

            Assert.IsFalse(ClientsFilter(c));

            c.Agency.AgencyGroup.Users.Add(user);
            Assert.IsTrue(ClientsFilter(c));
        }
コード例 #3
0
        public void AgencyFilterTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.RegionOfficer
            };
            IPermissionsBase    target       = PermissionsFactory.GetPermissionsFor(user);
            Func <Agency, bool> AgencyFilter = target.AgencyFilter.Compile();
            Agency param = new Agency()
            {
                AgencyGroup = new AgencyGroup()
                {
                    Country = new Country()
                    {
                        Region = new Region()
                        {
                            Users = new List <User>()
                            {
                                new User()
                                {
                                    Id = 0
                                }
                            }
                        }
                    }
                }
            };

            Assert.IsFalse(AgencyFilter(param));
            param.AgencyGroup.Country.Region.Users.Add(user);
            Assert.IsTrue(AgencyFilter(param));
        }
コード例 #4
0
        public void AppBudgetsFilterTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RegionId = 1, RoleId = (int)FixedRoles.RegionOfficer
            };
            IPermissionsBase       target           = PermissionsFactory.GetPermissionsFor(user);
            Func <AppBudget, bool> AppBudgetsFilter = target.AppBudgetsFilter.Compile();
            AppBudget param = new AppBudget()
            {
                App = new App()
                {
                    AgencyGroup = new AgencyGroup()
                    {
                        Country = new Country()
                        {
                            RegionId = 0
                        }
                    }
                }
            };

            Assert.IsFalse(AppBudgetsFilter(param));
            param.App.AgencyGroup.Country.RegionId = 1;
            Assert.IsTrue(AppBudgetsFilter(param));
        }
コード例 #5
0
        public void ClientReportsFilterTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.AgencyUser
            };
            IPermissionsBase          target = PermissionsFactory.GetPermissionsFor(user);
            Func <ClientReport, bool> ClientReportsFilter = target.ClientReportsFilter.Compile();
            ClientReport cr = new ClientReport()
            {
                Client = new Client()
                {
                    AgencyId = 0
                }, SubReport = new SubReport()
                {
                    AppBudgetService = new AppBudgetService()
                    {
                        AgencyId = 1
                    }
                }
            };

            Assert.IsFalse(ClientReportsFilter(cr));
            cr.Client.AgencyId = 1;
            cr.SubReport.AppBudgetService.AgencyId = 0;
            Assert.IsFalse(ClientReportsFilter(cr));
            cr.SubReport.AppBudgetService.AgencyId = 1;
            Assert.IsTrue(ClientReportsFilter(cr));
        }
コード例 #6
0
        public override void Load(ccEntities db, IPermissionsBase permissions, int id)
        {
            base.Load(db, permissions, id);

            this.Comments = db.Comments.Where(f => f.MainReportInternalComments.Any(m => m.Id == id)).OrderByDescending(f => f.Date)
                            .Select(f => new CommentViewModel()
            {
                Content  = f.Content,
                UserName = f.User.UserName,
                Date     = f.Date
            }).OrderByDescending(f => f.Date).ToList();

            switch ((FixedRoles)this.User.RoleId)
            {
            case FixedRoles.Admin:
            case FixedRoles.RegionOfficer:
            case FixedRoles.GlobalOfficer:
                this.CanAddRemarks = true;
                break;

            default:
                this.CanAddRemarks = false;
                break;
            }
        }
コード例 #7
0
        public void SubReportsFilterTest()
        {
            User user = new User()
            {
                AgencyId = 1, RegionId = 1, RoleId = (int)FixedRoles.RegionOfficer
            };
            IPermissionsBase       target           = PermissionsFactory.GetPermissionsFor(user);
            Func <SubReport, bool> SubReportsFilter = target.SubReportsFilter.Compile();
            SubReport param = new SubReport()
            {
                AppBudgetService = new AppBudgetService()
                {
                    Agency = new Agency()
                    {
                        AgencyGroup = new AgencyGroup()
                        {
                            Country = new Country()
                            {
                                RegionId = 0
                            }
                        }
                    }
                }
            };

            Assert.IsFalse(SubReportsFilter(param));
            param.AppBudgetService.Agency.AgencyGroup.Country.RegionId = 1;
            Assert.IsTrue(SubReportsFilter(param));
        }
コード例 #8
0
        public void MainReportsFilterTest()
        {
            User user = new User()
            {
                AgencyId = 1, RoleId = (int)FixedRoles.AgencyUser
            };
            IPermissionsBase        target            = PermissionsFactory.GetPermissionsFor(user);
            Func <MainReport, bool> MainReportsFilter = target.MainReportsFilter.Compile();
            MainReport mr = new MainReport()
            {
                AppBudget = new AppBudget()
                {
                    App = new App()
                    {
                        AgencyGroup = new AgencyGroup()
                        {
                            Agencies = new List <Agency>()
                            {
                                new Agency()
                                {
                                    Id = 1
                                }
                            }
                        }
                    }
                }
            };

            Assert.IsTrue(MainReportsFilter(mr));
            mr.AppBudget.App.AgencyGroup.Agencies.Clear(); //  disallow another agencies mainreports
            Assert.IsFalse(MainReportsFilter(mr));
        }
コード例 #9
0
        public void AppBudgetsFilterTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.Ser
            };
            IPermissionsBase       target           = PermissionsFactory.GetPermissionsFor(user);
            Func <AppBudget, bool> AppBudgetsFilter = target.AppBudgetsFilter.Compile();
            AppBudget ab = new AppBudget()
            {
                App = new App()
                {
                    AgencyGroup = new AgencyGroup()
                    {
                        Users = new List <User>()
                        {
                            new User()
                            {
                                Id = 0
                            }
                        }
                    }
                }
            };

            Assert.IsFalse(AppBudgetsFilter(ab));
            ab.App.AgencyGroup.Users.Add(user);
            Assert.IsTrue(AppBudgetsFilter(ab));
        }
コード例 #10
0
        public void AgencyGroupsFilterTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.AgencyUser
            };
            IPermissionsBase         target             = PermissionsFactory.GetPermissionsFor(user);
            Func <AgencyGroup, bool> AgencyGroupsFilter = target.AgencyGroupsFilter.Compile();
            AgencyGroup param = new AgencyGroup()
            {
                Agencies = new List <Agency>()
                {
                    new Agency()
                    {
                        Users = new List <User>()
                        {
                            new User()
                            {
                                Id = 0
                            }
                        }
                    }
                }
            };

            Assert.IsFalse(AgencyGroupsFilter(param));
            param.Agencies.Add(new Agency()
            {
                Users = new List <User>()
                {
                    user
                }
            });
            Assert.IsTrue(AgencyGroupsFilter(param));
        }
コード例 #11
0
        public override jQueryDataTableResult GetResult(ccEntities db, IPermissionsBase permissions)
        {
            var source =
                from c in db.Clients.Where(permissions.ClientsFilter)
                where c.Id == this.ClientId
                join cr in db.ViewClientReports on c.Id equals cr.ClientId

                join sr in db.SubReports.Where(permissions.SubReportsFilter) on cr.SubReportId equals sr.Id
                where sr.AppBudgetService.Service.TypeId != (int)Service.ServiceTypes.EmergencyAssistance
                where sr.AppBudgetService.Service.ReportingMethodId != (int)Service.ReportingMethods.Homecare &&
                sr.AppBudgetService.Service.ReportingMethodId != (int)Service.ReportingMethods.HomecareWeekly
                let clientReportsCount = sr.ClientReports.Count()
                                         select new ostr
            {
                MrStart         = sr.MainReport.Start,
                MrEnd           = (DateTime)System.Data.Objects.EntityFunctions.AddDays(sr.MainReport.End, -1),
                Quantity        = cr.Quantity,
                Amount          = cr.TotalAmount,
                EstAmount       = clientReportsCount == 0 ? (decimal?)null : sr.Amount / clientReportsCount,
                Cur             = sr.AppBudgetService.AppBudget.App.CurrencyId,
                ServiceId       = sr.AppBudgetService.ServiceId,
                ServiceName     = sr.AppBudgetService.Service.Name,
                ServiceTypeName = sr.AppBudgetService.Service.ServiceType.Name,
                AppName         = sr.AppBudgetService.AppBudget.App.Name,
                FundName        = sr.AppBudgetService.AppBudget.App.Fund.Name,
                MasterFundName  = sr.AppBudgetService.AppBudget.App.Fund.MasterFund.Name,
                SubReportId     = sr.Id,
                MasterFundId    = sr.AppBudgetService.AppBudget.App.Fund.MasterFundId
            };
            var filtered = source;

            if (StartDate.HasValue)
            {
                filtered = filtered.Where(f => f.Date >= this.StartDate);
            }
            if (EndDate.HasValue)
            {
                filtered = filtered.Where(f => f.Date <= this.EndDate);
            }
            if (this.ServiceId.HasValue)
            {
                filtered = filtered.Where(f => f.ServiceId == this.ServiceId);
            }
            if (this.sSortCol_0 == "DateName")
            {
                this.sSortCol_0 = "Date";
            }
            var sorted = filtered.OrderByField(this.sSortCol_0, this.sSortDir_0 == "asc");

            var data = sorted.Skip(this.iDisplayStart).Take(this.iDisplayLength).ToList();

            return(new jQueryDataTableResult
            {
                sEcho = this.sEcho,
                aaData = data,
                iTotalRecords = source.Count(),
                iTotalDisplayRecords = filtered.Count()
            });
        }
コード例 #12
0
        public override jQueryDataTableResult GetResult(ccEntities db, IPermissionsBase permissions)
        {
            var source = from cr in db.EmergencyReports.Where(permissions.EmergencyReportsFilter)
                         .Where(f => GGOnly ? f.SubReport.AppBudgetService.AppBudget.App.Fund.MasterFundId == 73 : true)
                         where cr.ClientId == this.ClientId
                         where cr.SubReport.AppBudgetService.Service.TypeId == (int)Service.ServiceTypes.EmergencyAssistance
                         select new etr
            {
                Date           = cr.ReportDate,
                Amount         = cr.Amount,
                Discretionary  = cr.Discretionary,
                Total          = cr.Total,
                TypeId         = cr.TypeId,
                TypeName       = cr.EmergencyReportType.Name,
                PurposeOfGrant = cr.Remarks,
                Cur            = cr.SubReport.AppBudgetService.AppBudget.App.CurrencyId,
                ServiceId      = cr.SubReport.AppBudgetService.ServiceId,
                ServiceName    = cr.SubReport.AppBudgetService.Service.Name,
                AppName        = cr.SubReport.AppBudgetService.AppBudget.App.Name,
                FundName       = cr.SubReport.AppBudgetService.AppBudget.App.Fund.Name,
                MasterFundName = cr.SubReport.AppBudgetService.AppBudget.App.Fund.MasterFund.Name,
                SubReportId    = cr.SubReport.Id
            };
            var filtered = source;

            if (StartDate.HasValue)
            {
                filtered = filtered.Where(f => f.Date >= this.StartDate);
            }
            if (EndDate.HasValue)
            {
                filtered = filtered.Where(f => f.Date <= this.EndDate);
            }
            if (this.ServiceId.HasValue)
            {
                filtered = filtered.Where(f => f.ServiceId == this.ServiceId);
            }
            if (this.TypeId.HasValue)
            {
                filtered = filtered.Where(f => f.TypeId == this.TypeId);
            }
            if (this.sSortCol_0 == "DateName")
            {
                this.sSortCol_0 = "Date";
            }
            var sorted = filtered.OrderByField(this.sSortCol_0, this.sSortDir_0 == "asc");

            var data = sorted.Skip(this.iDisplayStart).Take(this.iDisplayLength).ToList();

            return(new jQueryDataTableResult
            {
                sEcho = this.sEcho,
                aaData = data,
                iTotalRecords = source.Count(),
                iTotalDisplayRecords = filtered.Count()
            });
        }
コード例 #13
0
        public void CanUpdateExistingClientTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.AgencyUser
            };
            IPermissionsBase target = PermissionsFactory.GetPermissionsFor(user);

            Assert.IsTrue(target.CanUpdateExistingClient);
        }
コード例 #14
0
        public void CanViewCeefFieldsTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.RegionOfficer
            };
            IPermissionsBase target = PermissionsFactory.GetPermissionsFor(user);

            Assert.IsTrue(target.CanEditCeefFields);
        }
コード例 #15
0
        public void CanSeeProgramFieldTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.RegionOfficer
            };
            IPermissionsBase target = PermissionsFactory.GetPermissionsFor(user);

            Assert.IsTrue(target.CanSeeProgramField);
        }
コード例 #16
0
        public void PermissionsFactory_RegionOfficerPremissionsConstructorTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.RegionOfficer
            };
            IPermissionsBase target = PermissionsFactory.GetPermissionsFor(user);

            Assert.IsTrue(true);
        }
        public void CanChangeGfHoursTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.Admin
            };
            IPermissionsBase target = PermissionsFactory.GetPermissionsFor(user);

            Assert.IsTrue(target.CanChangeGfHours);
        }
        public void CanDeleteHcePeriodTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.Admin
            };
            IPermissionsBase target = PermissionsFactory.GetPermissionsFor(user);

            Assert.IsTrue(target.CanDeleteHcePeriod);
        }
        public void AppBudgetServicesFilterTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RegionId = 1, RoleId = (int)FixedRoles.GlobalOfficer
            };
            IPermissionsBase target = PermissionsFactory.GetPermissionsFor(user);
            Func <AppBudgetService, bool> AppBudgetServicesFilter = target.AppBudgetServicesFilter.Compile();

            Assert.IsTrue(AppBudgetServicesFilter(null));
        }
        public void ClientsFilterTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.GlobalOfficer
            };
            IPermissionsBase    target        = PermissionsFactory.GetPermissionsFor(user);
            Func <Client, bool> ClientsFilter = target.ClientsFilter.Compile();

            Assert.IsTrue(ClientsFilter(null));
        }
        public void SubReportsFilterTest()
        {
            User user = new User()
            {
                AgencyId = 1, RegionId = 1, RoleId = (int)FixedRoles.GlobalOfficer
            };
            IPermissionsBase       target           = PermissionsFactory.GetPermissionsFor(user);
            Func <SubReport, bool> SubReportsFilter = target.SubReportsFilter.Compile();

            Assert.IsTrue(SubReportsFilter(null));
        }
        public void AgencyFilterTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.Admin
            };
            IPermissionsBase    target       = PermissionsFactory.GetPermissionsFor(user);
            Func <Agency, bool> AgencyFilter = target.AgencyFilter.Compile();

            Assert.IsTrue(AgencyFilter(null));
        }
コード例 #23
0
 public virtual void Load(ccEntities db, IPermissionsBase permissions, int id)
 {
     this.Id                = id;
     this.MainReport        = db.MainReports.Where(permissions.MainReportsFilter).Single(f => f.Id == this.Id);
     this.AgenencyGroupName = MainReport.AppBudget.App.AgencyGroup.DisplayName;
     this.Start             = MainReport.Start;
     this.End               = MainReport.End;
     this.Period            = new Range <DateTime>()
     {
         Start = MainReport.Start, End = MainReport.End
     };
 }
コード例 #24
0
        public override void Load(ccEntities db, IPermissionsBase permissions, int id)
        {
            base.Load(db, permissions, id);

            this.Comments = db.Comments.Where(f => f.MainReportPostApprovalComments.Any(m => m.Id == id)).OrderByDescending(f => f.Date)
                            .Select(f => new CommentViewModel()
            {
                Id       = f.Id,
                IsFile   = f.IsFile,
                Content  = f.Content,
                UserName = f.User.UserName,
                Date     = f.Date
            }).OrderByDescending(f => f.Date).ToList();
        }
コード例 #25
0
        public void AppBudgetServicesFilterTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.AgencyUser
            };
            IPermissionsBase target = PermissionsFactory.GetPermissionsFor(user);
            Func <AppBudgetService, bool> AppBudgetServicesFilter = target.AppBudgetServicesFilter.Compile();
            AppBudgetService s = new AppBudgetService()
            {
                AgencyId = 0
            };

            Assert.IsFalse(AppBudgetServicesFilter(s));
            s.AgencyId = 1;
            Assert.IsTrue(AppBudgetServicesFilter(s));
        }
        public void PermissionsFactory_AdminPermissionsConstructorTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, RoleId = (int)FixedRoles.Admin
            };
            IPermissionsBase    target       = PermissionsFactory.GetPermissionsFor(user);
            Func <Agency, bool> AgencyFilter = target.AgencyFilter.Compile();

            Assert.IsTrue(AgencyFilter(null));
            Func <Client, bool> ClientsFilter = target.ClientsFilter.Compile();

            Assert.IsTrue(ClientsFilter(null));
            Func <AgencyGroup, bool> AgencyGroupsFilter = target.AgencyGroupsFilter.Compile();

            Assert.IsTrue(AgencyGroupsFilter(null));
        }
コード例 #27
0
        public void AppsFilterTest()
        {
            User user = new User()
            {
                Id = 1, AgencyId = 1, AgencyGroupId = 1, RoleId = (int)FixedRoles.Ser
            };
            IPermissionsBase target     = PermissionsFactory.GetPermissionsFor(user);
            Func <App, bool> AppsFilter = target.AppsFilter.Compile();
            App a = new App()
            {
                AgencyGroupId = 90
            };

            Assert.IsFalse(AppsFilter(a));
            a.AgencyGroupId = 1;
            Assert.IsTrue(AppsFilter(a));
        }
コード例 #28
0
        public override void Load(ccEntities db, IPermissionsBase permissions, int id)
        {
            base.Load(db, permissions, id);

            List <CommentViewModel> commentsList = db.Comments.Where(f => f.MainReportAgencyComments.Any(m => m.Id == id)).OrderByDescending(f => f.Date)
                                                   .Select(f => new CommentViewModel()
            {
                Content  = f.Content,
                UserName = f.User.UserName,
                Date     = f.Date,
                IsFile   = f.IsFile
            }).ToList();

            if ((FixedRoles)this.User.RoleId == FixedRoles.BMF)
            {
                for (var i = 0; i < commentsList.Count; i++)
                {
                    if (commentsList[i].Content.Contains("Minutes") || commentsList[i].Content.Contains("Program Overview"))
                    {
                        commentsList.Remove(commentsList[i]);
                        i--;
                    }
                }
            }

            this.Comments = commentsList;

            switch ((FixedRoles)this.User.RoleId)
            {
            case FixedRoles.Admin:
                this.CanAddRemarks = true;
                break;

            case FixedRoles.AgencyUser:
            case FixedRoles.Ser:
            case FixedRoles.AgencyUserAndReviewer:
            case FixedRoles.SerAndReviewer:
                this.CanAddRemarks = MainReport.EditableStatuses.Contains(this.MainReport.Status);
                break;

            default:
                this.CanAddRemarks = false;
                break;
            }
        }
コード例 #29
0
        public override void LoadData(ccEntities db, IPermissionsBase permissions)
        {
            var services = (from c in db.Clients
                            where c.Id == ClientId
                            from a in db.Services
                            where a.TypeId == (int)Service.ServiceTypes.EmergencyAssistance
                            select new
            {
                id = a.Id,
                name = a.Name
            });

            this.ServicesSelectList = new System.Web.Mvc.SelectList(services, "id", "name");

            var types = db.EmergencyReportTypes.OrderBy(f => f.Name).Select(f => new { Id = f.Id, Name = f.Name });

            this.EmergencyTypesSelectList = new System.Web.Mvc.SelectList(types, "Id", "Name");
        }
コード例 #30
0
        public virtual void LoadData(ccEntities db, IPermissionsBase permissions)
        {
            var services = (from c in db.Clients
                            where c.Id == ClientId
                            from a in c.Agency.AppBudgetServices
                            where a.Service.ReportingMethodId == (int)Service.ReportingMethods.Homecare ||
                            a.Service.ReportingMethodId == (int)Service.ReportingMethods.HomecareWeekly
                            group a by new
            {
                id = a.Service.Id,
                name = a.Service.Name
            } into ag
                            orderby ag.Key.name
                            select ag.Key);


            this.ServicesSelectList = new System.Web.Mvc.SelectList(services, "id", "name");
        }