public List <MarketEntryDetails> RetrieveMarketEntryDetailsByUser(int id)
        {
            var detailList = new List <MarketEntryDetails>();

            try
            {
                var entries = MarketEntryAccessor.RetrieveMarketEntriesByUser(id);
                foreach (MarketEntry e in entries)
                {
                    var detail = new MarketEntryDetails()
                    {
                        MarketEntry     = e,
                        User            = UserAccessor.RetrieveUserByMarketEntryID(e.MarketEntryID),
                        CollectionEntry = CollectionAccessor.RetrieveCollectionEntryByID(e.CollectionEntryID)
                    };
                    detailList.Add(detail);
                }
            }
            catch (Exception)
            {
                throw;
            }


            return(detailList);
        }
        public List <PurchaseDetails> RetrievePurchaseDetailsByUser(int id)
        {
            var purchaseList = new List <PurchaseDetails>();

            try
            {
                var purchases = MarketEntryAccessor.RetrievePurchasesByUser(id);
                foreach (Purchase e in purchases)
                {
                    var marketEntry       = MarketEntryAccessor.RetrieveMarketEntryById(e.MarketEntryID);
                    var marketEntryDetail = new MarketEntryDetails()
                    {
                        MarketEntry     = marketEntry,
                        User            = UserAccessor.RetrieveUserByMarketEntryID(marketEntry.MarketEntryID),
                        CollectionEntry = CollectionAccessor.RetrieveCollectionEntryByID(marketEntry.CollectionEntryID)
                    };
                    var purhcase = new PurchaseDetails()
                    {
                        MarketEntryDetails = marketEntryDetail,
                        User = UserAccessor.RetrieveUserById(e.UserID)
                    };
                    purchaseList.Add(purhcase);
                }
            }
            catch (Exception)
            {
                throw;
            }


            return(purchaseList);
        }
        public CollectionEntry RetreiveCollectionEntryByID(int?id)
        {
            CollectionEntry entry = null;

            try
            {
                entry = CollectionAccessor.RetreiveCollectionEntryByID(id);
            }
            catch (Exception)
            {
                throw;
            }

            return(entry);
        }
        public List <Creature> RetrieveCreatures()
        {
            List <Creature> creatures = new List <Creature>();

            try
            {
                creatures = CollectionAccessor.RetrieveCreatures();
            }
            catch (Exception)
            {
                throw;
            }

            return(creatures);
        }
        public Collection RetreiveCollectionByID(int?id)
        {
            Collection collection = null;

            try
            {
                collection = CollectionAccessor.RetreiveCollectionByID(id);
            }
            catch (Exception)
            {
                throw;
            }

            return(collection);
        }
        public List <CollectionEntry> RetreiveCollectionEntryListByUserID(int id)
        {
            var entries = new List <CollectionEntry>();

            try
            {
                entries = CollectionAccessor.RetreiveCollectionEntryListByUserID(id);
            }
            catch (Exception)
            {
                throw;
            }

            return(entries);
        }
        public List <CollectionEntry> RetrieveCollectionEntries(int collectionId)
        {
            var entries = new List <CollectionEntry>();

            try
            {
                entries = CollectionAccessor.RetrieveCollectionEntriesByCollectionId(collectionId);
            }
            catch (Exception)
            {
                throw;
            }

            return(entries);
        }
        public int DeactivateCollectionEntry(int collectionEntryID)
        {
            int result = 0;

            try
            {
                result = CollectionAccessor.DeactivateCollectionEntry(collectionEntryID);
            }
            catch (Exception)
            {
                throw;
            }

            return(result);
        }
        public int EditCollectionEntry(CollectionEntry updateEntry, CollectionEntry collectionEntry)
        {
            int result = 0;

            try
            {
                result = CollectionAccessor.UpdateCollectionEntry(updateEntry, collectionEntry);
            }
            catch (Exception)
            {
                throw;
            }

            return(result);
        }
        public int EditCollection(Collection oldCollection, Collection newCollection)
        {
            int result = 0;

            try
            {
                result = CollectionAccessor.UpdateCollection(oldCollection, newCollection);
            }
            catch (Exception)
            {
                throw;
            }

            return(result);
        }
        public List <Collection> RetrieveCollectionList(int userId)
        {
            var collections = new List <Collection>();

            try
            {
                collections = CollectionAccessor.RetrieveCollectionsByUserId(userId);
            }
            catch (Exception)
            {
                throw;
            }

            return(collections);
        }
        public int AddCollection(Collection collection)
        {
            int result = 0;

            try
            {
                result = CollectionAccessor.CreateCollection(collection);
            }
            catch (Exception)
            {
                throw;
            }

            return(result);
        }
        public List <CollectionEntryDetails> RetrieveCollectionEntryDetails(int collectionId)
        {
            var entryDetails = new List <CollectionEntryDetails>();

            try
            {
                var entries = CollectionAccessor.RetrieveCollectionEntriesByCollectionId(collectionId);
                foreach (var item in entries)
                {
                    var entryDetail = new CollectionEntryDetails()
                    {
                        CollectionEntry = item,
                        Creature        = CollectionAccessor.RetrieveCreature(item.CreatureID)
                    };
                    entryDetails.Add(entryDetail);
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(entryDetails);
        }