Example #1
0
        private static void GroupBranchOffers()
        {
            var branchOffers = new LoyaltyCardBranchOffer[]
            {
                new LoyaltyCardBranchOffer(1, 1, 10, 50, 20, new[] { 1, 2 }),
                new LoyaltyCardBranchOffer(2, 1, 10, 50, 21, new[] { 3 }),
                new LoyaltyCardBranchOffer(3, 1, 10, 60, 20, new[] { 1, 2 }),
                new LoyaltyCardBranchOffer(4, 2, 11, 70, 25, new[] { 1, 2 }),
                new LoyaltyCardBranchOffer(4, 2, 11, 80, 25, new[] { 1, 2 })
            };

            var grouped = branchOffers.GroupBy(c => new { Card = c.CardId, Merchant = c.MerchantId, Branch = c.BranchId })
                          .Select(g => new
            {
                Card       = g.Key.Card,
                Merchant   = g.Key.Merchant,
                Branch     = g.Key.Branch,
                Offers     = g.Select(i => i.OfferId).ToArray(),
                Categories = g.SelectMany(i => i.Categories).ToArray()
            }).ToArray();
        }
Example #2
0
        private static void GroupBranchOffers()
        {
            var branchOffers = new LoyaltyCardBranchOffer[]
            {
                new LoyaltyCardBranchOffer(1, 1, 10, 50, 20, new[] { 1, 2 }),
                new LoyaltyCardBranchOffer(2, 1, 10, 50, 21, new[] { 3 }),
                new LoyaltyCardBranchOffer(3, 1, 10, 60, 20, new[] { 1, 2 }),
                new LoyaltyCardBranchOffer(4, 2, 11, 70, 25, new[] { 1, 2 }),
                new LoyaltyCardBranchOffer(4, 2, 11, 80, 25, new[] { 1, 2 })
            };

            var grouped = branchOffers.GroupBy(c => new { Card = c.CardId, Merchant = c.MerchantId, Branch = c.BranchId })
                                        .Select(g => new
                                        {
                                            Card = g.Key.Card,
                                            Merchant = g.Key.Merchant,
                                            Branch = g.Key.Branch,
                                            Offers = g.Select(i => i.OfferId).ToArray(),
                                            Categories = g.SelectMany(i => i.Categories).ToArray()
                                        }).ToArray();
        }