public CbChecklist CreateChecklist(string title, int collectionId, int typeId)
        {
            var checklist = new CbChecklist
            {
                Title        = title,
                LastModified = DateTime.UtcNow,
                Collection   = _context.CbCollections.Single(x => x.Id == collectionId),
                Type         = _context.CbTypes.Single(x => x.Id == typeId)
            };

            checklist.Coins = CreateChecklistCoinsForNewChecklist(checklist);

            _context.CbChecklists.Add(checklist);
            _context.SaveChanges();

            return(checklist);
        }
        private IList <CbChecklistCoin> CreateChecklistCoinsForNewChecklist(CbChecklist checklist)
        {
            var checklistCoins = new List <CbChecklistCoin>();

            var cbCoins = _coinDataService.GetAllCoins(checklist.Type.Id);

            foreach (var cbCoin in cbCoins)
            {
                var coin = new CbChecklistCoin
                {
                    Coin          = cbCoin,
                    Grade         = CbGrade.NotGraded,
                    Checklist     = checklist,
                    InCollection  = false,
                    ShouldExclude = false,
                    ValueEstimate = 0
                };
                checklistCoins.Add(coin);
            }

            return(checklistCoins);
        }