Beispiel #1
0
        /// <summary>
        /// Total budget
        /// </summary>
        /// <param name="programId"></param>
        /// <returns></returns>
        public SnapshotDTO GetProgramBudgetTotal(List <int> programIds)
        {
            var dto = SnapshotQueries.CreateGetProgramBudgetTotalQuery(Context, programIds);

            return(dto);
        }
        public void TestCreateGetProgramBudgetTotalQuery()
        {
            var sourceId    = 1;
            var recipientId = 2;
            MoneyFlowSourceRecipientType programType;
            MoneyFlowSourceRecipientType projectType;
            MoneyFlowStatus actual;

            programType = new MoneyFlowSourceRecipientType
            {
                MoneyFlowSourceRecipientTypeId = MoneyFlowSourceRecipientType.Program.Id,
                TypeName = MoneyFlowSourceRecipientType.Program.Value
            };
            projectType = new MoneyFlowSourceRecipientType
            {
                MoneyFlowSourceRecipientTypeId = MoneyFlowSourceRecipientType.Project.Id,
                TypeName = MoneyFlowSourceRecipientType.Project.Value
            };
            actual = new MoneyFlowStatus
            {
                MoneyFlowStatusId   = MoneyFlowStatus.Actual.Id,
                MoneyFlowStatusName = MoneyFlowStatus.Actual.Value
            };

            var endDate = DateTime.UtcNow;

            var program = new Program
            {
                ProgramId = sourceId,
                Name      = "program"
            };
            var project = new Project
            {
                ProjectId = recipientId,
                Name      = "project",
                EndDate   = endDate
            };
            var moneyFlow = new MoneyFlow
            {
                SourceProgramId    = sourceId,
                RecipientProjectId = recipientId,
                SourceProgram      = program,
                RecipientProject   = project,
                SourceType         = programType,
                SourceTypeId       = programType.MoneyFlowSourceRecipientTypeId,
                RecipientType      = projectType,
                RecipientTypeId    = projectType.MoneyFlowSourceRecipientTypeId,
                MoneyFlowStatus    = actual,
                MoneyFlowStatusId  = actual.MoneyFlowStatusId,
                TransactionDate    = DateTimeOffset.UtcNow,
                Value             = 100.00m,
                Description       = "desc",
                FiscalYear        = 1995,
                MoneyFlowId       = 10,
                ParentMoneyFlowId = 100
            };
            var moneyFlow2 = new MoneyFlow
            {
                SourceProgramId    = sourceId,
                RecipientProjectId = recipientId,
                SourceProgram      = program,
                RecipientProject   = project,
                SourceType         = programType,
                SourceTypeId       = programType.MoneyFlowSourceRecipientTypeId,
                RecipientType      = projectType,
                RecipientTypeId    = projectType.MoneyFlowSourceRecipientTypeId,
                MoneyFlowStatus    = actual,
                MoneyFlowStatusId  = actual.MoneyFlowStatusId,
                TransactionDate    = DateTimeOffset.UtcNow,
                Value             = 150.00m,
                Description       = "desc",
                FiscalYear        = 1995,
                MoneyFlowId       = 11,
                ParentMoneyFlowId = 110
            };

            project.RecipientProjectMoneyFlows.Add(moneyFlow);
            project.RecipientProjectMoneyFlows.Add(moneyFlow2);
            program.Projects.Add(project);

            context.Programs.Add(program);
            context.Projects.Add(project);
            context.MoneyFlows.Add(moneyFlow);
            context.MoneyFlows.Add(moneyFlow2);

            List <int> programIds = new List <int>();

            programIds.Add(program.ProgramId);
            var results = SnapshotQueries.CreateGetProgramBudgetTotalQuery(context, programIds);

            Assert.AreEqual(0, results.DataValue);
        }