Ejemplo n.º 1
0
        /// <summary>
        /// Creates the recommendations from db
        /// </summary>
        /// <param name="readerCreator"></param>
        /// <returns></returns>
        public static Recommendations CreateRecommendationsFromDatabase(IDnaDataReaderCreator readerCreator)
        {
            Recommendations recommendations = null;
            // fetch all the lovely intellectual property from the database
            using (IDnaDataReader reader = readerCreator.CreateDnaDataReader("getacceptedentries"))
            {
                reader.Execute();

                // Make sure we got something back
                if (!reader.HasRows || !reader.Read())
                {
                    throw new Exception("Recommendations not found");
                }
                else
                {
                    recommendations = new Recommendations();
                    recommendations.RecommendationsList = new List<Recommendation>();
                    int count = 0;
                    do
                    {
                        Recommendation recommendation = new Recommendation();
                        recommendation.Subject = reader.GetStringNullAsEmpty("Subject");

                        recommendation.GuideStatus = reader.GetInt32NullAsZero("GuideStatus");
                        recommendation.AcceptedStatus = reader.GetByteNullAsZero("AcceptedStatus");

                        recommendation.Original = new ArticleIDs();

                        recommendation.Original.EntryId = reader.GetInt32NullAsZero("OriginalEntryID");
                        recommendation.Original.H2G2Id = reader.GetInt32NullAsZero("Originalh2g2ID");

                        recommendation.Edited = new ArticleIDs();

                        recommendation.Edited.EntryId = reader.GetInt32NullAsZero("EntryID");
                        recommendation.Edited.H2G2Id = reader.GetInt32NullAsZero("h2g2ID");

                        recommendation.Users = new List<UserElement>();

                        UserElement subEditor= new UserElement() { user = User.CreateUserFromReader(reader, "SubEditor") };
                        //User subEditor = User.CreateUserFromReader(reader, "SubEditor");
                        recommendation.Users.Add(subEditor);

                        UserElement scout = new UserElement() { user = User.CreateUserFromReader(reader, "Scout") };
                        //User scout = User.CreateUserFromReader(reader, "Scout");
                        recommendation.Users.Add(scout);

                        DateTime dateAllocated = DateTime.MinValue;
                        DateTime dateReturned = DateTime.MinValue;
                        bool existsDateAllocated = !reader.IsDBNull("DateAllocated");
                        bool existsDateReturned = !reader.IsDBNull("DateReturned");
                        if (existsDateAllocated)
                        {
                            //dateAllocated = reader.GetDateTime("DateAllocated");
                            recommendation.DateAllocated = new DateElement(reader.GetDateTime("DateAllocated"));
                        }
                        //recommendation.DateAllocated = new DateElement(dateAllocated);

                        if (existsDateReturned)
                        {
                            //dateReturned = reader.GetDateTime("DateReturned");
                            recommendation.DateReturned = new DateElement(reader.GetDateTime("DateReturned"));
                        }
                        //recommendation.DateReturned = new DateElement(dateReturned);

                        recommendations.RecommendationsList.Add(recommendation);
                        count++;

                    } while (reader.Read());

                    recommendations.Count = count;
                }
            }
            return recommendations;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates the article search from db
        /// </summary>
        /// <param name="readerCreator"></param>
        /// <returns></returns>
        public static Search CreateUserSearchFromDatabase(IDnaDataReaderCreator readerCreator, int siteId, string searchString, string searchType, bool allowEmails, int startIndex, int itemsPerPage)
        {
            Search search = null;
            int count = 0;

            string query = GenerateANDSearchQuery(searchString);

            // fetch all the lovely intellectual property from the database
            using (IDnaDataReader reader = readerCreator.CreateDnaDataReader("SearchUsersByNameOrEmail"))
            {
                reader.AddParameter("NameOrEmail", query);

                if (allowEmails)
                {
                    reader.AddParameter("searchemails", 1);
                }
                else
                {
                    reader.AddParameter("searchemails", 0);
                }

                reader.AddParameter("SiteID", siteId);
                reader.AddParameter("skip", startIndex);
                reader.AddParameter("show", itemsPerPage);

                reader.Execute();

                // Make sure we got something back
                if (!reader.HasRows || !reader.Read())
                {
                    throw ApiException.GetError(ErrorType.NoResults);
                }
                else
                {
                    search = new Search();
                    search.SearchResults = new SearchResults();
                    search.SearchResults.SearchTerm = searchString;
                    search.SearchResults.Type = searchType;
                    search.SearchResults.StartIndex = startIndex;
                    search.SearchResults.ItemsPerPage = itemsPerPage;
                    search.SearchResults.Total = reader.GetInt32NullAsZero("Total") ;

                    search.SearchResults.UserResults = new List<UserElement>();
                    do
                    {   UserElement user = new UserElement() { user = User.CreateUserFromReader(reader)} ;
                        search.SearchResults.UserResults.Add(user);
                        count++;

                    } while (reader.Read());
                }
                search.SearchResults.Count = count;
            }
            return search;
        }