internal GroupInfoList <object> GroupExpenseReportsBySubmitter()
        {
            var query = from expenseReport in ExpenseReports
                        orderby expenseReport.Status
                        group expenseReport by expenseReport.EmployeeId into g
                        select new
            {
                GroupName = g.Key,
                Count     = g.Count(),
                Amount    = g.Sum(e => e.Amount),
                Items     = g
            };

            var groups = new GroupInfoList <object>();

            foreach (var group in query)
            {
                var groupedExpenses = new GroupInfoList <object>();
                groupedExpenses.Key = string.Format(
                    "{0} ({1} items for {2:C})", group.GroupName, group.Count, group.Amount);
                groupedExpenses.Amount = System.Convert.ToDecimal(group.Amount);
                foreach (var item in groupedExpenses)
                {
                    groupedExpenses.Add(item);
                }
                groups.Add(groupedExpenses);
            }

            return(groups);
        }
Beispiel #2
0
        internal GroupInfoList <object> GroupItemsBySubmitter()
        {
            var query = from item in Charges
                        orderby item.EmployeeId
                        group item by item.EmployeeId into g
                        select new
            {
                GroupName = g.Key,
                Count     = g.Count(),
                Amount    = g.Sum(e => e.TransactionAmount),
                Items     = g
            };

            var groups = new GroupInfoList <object>();

            foreach (var group in query)
            {
                var items = new GroupInfoList <object>();
                items.Key = string.Format(
                    "{0} ({1:C})", group.GroupName, group.Amount);
                items.Amount = System.Convert.ToDecimal(group.Amount);
                foreach (object item in items)
                {
                    items.Add(item);
                }
                groups.Add(items);
            }

            return(groups);
        }
        internal GroupInfoList <object> GroupExpenseReportsByCategory()
        {
            var query = from expenseReport in ExpenseReports
                        orderby expenseReport.Status
                        group expenseReport by expenseReport.Status into g
                        select new
            {
                GroupName = g.Key,
                Count     = g.Count(),
                Amount    = g.Sum(e => e.Amount),
                Items     = g
            };

            var groups = new GroupInfoList <object>();

            foreach (var group in query)
            {
                var    groupedExpenses         = new GroupInfoList <object>();
                string statusTypeName          = null;
                ExpenseReportStatus statusType = (ExpenseReportStatus)group.GroupName;
                switch (statusType)
                {
                case ExpenseReportStatus.Approved:
                    statusTypeName = "Approved";
                    break;

                case ExpenseReportStatus.Pending:
                    statusTypeName = "Pending";
                    break;

                case ExpenseReportStatus.Saved:
                    statusTypeName = "Saved";
                    break;

                default:
                    break;
                }
                groupedExpenses.Key = string.Format(
                    "{0} ({1} items for {2:C})", statusTypeName, group.Count, group.Amount);
                groupedExpenses.Amount = System.Convert.ToDecimal(group.Amount);
                foreach (var item in groupedExpenses)
                {
                    groupedExpenses.Add(item);
                }
                groups.Add(groupedExpenses);
            }

            return(groups);
        }
        internal GroupInfoList <object> GroupItemsBySubmitter()
        {
            var query = from item in this.SummaryItems
                        orderby item.Submitter
                        group item by item.Submitter into g
                        select new
            {
                GroupName = g.Key,
                Count     = g.Count(),
                Amount    = g.Sum(e => e.Amount),
                Items     = g
            };

            var groups = new GroupInfoList <object>();

            foreach (var group in query)
            {
                var items = new GroupInfoList <object>();
                if (group.Count > 0)
                {
                    items.Key     = group.GroupName;
                    items.Summary = string.Format("{0} for {1:C}",
                                                  items.Count, items.Amount);
                }
                else
                {
                    items.Key = group.GroupName;
                }
                items.Amount = System.Convert.ToDecimal(group.Amount);
                foreach (object item in items)
                {
                    items.Add(item);
                }
                groups.Add(items);
            }

            return(groups);
        }