Ejemplo n.º 1
0
        public SearchResultObject searchPhase(string phase, bool newReq)
        {
            SearchResultObject result = null;
            int RetryCount            = Credentials.Count;

            while (RetryCount-- > 0)
            {
                try
                {
                    result = Current.searchPhase(phase, newReq);
                    break;
                }
                catch (RateLimitException)
                {
                    if (RetryCount == 0)
                    {
                        throw;
                    }
                    if (!Settings.Default.AutoSwitchCredApiLimit)
                    {
                        throw;
                    }
                    SelectNextCredential();
                }
            }
            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Danh sách nhóm quyền đang kích hoạt
        /// </summary>
        /// <returns></returns>
        public SearchResultObject <GroupEntity> GetSelectGroup()
        {
            db = new TimeAttendanceEntities();
            SearchResultObject <GroupEntity> result = new SearchResultObject <GroupEntity>();

            try
            {
                var listResult = (from a in db.Group.AsNoTracking()
                                  where a.Status.HasValue && a.Status.Value == Constants.UnLock
                                  orderby a.Name ascending
                                  select new GroupEntity()
                {
                    GroupId = a.GroupId,
                    Name = a.Name,
                }).ToList();

                result.ListResult = listResult;

                return(result);
            }
            catch (Exception ex)
            {
                throw new ErrorException(ErrorMessage.ERR001, ex.InnerException);
            }
        }
Ejemplo n.º 3
0
        private static void GetTargetSearchResult(TwitterApi twitter, string target, bool isNewReq, HashSet <string> targetLists)
        {
            Console.WriteLine($"Search {target}...");
            string json = twitter.searchPhase(Uri.EscapeDataString(target), isNewReq);

            if (!string.IsNullOrWhiteSpace(json))
            {
                SearchResultObject result = JsonConvert.DeserializeObject <SearchResultObject>(json);
                while (result.search_metadata.count > 0)
                {
                    targetLists.UnionWith(result.statuses.Select(x => x.user.id_str));
                    result =
                        JsonConvert.DeserializeObject <SearchResultObject>(
                            twitter.searchPhase(result.search_metadata.next_results, false));
                    if (result?.search_metadata.next_results == null)
                    {
                        break;
                    }
                }
            }
            else
            {
                Console.WriteLine("There is no result.");
            }
        }
Ejemplo n.º 4
0
        protected SearchResultObject ToSearchResultObject(MangaItem item)
        {
            if (Equals(item, null))
            {
                return(null);
            }
            SearchResultObject SearchResultObject = item.ToSearchResultObject();

            SearchResultObject.ExtensionName     = SearchResultObject.Cover.ExtensionName = ExtensionDescriptionAttribute.Name;
            SearchResultObject.ExtensionLanguage = SearchResultObject.Cover.ExtensionLanguage = ExtensionDescriptionAttribute.Language;
            return(SearchResultObject);
        }
        public HttpResponseMessage SearchUserCustomer(UserSearchCondition userSearchConditionEntity)
        {
            try
            {
                SearchResultObject <UserSearchResult> result = _userBusiness.SearchUserCustomer(userSearchConditionEntity);

                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message, ex.InnerException);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }
Ejemplo n.º 6
0
        public HttpResponseMessage SearchUserEventLog(UserEventLogSearchCondition model, string saveOption)
        {
            try
            {
                SearchResultObject <UserEventLogSearchResult> result = EventLogBusiness.GetInstance().SearchUserEventLog(model, saveOption);

                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message, ex.InnerException);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }
Ejemplo n.º 7
0
        public SearchResultObject <GroupSearchResult> SearchGroupUser(GroupUserSearchCondition searchCondition)
        {
            db = new TimeAttendanceEntities();

            SearchResultObject <GroupSearchResult> searchResult = new SearchResultObject <GroupSearchResult>();

            try
            {
                List <string> userDelete = db.User.AsNoTracking().Where(r => r.DeleteFlg == Constants.DeleteTrue).Select(p => p.UserId).ToList();
                var           listmodel  = (from a in db.Group.AsNoTracking()
                                            join b in db.UserGroup.AsNoTracking() on a.GroupId equals b.GroupId into ab
                                            select new GroupSearchResult()
                {
                    GroupId = a.GroupId,
                    Name = a.Name,
                    HomePage = a.HomePage,
                    Status = a.Status,
                    Description = a.Description,
                    CreateBy = a.CreateBy,
                    CreateDate = a.CreateDate,
                    UpdateBy = a.UpdateBy,
                    UpdateDate = a.UpdateDate,
                    CountUser = ab.Where(r => !userDelete.Any(w => w.Equals(r.UserId))).Count(),
                }).AsQueryable();
                if (!string.IsNullOrEmpty(searchCondition.Name))
                {
                    listmodel = listmodel.Where(r => r.Name.ToLower().Contains(searchCondition.Name.ToLower()));
                }
                if (!string.IsNullOrEmpty(searchCondition.Description))
                {
                    listmodel = listmodel.Where(r => r.Description.ToLower().Contains(searchCondition.Description.ToLower()));
                }
                if (searchCondition.Status.HasValue)
                {
                    listmodel = listmodel.Where(r => r.Status.HasValue && r.Status.Value == searchCondition.Status.Value);
                }

                searchResult.TotalItem  = listmodel.Select(r => r.GroupId).Count();
                searchResult.ListResult = SQLHelpper.OrderBy(listmodel, searchCondition.OrderBy, searchCondition.OrderType).Skip((searchCondition.PageNumber - 1) * searchCondition.PageSize)
                                          .Take(searchCondition.PageSize)
                                          .ToList();

                return(searchResult);
            }
            catch (Exception ex)
            {
                throw new ErrorException(ErrorMessage.ERR001, ex.InnerException);
            }
        }
        public HttpResponseMessage SearchGroupUser(GroupUserSearchCondition userSearchConditionEntity, [FromUri] int pageSize, [FromUri] int pageNumber)
        {
            try
            {
                userSearchConditionEntity.PageSize   = pageSize;
                userSearchConditionEntity.PageNumber = pageNumber;
                SearchResultObject <GroupSearchResult> result = _groupUserBusiness.SearchGroupUser(userSearchConditionEntity);

                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message, ex.InnerException);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }
 public static MangaObject ConvertToMangaObject(this SearchResultObject value)
 {
     return(new MangaObject()
     {
         Name = value.Name,
         Description = value.Description,
         Locations = { new LocationObject()
                       {
                           Url = value.Url,
                           ExtensionName = value.ExtensionName,
                           ExtensionLanguage = value.ExtensionLanguage
                       } },
         CoverLocations = { value.Cover },
         Authors = value.Authors,
         Artists = value.Artists,
         Rating = value.Rating
     });
 }
Ejemplo n.º 10
0
        public SearchResultObject <UserSearchResult> SearchUserCustomer(UserSearchCondition searchCondition)
        {
            db = new TimeAttendanceEntities();
            SearchResultObject <UserSearchResult> searchResult = new SearchResultObject <UserSearchResult>();

            try
            {
                var listmodel = (from a in db.User.AsNoTracking()
                                 where a.DeleteFlg == Constants.DeleteFalse && (string.IsNullOrEmpty(searchCondition.Type) || a.Type.Equals(searchCondition.Type))
                                 join c in db.UserGroup.AsNoTracking() on a.UserId equals c.UserId into ac
                                 from acv in ac.DefaultIfEmpty()
                                 join d in db.Group.AsNoTracking() on acv.GroupId equals d.GroupId into cd
                                 from cdv in cd.DefaultIfEmpty()
                                 select new UserSearchResult
                {
                    UserId = a.UserId,
                    UnitId = a.UnitId,
                    Name = a.Name,
                    FullName = a.FullName,
                    BirthDay = a.BirthDay,
                    Agency = a.Agency,
                    Email = a.Email,
                    Role = a.Role,
                    PhoneNumber = a.PhoneNumber,
                    Status = a.Status,
                    Description = a.Description,
                    ImageLink = a.ImageLink,
                    Address = a.Address,
                    CreateBy = a.CreateBy,
                    CreateDate = a.CreateDate,
                    UpdateBy = a.UpdateBy,
                    UpdateDate = a.UpdateDate,
                    GroupId = acv.GroupId,
                    GroupName = cdv != null ? cdv.Name : string.Empty,
                    Type = a.Type,
                }).AsQueryable();

                if (!string.IsNullOrEmpty(searchCondition.GroupId))
                {
                    listmodel = listmodel.Where(r => r.GroupId.Equals(searchCondition.GroupId));
                }
                if (!string.IsNullOrEmpty(searchCondition.Name))
                {
                    listmodel = listmodel.Where(r => r.Name.ToUpper().Contains(searchCondition.Name.ToUpper()));
                }
                if (!string.IsNullOrEmpty(searchCondition.FullName))
                {
                    listmodel = listmodel.Where(r => r.FullName.ToUpper().Contains(searchCondition.FullName.ToUpper()));
                }
                if (searchCondition.Status.HasValue)
                {
                    listmodel = listmodel.Where(r => r.Status.HasValue && r.Status.Value == searchCondition.Status.Value);
                }
                if (!string.IsNullOrEmpty(searchCondition.UnitId))
                {
                    listmodel = listmodel.Where(r => r.UnitId.Equals(searchCondition.UnitId));
                }
                if (!string.IsNullOrEmpty(searchCondition.PhoneNumber))
                {
                    listmodel = listmodel.Where(r => r.PhoneNumber.ToUpper().Contains(searchCondition.PhoneNumber.ToUpper()));
                }
                if (searchCondition.Status.HasValue)
                {
                    listmodel = listmodel.Where(r => r.Status.HasValue && r.Status.Value == searchCondition.Status.Value);
                }

                searchResult.TotalItem = listmodel.Select(r => r.UserId).Count();
                var listResult = SQLHelpper.OrderBy(listmodel, searchCondition.OrderBy, searchCondition.OrderType).Skip((searchCondition.PageNumber - 1) * searchCondition.PageSize)
                                 .Take(searchCondition.PageSize)
                                 .ToList();
                searchResult.ListResult = listResult;
            }

            catch (Exception ex)
            {
                throw new ErrorException(ErrorMessage.ERR001, ex.InnerException);
            }
            return(searchResult);
        }
        public SearchResultObject <UserEventLogSearchResult> SearchUserEventLog(UserEventLogSearchCondition searchCondition, string saveOption)
        {
            db = new TimeAttendanceEntities();
            SearchResultObject <UserEventLogSearchResult> searchResult = new SearchResultObject <UserEventLogSearchResult>();

            try
            {
                var listmodel = (from a in db.UserEventLog.AsNoTracking()
                                 join b in db.User.AsNoTracking() on a.UserId equals b.UserId into ab
                                 from abv in ab.DefaultIfEmpty()
                                 select new UserEventLogSearchResult()
                {
                    UserEventLogId = a.UserEventLogId,
                    UserId = a.UserId,
                    Description = a.Description,
                    LogType = a.LogType,
                    LogTypeName = a.LogType == 0 ? "Truy cập hệ thống" : "Khai thác dữ liệu",
                    Type = abv.Type,
                    CreateDate = a.CreateDate,
                    UserName = abv.Name,
                    FullName = abv.FullName
                }).AsQueryable();

                if (!string.IsNullOrEmpty(searchCondition.UserName))
                {
                    listmodel = listmodel.Where(r => r.UserName != null && r.UserName.ToUpper().Contains(searchCondition.UserName.ToUpper()));
                }
                if (!string.IsNullOrEmpty(searchCondition.UserType))
                {
                    listmodel = listmodel.Where(r => r.Type != null && r.Type.Equals(searchCondition.UserType));
                }
                if (!string.IsNullOrEmpty(searchCondition.UserIdSearch))
                {
                    listmodel = listmodel.Where(r => r.UserId != null && r.UserId.Equals(searchCondition.UserIdSearch));
                }
                if (!string.IsNullOrEmpty(searchCondition.FullName))
                {
                    listmodel = listmodel.Where(r => r.FullName != null && r.FullName.ToUpper().Contains(searchCondition.FullName.ToUpper()));
                }
                if (!string.IsNullOrEmpty(searchCondition.Description))
                {
                    listmodel = listmodel.Where(r => r.Description.ToUpper().Contains(searchCondition.Description.ToUpper()));
                }
                if (searchCondition.LogType.HasValue)
                {
                    listmodel = listmodel.Where(r => r.LogType.HasValue && r.LogType.Value == searchCondition.LogType.Value);
                }
                if (searchCondition.LogDateFrom.HasValue)
                {
                    searchCondition.LogDateFrom = DateTimeUtils.ConvertDateFrom(searchCondition.LogDateFrom);
                    listmodel = listmodel.Where(r => r.CreateDate.HasValue && r.CreateDate >= searchCondition.LogDateFrom);
                }
                if (searchCondition.LogDateTo.HasValue)
                {
                    searchCondition.LogDateTo = DateTimeUtils.ConvertDateTo(searchCondition.LogDateTo);
                    listmodel = listmodel.Where(r => r.CreateDate.HasValue && r.CreateDate <= searchCondition.LogDateTo);
                }

                searchResult.TotalItem = listmodel.Select(r => r.UserEventLogId).Count();
                var listResult = SQLHelpper.OrderBy(listmodel, searchCondition.OrderBy, searchCondition.OrderType).Skip((searchCondition.PageNumber - 1) * searchCondition.PageSize)
                                 .Take(searchCondition.PageSize)
                                 .ToList();


                string pathFile = string.Empty;
                if ((saveOption.Equals("PDF") || saveOption.Equals("XLSX")) && searchResult.TotalItem > 0)
                {
                    if (searchResult.TotalItem > Constants.MAX_RETURN_DATA_ROW)
                    {
                        throw new BusinessException(ErrorMessage.ERR007);
                    }
                    else
                    {
                        pathFile = this.Export(saveOption, listmodel.ToList(), searchCondition);
                    }
                }

                searchResult.ListResult = listResult;
                searchResult.PathFile   = pathFile;
            }
            catch (Exception ex)
            {
                throw new ErrorException(ErrorMessage.ERR001, ex.InnerException);
            }

            return(searchResult);
        }
Ejemplo n.º 12
0
        private async Task <List <MangaObject> > SearchMangaObjectAsync(String SearchTerm, CancellationToken ct, IProgress <Int32> progress)
        {
            List <MangaObject> SearchResults = new List <MangaObject>();

            if (!Equals(progress, null))
            {
                progress.Report(5);
            }

            Boolean firstResponse = true;
            IEnumerable <Task <ExtensionContentResult> > ExtensionContentTasksQuery =
                from Extension in ValidExtensions(CORE.Extensions, CORE.UserConfiguration.EnabledExtensions)
                select LoadExtensionSearchContent(Extension, SearchTerm);

            List <Task <ExtensionContentResult> > ExtensionContentTasks = ExtensionContentTasksQuery.ToList();
            Int32 OriginalExtensionContentTasksCount = ExtensionContentTasks.Count;

            if (!Equals(progress, null))
            {
                progress.Report(10);
            }
            while (ExtensionContentTasks.Count > 0)
            {   // Load Content via Async and process as they complete.
                ct.ThrowIfCancellationRequested();
                Task <ExtensionContentResult> completedTask = await Task.WhenAny(ExtensionContentTasks);

                ExtensionContentTasks.Remove(completedTask);
                ct.ThrowIfCancellationRequested();

                ExtensionContentResult LoadedExtensionContentResult = await completedTask;
                if (!Equals(LoadedExtensionContentResult, null))
                {
                    String Content = LoadedExtensionContentResult.Content;
                    if (LoadedExtensionContentResult.Extension is ISiteExtension)
                    {   // Extension was a ISiteExtension
                        ISiteExtension            SiteExtension       = LoadedExtensionContentResult.Extension as ISiteExtension;
                        List <SearchResultObject> SearchResultObjects = SiteExtension.ParseSearch(Content);
                        foreach (SearchResultObject SearchResultObject in SearchResultObjects)
                        {
                            MangaObject MangaObject = SearchResultObject.ConvertToMangaObject(),
                                                    ExistingMangaObject = SearchResults.FirstOrDefault(_MangaObject =>
                            {       // Locate an Existing MangaObject
                                List <String> ExistingMangaObjectNames = new List <String>(_MangaObject.AlternateNames),
                                MangaObjectNames = new List <String>(MangaObject.AlternateNames);
                                ExistingMangaObjectNames.Insert(0, _MangaObject.Name);
                                MangaObjectNames.Insert(0, MangaObject.Name);

                                ExistingMangaObjectNames = ExistingMangaObjectNames.Select(_ExistingMangaObjectName => SafeAlphaNumeric.Replace(_ExistingMangaObjectName.ToLower(), String.Empty)).ToList();
                                MangaObjectNames         = MangaObjectNames.Select(_MangaObjectNames => SafeAlphaNumeric.Replace(_MangaObjectNames.ToLower(), String.Empty)).ToList();

                                return(ExistingMangaObjectNames.Intersect(MangaObjectNames).Any());
                            });
                            if (Equals(ExistingMangaObject, null))
                            {
                                SearchResults.Add(MangaObject);
                            }
                            else
                            {
                                ExistingMangaObject.Merge(MangaObject);
                            }
                        }
                    }
                    else if (LoadedExtensionContentResult.Extension is IDatabaseExtension)
                    {   // Extension was a IDatabaseExtension
                        IDatabaseExtension    DatabaseExtension = LoadedExtensionContentResult.Extension as IDatabaseExtension;
                        List <DatabaseObject> DatabaseObjects   = DatabaseExtension.ParseSearch(Content);
                        foreach (DatabaseObject DatabaseObject in DatabaseObjects)
                        {
                            MangaObject ExistingMangaObject = SearchResults.FirstOrDefault(_MangaObject =>
                            {   // Locate an Existing MangaObject
                                List <String> ExistingMangaObjectNames = new List <String>(_MangaObject.AlternateNames),
                                DatabaseObjectNames = new List <String>(DatabaseObject.AlternateNames);

                                ExistingMangaObjectNames.Insert(0, _MangaObject.Name);
                                DatabaseObjectNames.Insert(0, DatabaseObject.Name);

                                ExistingMangaObjectNames = ExistingMangaObjectNames.Select(_ExistingMangaObjectName => SafeAlphaNumeric.Replace(_ExistingMangaObjectName.ToLower(), String.Empty)).ToList();
                                DatabaseObjectNames      = DatabaseObjectNames.Select(_DatabaseObjectNames => SafeAlphaNumeric.Replace(_DatabaseObjectNames.ToLower(), String.Empty)).ToList();

                                Int32 IntersectCount = ExistingMangaObjectNames.Intersect(DatabaseObjectNames).Count(),
                                ExistingHalfCount    = (Int32)Math.Ceiling((Double)ExistingMangaObjectNames.Count / 2);
                                return(IntersectCount >= ExistingHalfCount);
                            });
                            if (Equals(ExistingMangaObject, null))
                            {
                                MangaObject databaseMangaObject = new MangaObject();
                                databaseMangaObject.AttachDatabase(DatabaseObject, true, true);
                                SearchResults.Add(databaseMangaObject);
                            }
                            else
                            {
                                if (Equals(ExistingMangaObject.DatabaseLocations.FindIndex(_DatabaseLocation => Equals(
                                                                                               _DatabaseLocation.ExtensionName,
                                                                                               DatabaseExtension.ExtensionDescriptionAttribute.Name)), -1))
                                {
                                    ExistingMangaObject.AttachDatabase(DatabaseObject, preferDatabaseDescription: true);
                                }
                            }
                        }
                    }
                }
                firstResponse = Equals(SearchResults.Count, 0);
                Int32 ExtensionContentTasksProgress = (Int32)Math.Round(((Double)(OriginalExtensionContentTasksCount - ExtensionContentTasks.Count) / (Double)OriginalExtensionContentTasksCount) * 70);
                if (!Equals(progress, null))
                {
                    progress.Report(10 + ExtensionContentTasksProgress);
                }
            }

            if (!Equals(progress, null))
            {
                progress.Report(85);
            }
            ct.ThrowIfCancellationRequested();

            // Remove Database only results
            Int32 RemoveCount = SearchResults.RemoveAll(_ => Equals(_.Locations.Count, 0));

            if (!Equals(progress, null))
            {
                progress.Report(100);
            }
            ct.ThrowIfCancellationRequested();
            return(SearchResults);
        }