예제 #1
0
        public async Task <PageResultDto <AreaDto> > FilterAreas(PageDto pageDto, string searchKey)
        {
            var query = "@SearchKey is null or (bys_area.name LIKE @SearchKey OR bys_area.code LIKE @SearchKey OR bys_area.address LIKE @SearchKey)";

            var param = new
            {
                SearchKey = searchKey.FormatSearch()
            };

            var count = await this.DatabaseConnectService.Connection.CountAsync <Areas>(x => x
                                                                                        .Where($"{query}")
                                                                                        .WithParameters(param));

            var items = (await this.DatabaseConnectService.Connection.FindAsync <Areas>(x => x
                                                                                        .Where($"{query}")
                                                                                        .WithParameters(param)))
                        .Skip(pageDto.Page * pageDto.PageSize)
                        .Take(pageDto.PageSize)
                        .Select(x => x.ToAreaDto()).ToArray();

            var result = new PageResultDto <AreaDto>
            {
                Items      = items,
                TotalCount = count,
                PageIndex  = pageDto.Page,
                PageSize   = pageDto.PageSize,
                TotalPages = (int)Math.Ceiling(count / (double)pageDto.PageSize),
            };

            return(result);
        }
예제 #2
0
        public IActionResult Delete(List <string> ids)
        {
            var result = new PageResultDto();

            try
            {
                List <InterInvite> parm = new List <InterInvite>();
                foreach (var item in ids)
                {
                    parm.Add(new InterInvite {
                        ID = item
                    });
                }
                var i = _services.Delete <InterInvite>(parm);

                result.Code  = i == 0 ? (int)ResultCode.SUCCESS : (int)ResultCode.INTERNAL_SERVER_ERROR;
                result.Count = ids.Count;
                result.Data  = ids;
            }
            catch (Exception ex)
            {
                result.Code = (int)ResultCode.INTERNAL_SERVER_ERROR;
                result.Msg  = "内部操作错误,请联系管理员或查看错误日志。";
                log.Error($"/{System.Reflection.MethodBase.GetCurrentMethod().Name}方法/错误信息:【{ex.Message}】");
            }
            return(Ok(result));
        }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <PageResultDto <ArticleListDto> > Handle(ArticlePageByCategoryQuery request, CancellationToken cancellationToken)
        {
            StringBuilder sqlBuilder = new StringBuilder(@"select SQL_CALC_FOUND_ROWS Articles.Id,Articles.Title,Articles.Remark,Articles.ReadCount,Articles.likeCount,Articles.CreateTime,ArticleCategory.Category as CategoryName
                                                         from Articles
                                                         LEFT JOIN ArticleCategory on Articles.CategoryId=  ArticleCategory.Id ");

            if (!String.IsNullOrEmpty(request.CategoryId))
            {
                sqlBuilder.Append("where Articles.CategoryId=@CategoryId ");
            }
            sqlBuilder.Append("limit @Skip,@Take;");
            sqlBuilder.Append("SELECT FOUND_ROWS() as Total;");

            var sql            = sqlBuilder.ToString();
            var dapperPageInfo = await _dapper.QueryPage <ArticleListDto>(sql, new { CategoryId = request.CategoryId, Skip = (request.Page - 1) * request.Rows, Take = request.Rows });


            PageResultDto <ArticleListDto> result = new PageResultDto <ArticleListDto>()
            {
                State  = 1,
                Result = new ResultPage <ArticleListDto>()
                {
                    TotalCount = (int)dapperPageInfo.TotalCount,
                    Data       = dapperPageInfo.Data
                }
            };

            return(result);
        }
예제 #4
0
        public IActionResult Delete(List <string> ids)
        {
            var result = new PageResultDto();

            try
            {
                //string parm =$" '{string.Join("','",ids.ToArray())}'";
                List <RetailBrand> parm = new List <RetailBrand>();
                foreach (var item in ids)
                {
                    parm.Add(new RetailBrand {
                        ID = item
                    });
                }
                var i = _services.Delete <RetailBrand>(parm);
                //直接用dapper执行
                //var i =  _dapper.Execute("delete from retail_brand where id = @id", parm);

                result.Code  = i == 0 ? (int)ResultCode.SUCCESS : (int)ResultCode.INTERNAL_SERVER_ERROR;
                result.Count = ids.Count;
                result.Data  = ids;
            }
            catch (Exception ex)
            {
                result.Code = (int)ResultCode.INTERNAL_SERVER_ERROR;
                result.Msg  = "内部操作错误,请联系管理员或查看错误日志。";
                log.Error($"/{System.Reflection.MethodBase.GetCurrentMethod().Name}方法/错误信息:【{ex.Message}】");
            }
            return(Ok(result));
        }
예제 #5
0
        public async virtual Task <PageResultDto <TDto> > List(TListInput input)
        {
            var query = CreateFilterQuery(input.Filter);

            query = CreateListQuery(query);
            var page = new PageResultDto <TDto>();

            //先算数量后排序
            if (IsCalculateCount)
            {
                page.MaxCount = query.Count();
            }
            if (!string.IsNullOrEmpty(input.Order))
            {
                query = query.OrderBy(input.Order);
            }
            query = query.Skip(input.SkipCount);
            if (input.MaxResultCount == 0)
            {
                input.MaxResultCount = 10;
            }
            query      = query.Take(input.MaxResultCount);
            page.Items = (await query.ToListAsync()).Adapt <List <TDto> >();
            return(page);
        }
예제 #6
0
        //public  async Task<List<Student>> GetPaginatedResult(int currentPage, string searchString, string sortBy, int pageSize = 10)
        //{
        //    var query = _studentRepository.GetAll();
        //    if (!string.IsNullOrEmpty(searchString))
        //    {
        //        query = query.Where(s => s.Name.Contains(searchString) || s.Email.Contains(searchString));

        //    }
        //    query = query.OrderBy(sortBy);

        //    return await query.Skip((currentPage - 1) * pageSize).Take(pageSize).AsNoTracking().ToListAsync();
        //}

        public async Task <PageResultDto <Student> > GetPaginatedResult(GetStudentInput input)
        {
            var query = _studentRepository.GetAll();

            if (!string.IsNullOrEmpty(input.FilterText))
            {
                query = query.Where(s => s.Name.Contains(input.FilterText) || s.Email.Contains(input.FilterText));
            }
            var count = query.Count();

            query = query.OrderBy(input.Sorting).Skip((input.CurrentPage - 1) * input.MaxResultCount).Take(input.MaxResultCount);

            var models = await query.AsNoTracking().ToListAsync();

            var dtos = new PageResultDto <Student>
            {
                TotalCount     = count,
                CurrentPage    = input.CurrentPage,
                MaxResultCount = input.MaxResultCount,
                Data           = models,
                FilterText     = input.FilterText,
                Sorting        = input.Sorting
            };

            return(dtos);
        }
예제 #7
0
        public async Task <PageResultDto <Department> > GetPagedDepartmentsList(GetDepartmentInput input)
        {
            var query = _departmentRepository.GetAll();

            if (!string.IsNullOrEmpty(input.FilterText))
            {
                query = query.Where(s => s.Name.Contains(input.FilterText));
            }
            var count = query.Count();

            query = query.OrderBy(input.Sorting).Skip((input.CurrentPage - 1) * input.MaxResultCount).Take(input.MaxResultCount);

            //将查询结果转换为集合加载到内存中
            var models = await query.Include(a => a.Administrator).AsNoTracking().ToListAsync();

            var dtos = new PageResultDto <Department>
            {
                TotalCount     = count,
                CurrentPage    = input.CurrentPage,
                MaxResultCount = input.MaxResultCount,
                Data           = models,
                FilterText     = input.FilterText,
                Sorting        = input.Sorting
            };

            return(dtos);
        }
예제 #8
0
        public async Task <PageResultDto <FeedDto> > SearchAsync(FeedQuerySearch querySearch)
        {
            var query = _unitOfWork.FeedRepository.FindAll();

            if (!string.IsNullOrEmpty(querySearch.SearchKey))
            {
                query = query.Where(x => x.Content.Contains(querySearch.SearchKey));
            }

            if (!string.IsNullOrEmpty(querySearch.UserSlug))
            {
                query = query.Where(x => x.UserSlug.Equals(querySearch.UserSlug));
            }

            var feeds = await query.OrderByDescending(x => x.CreatedAt).Skip(querySearch.GetSkip()).Take(querySearch.GetTake()).ToListAsync();

            var result = new PageResultDto <FeedDto>(await query.CountAsync(), GetTotalPage(await query.CountAsync(), querySearch.GetTake()), feeds.Select(x => x.ToDto()).ToList());

            foreach (var item in result.Items)
            {
                var user = await _unitOfWork.UserRepository
                           .FindAll(x => x.Id.Equals(item.CreatedBy))
                           .Include(x => x.UserDetail)
                           .SingleOrDefaultAsync();

                item.FullName  = $"{user?.UserDetail?.FirstName} {user?.UserDetail?.LastName}";
                item.AvatarUrl = user?.UserDetail?.Avatar ?? $"{ApiUrl}/assets/no_image.png";
                item.UserSlug  = querySearch.UserSlug;
            }

            return(result);
        }
예제 #9
0
        public async Task <PageResultDto <BusDto> > GetAllPagingAsync(GetBusPagingRequestDto request)
        {
            // Select and Join
            var query = from b in _context.Buses
                        where b.IsDeleted == false
                        from dr in _context.Drivers.Where(dr => dr.Id == b.DriverId).DefaultIfEmpty()
                        from m in _context.AppUsers.Where(m => b.MonitorId == m.Id).DefaultIfEmpty()
                        from r in _context.Routes.Where(r => b.RouteId == r.Id).DefaultIfEmpty()
                        select new { b, dr, m, r };

            // Filter
            if (request.LicenseCode != null)
            {
                query = query.Where(x => x.b.LicenseCode.Contains(request.LicenseCode));
            }
            if (request.Status != null)
            {
                query = query.Where(x => (int)x.b.Status == request.Status);
            }
            if (request.DriverName != null)
            {
                query = query.Where(x => x.dr.Name.Contains(request.DriverName));
            }
            if (request.RouteName != null)
            {
                query = query.Where(x => x.r.Name.Contains(request.RouteName));
            }
            // Paging
            int totalRow = await query.CountAsync();

            var data = await query.Skip((request.PageIndex - 1) *request.PageSize)
                       .Take(request.PageSize)
                       .Select(x => new BusDto()
            {
                Id          = x.b.Id,
                LicenseCode = x.b.LicenseCode,
                Name        = x.b.Name,
                MaxSize     = x.b.MaxSize,
                MaxSpeed    = x.b.MaxSpeed,
                Description = x.b.Description,
                Status      = (int)x.b.Status,
                DriverId    = x.dr == null ? -1 : x.dr.Id,
                DriverName  = x.dr == null ? null : x.dr.Name,
                MonitorId   = x.m == null ? Guid.Empty : x.m.Id,
                MonitorName = x.m == null ? null : x.m.FullName,
                RouteId     = x.r == null ? -1 : x.r.Id,
                RouteName   = x.r == null ? null : x.r.Name
            })
                       .ToListAsync();

            // Return
            var pageResutlDto = new PageResultDto <BusDto>()
            {
                StatusCode  = ResponseCode.Success,
                Items       = data,
                TotalRecord = totalRow
            };

            return(pageResutlDto);
        }
예제 #10
0
        public void SearchGroupReturnsStatusOK()
        {
            var countryDto = GetDto(typeof(CountryDto).FullName, DtoRetriveMethods.FakeOne);
            var total      = 1;
            var items      = new List <CountryDto> {
                countryDto
            };
            var pageResultDto = new PageResultDto <CountryDto>(total, items);

            _mockService.Setup(x => x.SearchAsync(It.IsAny <Expression <Func <Country, bool> > >(), 0, 10))
            .Returns(Task.FromResult(pageResultDto));
            var controller = InitController(new[] { _mockService.Object });

            var result = Execute <PageResultDto <CountryDto> >(() => controller.SearchCountry("name"));

            Assert.IsNotNull(result);
            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
            var requestUrl = result.Response.RequestMessage.RequestUri.ToString();

            Assert.AreEqual(_url, requestUrl);
            Assert.AreEqual(API_PREFIX, GetPrefix(requestUrl));
            Assert.IsNotNull(result.Items);
            Assert.AreEqual(result.Items.TotalRecord, pageResultDto.TotalRecord);
            Assert.AreEqual(result.Items.ToTalPage, pageResultDto.ToTalPage);
        }
예제 #11
0
        public async Task <PageResultDto <ShrimpBreedDto> > FilterShrimpBreed(PageDto pageDto, string searchKey)
        {
            var query = new StringBuilder();

            query.Append("@SearchKey is null OR (bys_shrimp_breed.code LIKE @SearchKey OR bys_shrimp_breed.name LIKE @SearchKey OR bys_shrimp_breed.description LIKE @SearchKey)");

            var param = new
            {
                SearchKey = searchKey.FormatSearch()
            };

            var count = await this.DatabaseConnectService.Connection.CountAsync <ShrimpBreed>(x => x
                                                                                              .Where($"{query}")
                                                                                              .WithParameters(param));

            var items = (await this.DatabaseConnectService.Connection.FindAsync <ShrimpBreed>(x => x
                                                                                              .Where($"{query}")
                                                                                              .WithParameters(param)))
                        .Skip(pageDto.Page * pageDto.PageSize)
                        .Take(pageDto.PageSize)
                        .Select(x => x.ToShrimpBreedDto()).ToArray();

            var result = new PageResultDto <ShrimpBreedDto>
            {
                Items      = items,
                TotalCount = count,
                PageIndex  = pageDto.Page,
                PageSize   = pageDto.PageSize,
                TotalPages = (int)Math.Ceiling(count / (double)pageDto.PageSize),
            };

            return(result);
        }
예제 #12
0
        public IActionResult Query(int page = 1, int limit = 20, string search = "")
        {
            var result = new PageResultDto();

            try
            {
                DynamicParameters parm = new DynamicParameters();
                parm.Add("search", search);
                parm.Add("page", page);
                parm.Add("size", limit);
                parm.Add("@count", dbType: System.Data.DbType.Int32, direction: System.Data.ParameterDirection.Output);

                var par = new PageParameters <InterInvite>();
                par.Proc = new PageProc {
                    ProcName = "pr_inter_invite_list", ProcParm = parm, ProcOutName = "count"
                };
                var list = _services.Query(par, out int outCount);

                result.Data  = list;
                result.Count = outCount;
            }
            catch (Exception ex)
            {
                result.Code = (int)ResultCode.INTERNAL_SERVER_ERROR;
                result.Msg  = "内部操作错误,请联系管理员或查看错误日志。";
                log.Error($"/{System.Reflection.MethodBase.GetCurrentMethod().Name}方法/错误信息:【{ex.Message}】");
            }
            return(Ok(result));
        }
예제 #13
0
        public async Task <IHttpActionResult> GetAll()
        {
            var result = await _collection.Find(Builders <NotifyKiosk> .Filter.Where(n => n.UserId.Equals(_userId))).ToListAsync();

            var pageResult = new PageResultDto <NotifyKioskDto>(result.Count(), result.Select(x => Mapper.Map <NotifyKioskDto>(x)).ToArray());

            return(Ok(pageResult));
        }
예제 #14
0
        public async Task <PageResultDto <StopDto> > GetAllPaging(GetStopPagingReqestDto request)
        {
            var query = from s in _context.Stops
                        where s.IsDeleted == false
                        join r in _context.Routes on s.RouteId equals r.Id
                        select new { s, r };

            // Filter
            if (!string.IsNullOrEmpty(request.Name))
            {
                query = query.Where(x => x.s.Name.Contains(request.Name));
            }
            if (!string.IsNullOrEmpty(request.Address))
            {
                query = query.Where(x => x.s.Address.Contains(request.Address));
            }
            if (request.Status >= 0)
            {
                query = query.Where(x => (int)x.s.Status == request.Status);
            }
            if (request.RouteId != null)
            {
                query = query.Where(x => x.s.RouteId == request.RouteId);
            }
            // Paging
            int totalRow = await query.CountAsync();

            var data = await query.Skip((request.PageIndex - 1) *request.PageSize)
                       .Take(request.PageSize)
                       .Select(x => new StopDto()
            {
                Id               = x.s.Id,
                Name             = x.s.Name,
                Address          = x.s.Address,
                Longitude        = x.s.Longitude,
                Latitude         = x.s.Latitude,
                TimePickUp       = x.s.TimePickUp,
                TimeDropOff      = x.s.TimeDropOff,
                NumberOfStudents = x.s.NumberOfStudents,
                Status           = (int)x.s.Status,
                TypeStop         = (int)x.s.TypeStop,
                RouteId          = x.s.RouteId,
                RouteName        = x.r.Name
            }).ToListAsync();

            // Return
            var pageResult = new PageResultDto <StopDto>()
            {
                StatusCode  = ResponseCode.Success,
                Message     = "Thành công",
                TotalRecord = totalRow,
                Items       = data
            };

            return(pageResult);
        }
예제 #15
0
        public async Task <IActionResult> EditAsync()
        {
            //返回值对象
            var result = new PageResultDto();

            //获取表单提交的数据(文件和文本框等)
            var files = Request.Form.Files;
            var para  = Request.Form["data"];

            //将表单数据转为实体对象
            var model = System.Text.Json.JsonSerializer.Deserialize <InterInvite>(para);

            if (model == null || string.IsNullOrEmpty(model.CompanyID))
            {
                result.Code = (int)ResultCode.UNAUTHORIZED;
                result.Msg  = "参数无效";

                return(Ok(result));
            }

            model.State = model.State == "on" ? "0" : "1";
            if (files != null && files.Count > 0)
            {
                var list = await new Common.FileUpload(_host).UploadAsync(files, "brand");
                if (list != null && list.Count > 0)
                {
                    model.Images = list.FirstOrDefault();
                }
            }

            int res;

            try
            {
                if (!string.IsNullOrEmpty(model.ID) && !model.ID.ToString().ToLower().Equals("string"))
                {
                    res = _services.Update <InterInvite>(model);
                }
                else
                {
                    SnowFlakeWork snowFlake = new SnowFlakeWork(1);//雪花ID
                    model.ID = snowFlake.NextID().ToString();
                    res      = _services.Insert <InterInvite>(model);
                }

                result.Count = res > 0 ? 1 : 0;
            }
            catch (Exception ex)
            {
                result.Code = (int)ResultCode.INTERNAL_SERVER_ERROR;
                result.Msg  = "内部操作错误,请联系管理员或查看错误日志。";
                log.Error($"/{System.Reflection.MethodBase.GetCurrentMethod().Name}方法/错误信息:【{ex.Message}】");
            }

            return(Ok(result));
        }
        public override async Task <PageResultDto <ConfigurationMessage> > GetAsync(MessageQueryModel query, CancellationToken cancellationToken = default)
        {
            var result = new PageResultDto <ConfigurationMessage>();

            if (cancellationToken.IsCancellationRequested)
            {
                return(result);
            }

            var sqlParams = new List <object>
            {
                new SqlParameter("@Environment", _source.Environment),
                new SqlParameter("@NameSpace", _source.NameSpace)
            };

            var sqlWhere = new StringBuilder("WHERE [Environment]=@Environment AND [NameSpace]=@NameSpace ");

            if (query.Id.HasValue)
            {
                sqlWhere = sqlWhere.Append("AND [Id]=@Id ");
                sqlParams.Add(new SqlParameter("@Id", query.Id));
            }
            if (!string.IsNullOrEmpty(query.Key))
            {
                sqlWhere = sqlWhere.Append("AND [Key] LIKE CONCAT('%',@Key,'%') ");
                sqlParams.Add(new SqlParameter("@Key", query.Key));
            }

            var sql = $@"SELECT * FROM {GetTableName()} {sqlWhere} ORDER BY [UpdateTime] DESC  offset {query.PageIndex * query.PageSize} rows fetch next {query.PageSize} rows only";

            using var connection = new SqlConnection(_source.DbConnection);
            var reader = connection.ExecuteQuery(sql, sqlParams.ToArray());
            var list   = new List <ConfigurationMessage>();

            while (reader.Read())
            {
                list.Add(new ConfigurationMessage
                {
                    Id          = Convert.ToInt32(reader["Id"]),
                    Key         = reader["Key"].ToString(),
                    Value       = reader["Value"].ToString(),
                    Description = reader["Description"].ToString(),
                    Environment = reader["Environment"].ToString(),
                    NameSpace   = reader["NameSpace"].ToString(),
                    CreateTime  = Convert.ToDateTime(reader["CreateTime"].ToString()),
                    UpdateTime  = Convert.ToDateTime(reader["UpdateTime"].ToString()),
                    UtcTime     = Convert.ToDateTime(reader["UtcTime"].ToString())
                });
            }
            result.Count = await GetCountAsync(cancellationToken);

            result.Items = list;
            return(await Task.FromResult(result));
        }
예제 #17
0
 public PageResultDto<UserDto> Get(int pageSize, int pageIndex)
 {
     var data = this.FacadeService.GetAll(pageSize, pageIndex);
     var result = new PageResultDto<UserDto>
                      {
                          CurrentPage = 0,
                          PageSize = data.Count,
                          Result = data,
                          TotalCount = data.Count,
                          TotalPages = 1
                      };
     return result;
 }
예제 #18
0
        /// <summary>
        /// 分页结果
        /// </summary>
        /// <param name="total"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        protected async Task <PageResultDto <TListDto> > GetPageDto(long total, List <TEntity> data)
        {
            var result = new PageResultDto <TListDto>();

            if (data.Any())
            {
                result.Data = await MapToListDtosAsync(data);

                result.Total = total;
            }

            return(result);
        }
예제 #19
0
 public PageResultDto<CompanyDto> Get()
 {
     var data = this.FacadeService.GetAll();
     var paged = new PageResultDto<CompanyDto>
                     {
                         CurrentPage = 1,
                         PageSize = data.Count,
                         Result = data,
                         TotalCount = data.Count,
                         TotalPages = 1
                     };
     return paged;
 }
예제 #20
0
 public PageResultDto<CharterDto> Get(CharterType charterType, long companyId, int pageIndex, int pageSize)
 {
     var res = new PageResultDto<CharterDto>();
     if (charterType == CharterType.In)
     {
         res = this._charterInFacadeService.GetAll(companyId, pageIndex, pageSize);
     }
     else
     {
         res = this._charterOutFacadeService.GetAll(companyId, pageIndex, pageSize);
     }
     return res;
 }
예제 #21
0
 public PageResultDto<VoyageDto> Get(long companyId, long vesselId)
 {
     var data = this.FacadeService.GetByFilter(companyId, vesselId, true, true);
     var result = new PageResultDto<VoyageDto>
                  {
                      PageSize = data.Count,
                      CurrentPage = 0,
                      TotalCount = data.Count,
                      TotalPages = 1,
                      Result = data
                  };
     return result;
 }
 public PageResultDto<VesselDto> Get(CharterType charterType, long companyId)
 {
     var res = new PageResultDto<VesselDto>();
     if (charterType == CharterType.In)
     {
         res.Result = this._vesselFacadeService.GetOwnedVessels(companyId) as IList<VesselDto>;
     }
     else
     {
         // todo bzcomment
         res.Result = this._vesselFacadeService.GetOwnedOrCharterInVessels(companyId) as IList<VesselDto>;
     }
     return res;
 }
예제 #23
0
        // GET api/charteritem
        public PageResultDto<CharterItemDto> Get(long id,CharterType charterType)
        {
            var res = new PageResultDto<CharterItemDto>();
            if (charterType==CharterType.In)
            {
                res= this._charterInFacadeService.GetAllItem(id,0,0);
            }
            else
            {
                res = this._charterOutFacadeService.GetAllItem(id, 0, 0);
            }

            return res;
        }
예제 #24
0
        public async Task <PageResultDto <UserDto> > GetAllPaging(GetUserPagingRequestDto request)
        {
            var query = _userManager.Users.Where(x => x.IsDeleted == false).AsQueryable();

            if (!string.IsNullOrEmpty(request.UserName))
            {
                query = query.Where(x => x.UserName.Contains(request.UserName));
            }
            if (!string.IsNullOrEmpty(request.FullName))
            {
                query = query.Where(x => x.FullName.Contains(request.FullName));
            }
            if (!string.IsNullOrEmpty(request.PhoneNumber))
            {
                query = query.Where(x => x.PhoneNumber.Contains(request.PhoneNumber));
            }
            if (request.TypeAccount >= 0)
            {
                query = query.Where(x => x.TypeAccount == (TypeAccount)request.TypeAccount);
            }
            //3. Paging
            int totalRow = await query.CountAsync();

            var data = await query.Skip((request.PageIndex - 1) *request.PageSize)
                       .Take(request.PageSize)
                       .Select(x => new UserDto()
            {
                Email       = x.Email,
                PhoneNumber = x.PhoneNumber,
                UserName    = x.UserName,
                Id          = x.Id,
                TypeAccount = (int)x.TypeAccount,
                FullName    = x.FullName,
                Dob         = x.Dob,
                Status      = (int)x.Status,
                Roles       = null
            }).ToListAsync();

            //4. Select and projection
            var pagedResult = new PageResultDto <UserDto>()
            {
                StatusCode  = ResponseCode.Success,
                Message     = "Thành công",
                TotalRecord = totalRow,
                Items       = data
            };

            return(pagedResult);
        }
예제 #25
0
        public PageResultDto<VesselDto> Get(long companyId, int? pageSize = null, int? pageIndex = null)
        {
            var dtos = this.FacadeService.GetCompanyVessels(companyId);

            var result = new PageResultDto<VesselDto>
                         {
                             CurrentPage = 0,
                             PageSize = 0,
                             TotalCount = dtos.Count,
                             Result = dtos,
                             TotalPages = 0
                         };

            return result;
        }
예제 #26
0
        public async Task <PageResultDto <ShrimpCropDto> > FilterShrimpCrop(PageDto pageDto, string searchKey, string farmingLocationId, string shrimpBreedId)
        {
            _logger.LogInformation("start method filter shrimpcrop");

            var query = new StringBuilder();

            query.Append("(@SearchKey is null or (bys_shrimp_crop.name LIKE @SearchKey OR bys_shrimp_crop.code LIKE @SearchKey))");
            query.Append(" AND (@FarmingLocationId is null or bys_shrimp_crop.farming_location_id LIKE @FarmingLocationId)");
            query.Append(" AND (@ShrimpBreedId is null or bys_shrimp_crop.shrimp_breed_id LIKE @ShrimpBreedId)");

            var param = new
            {
                FarmingLocationId = farmingLocationId.FormatSearch(),
                ShrimpBreedId     = shrimpBreedId.FormatSearch(),
                SearchKey         = searchKey.FormatSearch()
            };

            var count = await this.DatabaseConnectService.Connection.CountAsync <ShrimpCrop>(x => x
                                                                                             .Include <FarmingLocation>(join => join.LeftOuterJoin())
                                                                                             .Include <ShrimpBreed>(join => join.LeftOuterJoin())
                                                                                             .Where($"{query}")
                                                                                             .WithParameters(param));

            var items = (await this.DatabaseConnectService.Connection.FindAsync <ShrimpCrop>(x => x
                                                                                             .Include <FarmingLocation>(join => join.LeftOuterJoin())
                                                                                             .Include <ShrimpBreed>(join => join.LeftOuterJoin())
                                                                                             .Include <ShrimpCropManagementFactor>(join => join.LeftOuterJoin())
                                                                                             .Where($"{query}")
                                                                                             .WithParameters(param)))
                        .OrderByDescending(x => x.CreatedAt)
                        .Skip(pageDto.Page * pageDto.PageSize)
                        .Take(pageDto.PageSize)
                        .Select(x => x.ToShrimpCropDto())
                        .ToArray();

            var result = new PageResultDto <ShrimpCropDto>
            {
                Items      = items,
                TotalCount = count,
                PageIndex  = pageDto.Page,
                PageSize   = pageDto.PageSize,
                TotalPages = (int)Math.Ceiling(count / (double)pageDto.PageSize),
            };

            _logger.LogInformation("end method shrimpcrop");

            return(result);
        }
예제 #27
0
        public async Task <PageResultDto <DetailUserResultDto> > FilterUser(PageDto pageDto, string searchKey, string groupId)
        {
            _logger.LogInformation("start method filter user");

            var query = new StringBuilder();

            query.Append("@SearchKey is null OR (bys_account.username LIKE @SearchKey OR bys_user.fullname LIKE @SearchKey OR bys_user.email LIKE @SearchKey) ");
            query.Append("AND (@GroupId is null OR (bys_users_groups.group_id = @GroupId)) ");
            query.Append("AND bys_user.status = @Status");

            var param = new
            {
                SearchKey = searchKey.FormatSearch(),
                GroupId   = groupId,
                Status    = AccountStatus.Active.ToString()
            };

            var count = (await this.DatabaseConnectService.Connection.FindAsync <User>(x => x
                                                                                       .Include <Data.Entity.Account.Account>(j => j.InnerJoin())
                                                                                       .Include <UserGroup>(j => j.LeftOuterJoin())
                                                                                       .Where($"{query}")
                                                                                       .WithParameters(param))).Distinct().Count();

            var items = (await this.DatabaseConnectService.Connection.FindAsync <User>(x => x
                                                                                       .Include <Data.Entity.Account.Account>(j => j.InnerJoin())
                                                                                       .Include <UserGroup>(j => j.LeftOuterJoin())
                                                                                       .Include <Group>(j => j.LeftOuterJoin())
                                                                                       .Where($"{query}")
                                                                                       .WithParameters(param)))
                        .OrderByDescending(x => x.CreatedAt)
                        .Skip(pageDto.Page * pageDto.PageSize)
                        .Take(pageDto.PageSize)
                        .Select(x => x.ToDetailUserDto()).ToArray();

            var result = new PageResultDto <DetailUserResultDto>
            {
                Items      = items,
                TotalCount = count,
                PageIndex  = pageDto.Page,
                PageSize   = pageDto.PageSize,
                TotalPages = (int)Math.Ceiling(count / (double)pageDto.PageSize),
            };

            _logger.LogInformation("end method filter user");

            return(result);
        }
예제 #28
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <PageResultDto <ArticleCategoryDto> > Handle(ArticleCategoryListQuery request, CancellationToken cancellationToken)
        {
            var sql      = "select * from ArticleCategory";
            var entities = await _dapper.QueryAsync <ArticleCategory>(sql);

            PageResultDto <ArticleCategoryDto> result = new PageResultDto <ArticleCategoryDto>()
            {
                State  = 1,
                Result = new ResultPage <ArticleCategoryDto>()
                {
                    TotalCount = entities.Count(),
                    Data       = Mapper.Map <List <ArticleCategoryDto> >(entities)
                }
            };

            return(result);
        }
예제 #29
0
        public async Task <PageResultDto <RouteRoleEntity> > GetAsync(MessageQueryModel query, CancellationToken cancellationToken = default)
        {
            var result = new PageResultDto <RouteRoleEntity>();

            if (cancellationToken.IsCancellationRequested)
            {
                return(result);
            }

            var sqlParams = new List <object>
            {
                new NpgsqlParameter("@IsValid", true)
            };
            var sqlWhere = new StringBuilder("WHERE IsValid=@IsValid ");

            if (!string.IsNullOrEmpty(query.ApiRoute))
            {
                sqlWhere = sqlWhere.Append("AND ApiRoute LIKE CONCAT('%',@ApiRoute,'%')");
                sqlParams.Add(new NpgsqlParameter("@ApiRoute", query.ApiRoute));
            }

            var sql = $@"SELECT * FROM {GetTableName()} {sqlWhere} ORDER BY UpdateTime DESC  LIMIT {query.PageSize} OFFSET {query.PageIndex * query.PageSize}";

            await using var connection = new NpgsqlConnection(_options.Value.DbConnection);
            var reader = connection.ExecuteQuery(sql, sqlParams.ToArray());
            var list   = new List <RouteRoleEntity>();

            while (reader.Read())
            {
                list.Add(new RouteRoleEntity
                {
                    Id         = Convert.ToInt32(reader["Id"]),
                    Roles      = reader["Roles"].ToString().ToObject <List <string> >(),
                    ApiName    = reader["ApiName"].ToString(),
                    ApiRoute   = reader["ApiRoute"].ToString(),
                    IsValid    = Convert.ToBoolean(reader["IsValid"].ToString()),
                    CreateTime = Convert.ToDateTime(reader["CreateTime"].ToString()),
                    UpdateTime = Convert.ToDateTime(reader["UpdateTime"].ToString()),
                });
            }
            result.Count = await GetCountAsync(query, cancellationToken);

            result.Items = list;
            return(await Task.FromResult(result));
        }
예제 #30
0
        public IActionResult Query(string id)
        {
            var result = new PageResultDto();

            try
            {
                result.Code  = (int)ResultCode.SUCCESS;
                result.Data  = _services.QueryFirst <InterInvite>(id);
                result.Count = 1;
            }
            catch (Exception ex)
            {
                result.Code = (int)ResultCode.INTERNAL_SERVER_ERROR;
                result.Msg  = "内部操作错误,请联系管理员或查看错误日志。";
                log.Error($"/{System.Reflection.MethodBase.GetCurrentMethod().Name}方法/错误信息:【{ex.Message}】");
            }
            return(Ok(result));
        }
예제 #31
0
        public IActionResult Update(InterInvite model)
        {
            var result = new PageResultDto();

            try
            {
                var i = _services.Update <InterInvite>(model);
                result.Code  = i == 0 ? (int)ResultCode.SUCCESS : (int)ResultCode.INTERNAL_SERVER_ERROR;
                result.Count = 1;
                result.Data  = model;
            }
            catch (Exception ex)
            {
                result.Code = (int)ResultCode.INTERNAL_SERVER_ERROR;
                result.Msg  = "内部操作错误,请联系管理员或查看错误日志。";
                log.Error($"/{System.Reflection.MethodBase.GetCurrentMethod().Name}方法/错误信息:【{ex.Message}】");
            }
            return(Ok(result));
        }
예제 #32
0
        public PageResultDto <TDestination> Convert(PagedList <TSource> source,
                                                    PageResultDto <TDestination> destination,
                                                    ResolutionContext context)
        {
            var itemMapping = context.Mapper.Map <IEnumerable <TDestination> >(source.Items);

            var pageResultDto = new PageResultDto <TDestination>
            {
                TotalItems  = source.TotalItems,
                Items       = itemMapping.ToList(),
                HasNext     = source.HasNext,
                HasPrevious = source.HasPrevious,
                PageNumber  = source.PageNumber,
                PageSize    = source.PageSize,
                TotalPages  = source.TotalPages
            };

            return(pageResultDto);
        }
        public async Task <PageResultDto <ManagementFactorDto> > FilterManagementFactor(PageDto pageDto, string searchKey, string dataType, string factorGroup)
        {
            var query = new StringBuilder();

            query.Append("(@DataType is null OR bys_management_factor.data_type LIKE @DataType)");
            query.Append(" AND (@FactorGroup is null OR bys_management_factor.factor_group LIKE @FactorGroup)");
            query.Append(" AND (@SearchKey is null or (bys_management_factor.name LIKE @SearchKey OR bys_management_factor.description LIKE @SearchKey))");
            query.Append(" AND bys_management_factor.status = @Status");

            var param = new
            {
                DataType    = dataType.FormatSearch(),
                FactorGroup = factorGroup.FormatSearch(),
                SearchKey   = searchKey.FormatSearch(),
                Status      = EntityStatus.Alive.ToString()
            };

            var factorGroupFromDb = await GetMasterData(CommonConstants.FACTOR_GROUP);

            var count = await this.DatabaseConnectService.Connection.CountAsync <ManagementFactor>(x => x
                                                                                                   .Include <MeasureUnit>(join => join.LeftOuterJoin())
                                                                                                   .Where($"{query}")
                                                                                                   .WithParameters(param));

            var items = (await this.DatabaseConnectService.Connection.FindAsync <ManagementFactor>(x => x
                                                                                                   .Include <MeasureUnit>(join => join.LeftOuterJoin())
                                                                                                   .Where($"{query}")
                                                                                                   .WithParameters(param)))
                        .Skip(pageDto.Page * pageDto.PageSize)
                        .Take(pageDto.PageSize)
                        .Select(x => x.ToManagementFactorDto(factorGroupFromDb.Childs.Where(y => y.Code == x.FactorGroup).FirstOrDefault())).ToArray();

            var result = new PageResultDto <ManagementFactorDto>
            {
                Items      = items,
                TotalCount = count,
                PageIndex  = pageDto.Page,
                PageSize   = pageDto.PageSize,
                TotalPages = (int)Math.Ceiling(count / (double)pageDto.PageSize),
            };

            return(result);
        }
예제 #34
0
        public async Task <PageResultDto <DriverDto> > GetAllPagingAsync(GetDriverPagingRequestDto request)
        {
            var query = _context.Drivers.Where(x => x.IsDeleted == false).AsQueryable();

            // Filter
            if (!string.IsNullOrEmpty(request.Name))
            {
                query = query.Where(x => x.Name.Contains(request.Name));
            }
            if (!string.IsNullOrEmpty(request.PhoneNumber))
            {
                query = query.Where(x => x.PhoneNumber.Contains(request.PhoneNumber));
            }
            if (request.Status >= 0)
            {
                query = query.Where(x => (int)x.Status == request.Status);
            }
            // Paging
            var totalRow = await query.CountAsync();

            var data = await query.Skip((request.PageIndex - 1) *request.PageSize)
                       .Take(request.PageSize)
                       .Select(x => new DriverDto()
            {
                Id          = x.Id,
                Name        = x.Name,
                Address     = x.Address,
                Dob         = x.Dob,
                Email       = x.Email,
                PhoneNumber = x.PhoneNumber,
                Status      = (int)x.Status
            }).ToListAsync();

            var pageResult = new PageResultDto <DriverDto>()
            {
                StatusCode  = ResponseCode.Success,
                TotalRecord = totalRow,
                Message     = "Thực hiện thành công",
                Items       = data
            };

            return(pageResult);
        }
예제 #35
0
        public async Task <PageResultDto <RouteDto> > GetAllPagingAsync(GetRoutePagingRequestDto request)
        {
            var query = _context.Routes.Where(x => x.IsDeleted == false).AsQueryable();

            // Filter
            if (!string.IsNullOrEmpty(request.Name))
            {
                query = query.Where(x => x.Name.Contains(request.Name));
            }
            if (!string.IsNullOrEmpty(request.RouteCode))
            {
                query = query.Where(x => x.RouteCode.Contains(request.RouteCode));
            }
            if (request.Status >= 0)
            {
                query = query.Where(x => (int)x.Status == request.Status);
            }
            // Paging
            int totalRow = await query.CountAsync();

            var data = await query.Skip((request.PageIndex - 1) *request.PageSize)
                       .Take(request.PageSize)
                       .Select(x => new RouteDto()
            {
                Id          = x.Id,
                Name        = x.Name,
                Distance    = x.Distance,
                RouteCode   = x.RouteCode,
                Description = x.Desctiption,
                Status      = (int)x.Status
            }).ToListAsync();

            // Return
            var pageResult = new PageResultDto <RouteDto>()
            {
                TotalRecord = totalRow,
                Message     = "Thực hiện thành công",
                Items       = data
            };

            return(pageResult);
        }
예제 #36
0
        public List<UserDto> GetAll(int pageSize, int pageIndex)
        {
            var fetch = new ListFetchStrategy<FuelUser>().WithPaging(pageSize, pageIndex );

            _userRepository.GetAll(fetch);

            var finalResult = new PageResultDto<UserDto>
                                  {
                                      CurrentPage = pageIndex,
                                      PageSize = pageSize,
                                      Result = _mapper.MapToModel(fetch.PageCriteria.PageResult.Result).ToList(),
                                      TotalCount = fetch.PageCriteria.PageResult.TotalCount,
                                      TotalPages = fetch.PageCriteria.PageResult.TotalPages
                                  };

            foreach (var user in finalResult.Result)
                user.Code = user.FirstName;

            return finalResult.Result.ToList();
        }
예제 #37
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <PageResultDto <MessageOutputDto> > Handle(MessageSkipPageQuery request, CancellationToken cancellationToken)
        {
            var sqlBuilder = new StringBuilder(@"select SQL_CALC_FOUND_ROWS Id,UserName,ImageUrl,Message,CreateTime from Message order by CreateTime Desc limit @skip,@take ;");

            sqlBuilder.Append("SELECT FOUND_ROWS() as Total;");

            var messages = await _dapper.QueryPage <MessageOutputDto>(sqlBuilder.ToString(), new { skip = request.Skip, take = request.Size });

            PageResultDto <MessageOutputDto> result = new PageResultDto <MessageOutputDto>
            {
                State  = 1,
                Result = new ResultPage <MessageOutputDto>()
                {
                    TotalCount = (int)messages.TotalCount,
                    Data       = messages.Data
                }
            };

            return(result);
        }
예제 #38
0
        public IActionResult Query(string id)
        {
            var result = new PageResultDto();

            try
            {
                result.Code = (int)ResultCode.SUCCESS;
                result.Data = _services.QueryFirst <RetailBrand>(id);
                //直接用dapper执行
                //_dapper.QueryFirst<RetailBrand>("select * from retail_brand where id=@id",new { id });
                result.Count = 1;
            }
            catch (Exception ex)
            {
                result.Code = (int)ResultCode.INTERNAL_SERVER_ERROR;
                result.Msg  = "内部操作错误,请联系管理员或查看错误日志。";
                log.Error($"/{System.Reflection.MethodBase.GetCurrentMethod().Name}方法/错误信息:【{ex.Message}】");
            }
            return(Ok(result));
        }
예제 #39
0
 public PageResultDto<CharterItemDto> GetAllItem(long charterId, int pageIndex, int pageSize)
 {
     var res = new PageResultDto<CharterItemDto>();// { Result =   _charterInToDtoMapper.MapToDtoModel(_charterInRepository.GetCharterStartById(charterId)); };
     return res;
 }
예제 #40
0
        public PageResultDto<InvoiceDto> GetByFilter(int companyId, DateTime fromDate, DateTime toDate, string invoiceNumber, int pageSize, int pageIndex, bool submitedState)
        {
            var toDateParam = toDate.Date.AddDays(1);

            var fetch = new ListFetchStrategy<Invoice>()
               .Include(o => o.InvoiceItems)
                .Include(o => o.Supplier)
                .Include(o => o.Transporter)
                //.Include(o => o.Owner)
                //                .Include(o => o.InvoiceRefrence)
                //                .Include(o => o.OrderRefrences)
                .Include(o => o.ApproveWorkFlows)
                .Include(o => o.ApproveWorkFlows.Last().CurrentWorkflowStep)
                .Include(o => o.ApproveWorkFlows.Last().CurrentWorkflowStep.ActorUser)
                //                .Include(c => c.OrderRefrences.Select(d => d.OrderItems))
                .Include(c => c.InvoiceItems.Select(d => d.Good))
                //                .Include(c => c.AdditionalPrices)
                //                .Include(c => c.AdditionalPrices.Select(d=>d.EffectiveFactor))
                .Include(c => c.InvoiceItems.Select(d => d.Good.GoodUnits))
                .WithPaging(pageSize, pageIndex + 1);

            // var invoiceType = _invoiceDtoMapper.MapInvoiceTypeDtoToInvoiceTypeEntity(invoiceTypeDto);
            invoiceRepository.Find(o =>

                (string.IsNullOrEmpty(invoiceNumber) || o.InvoiceNumber.Contains(invoiceNumber)) &&
                (!submitedState || o.State == States.Submitted) &&
               (companyId == -1 || o.OwnerId == companyId)
                && (fromDate == DateTime.MinValue || o.InvoiceDate >= fromDate.Date)
                                                  && (toDate == DateTime.MinValue || o.InvoiceDate <= toDateParam)
                                  , fetch);

            //  _invoiceRepository.Find(o => o.InvoiceType == invoiceType, fetch);

            var invoicesPageResult = fetch.PageCriteria.PageResult;

            //            var d = _invoiceRepository.GetAll();

            //            var invoiceDtos = _invoiceDtoMapper.MapToModel(d);

            var result = new PageResultDto<InvoiceDto>
                             {
                                 CurrentPage = invoicesPageResult.CurrentPage,
                                 PageSize = invoicesPageResult.PageSize,
                                 Result = invoiceDtoMapper.MapToModelWithAllIncludes(invoicesPageResult.Result).ToList(),
                                 TotalCount = invoicesPageResult.TotalCount,
                                 TotalPages = invoicesPageResult.TotalPages,
                             };
            return result;
        }
        //================================================================================
        public PageResultDto<FuelReportDto> GetAll(int pageSize, int pageIndex, bool includeReferencesLookup)
        {
            List<FuelReport> data = fuelReportDomainService.GetAll();

            List<FuelReportDto> mapped = null;

            if (includeReferencesLookup)
                mapped = fuelReportMapper.MapToModel(data, populateFuelReportDetailDtoReferencesLookup).ToList();
            else
                mapped = fuelReportMapper.MapToModel(data).ToList();

            var result = new PageResultDto<FuelReportDto>
            {
                CurrentPage = 1,
                PageSize = 1,
                Result = mapped,
                TotalCount = 1,
                TotalPages = 1
            };

            return result;
        }
        //================================================================================
        public PageResultDto<FuelReportDto> GetByFilter(long companyId, long vesselInCompanyId, int pageSize, int pageIndex, bool includeReferencesLookup)
        {
            PageResult<FuelReport> data = fuelReportDomainService.GetByFilter(companyId, vesselInCompanyId, pageSize, pageIndex);

            List<FuelReportDto> mapped = null;

            if (includeReferencesLookup)
                mapped = fuelReportMapper.MapToModel(data.Result, populateFuelReportDetailDtoReferencesLookup).ToList();
            else
                mapped = fuelReportMapper.MapToModel(data.Result).ToList();

            var result = new PageResultDto<FuelReportDto>
                             {
                                 CurrentPage = data.CurrentPage,
                                 PageSize = data.PageSize,
                                 Result = mapped,
                                 TotalCount = data.TotalCount,
                                 TotalPages = data.TotalPages
                             };

            return result;
        }
예제 #43
0
        //================================================================================
        //private PageResultDto<FuelReportInventoryOperationDto> mapPageResult(PageResult<InventoryOperation> pageResult, GoodDto good)
        //{
        //    var result = new PageResultDto<FuelReportInventoryOperationDto>()
        //    {
        //        CurrentPage = pageResult.CurrentPage,
        //        PageSize = pageResult.PageSize,
        //        TotalCount = pageResult.TotalCount,
        //        TotalPages = pageResult.TotalPages,
        //        Result = inventoryOperationDtoMapper.MapToModel(pageResult.Result).ToList()
        //    };
        //    result.Result.ToList().ForEach(invDto => invDto.Good = good);
        //    return result;
        //}
        //================================================================================
        private PageResultDto<FuelReportInventoryOperationDto> mapPageResult(PageResult<InventoryOperation> pageResult, ScrapDto scrap)
        {
            var invOperationDtos = new List<FuelReportInventoryOperationDto>();

            foreach (var invOpr in pageResult.Result)
            {
                foreach (var detailDto in scrap.ScrapDetails)
                {
                    var invOprDto = inventoryOperationDtoMapper.MapToModel(invOpr);

                    invOprDto.Good = detailDto.Good;

                    invOperationDtos.Add(invOprDto);
                }
            }

            var result = new PageResultDto<FuelReportInventoryOperationDto>()
            {
                CurrentPage = pageResult.CurrentPage,
                PageSize = pageResult.PageSize,
                TotalCount = pageResult.TotalCount * scrap.ScrapDetails.Count,
                Result = invOperationDtos
            };

            return result;
        }
예제 #44
0
        // todo: input parameters must be converted to IPageCritera
        public PageResultDto<OrderDto> GetAll(int pageSize, int pageIndex)
        {
            var fetch = new ListFetchStrategy<Order>().WithPaging(pageSize, pageIndex);
            _orderRepository.GetAll(fetch);

            var finalResult = new PageResultDto<OrderDto>
                                  {
                                      CurrentPage = pageIndex,
                                      PageSize = pageSize,
                                      Result = _orderDtoMapper.MapToModel(fetch.PageCriteria.PageResult.Result.ToList()).ToList(),
                                      TotalCount = fetch.PageCriteria.PageResult.TotalCount,
                                      TotalPages = fetch.PageCriteria.PageResult.TotalPages
                                  };

            return finalResult;
        }
예제 #45
0
        public PageResultDto<OrderDto> GetByFilter(int companyId, int orderCreatorId, string orderTypesString, DateTime fromDate, DateTime toDate, int pageSize, int pageIndex, long? supplierId, long? transporterId, bool includeOrderItem, string orderIdListString, string orderCode, bool submitedState)
        {
            _unitOfWorkScope.LazyLoadingEnabled = false;
            _unitOfWorkScope.ProxyCreationEnabled = false;
            var toDateParam = toDate.Date.AddDays(1);
            var fetch =
                new ListFetchStrategy<Order>().Include(o => o.FromVesselInCompany).Include(o => o.ToVesselInCompany).Include(o => o.Supplier).Include(o => o.Receiver).
                    Include(o => o.Transporter).Include(o => o.Owner).Include(o => o.ApproveWorkFlows).Include
                    (o => o.ApproveWorkFlows.Last().CurrentWorkflowStep).Include(o => o.ApproveWorkFlows.Last().CurrentWorkflowStep.ActorUser).
                    WithPaging(pageSize, pageIndex + 1);

            if (includeOrderItem)
                fetch.Include(c => c.OrderItems);

            var orderTypes = new List<OrderTypes>();
            if (!string.IsNullOrEmpty(orderTypesString))
            {
                var orderTypeDtos = orderTypesString.Split(',');
                orderTypes.AddRange(orderTypeDtos.Where(c => c != "0").Select(item => (OrderTypes) int.Parse(item)));
            }
            var orderlist = new List<long>();
            if (!string.IsNullOrEmpty(orderIdListString))
            {
                var orderArray = orderIdListString.Split(',');
                orderlist.AddRange(orderArray.Where(c => c != "0").Select(long.Parse));
                _orderRepository.Find(o => orderlist.Count == 0 || orderlist.Contains(o.Id), fetch);
            }
            else
            {
                _orderRepository.Find
                    (
                        o =>
                            (orderTypes.Count == 0 || orderTypes.Contains(o.OrderType))

                                && (companyId == -1 || o.OwnerId == companyId)
                                && (!submitedState || o.State == States.Submitted)
                                && (fromDate == DateTime.MinValue || o.OrderDate >= fromDate.Date)
                                && (toDate == DateTime.MinValue || o.OrderDate <= toDateParam)
                                && (supplierId == 0 || supplierId == null || o.SupplierId == supplierId)
                                && (transporterId == 0 || transporterId == null || o.TransporterId == transporterId)
                                && (string.IsNullOrEmpty(orderCode) || o.Code == orderCode)
                                , fetch);

            }
            var ordersPageResult = fetch.PageCriteria.PageResult;

            var result = new PageResultDto<OrderDto>
                             {
                                 CurrentPage = ordersPageResult.CurrentPage,
                                 PageSize = ordersPageResult.PageSize,
                                 Result = _orderDtoMapper.MapToModelWithAllIncludes(ordersPageResult.Result).ToList(),
                                 TotalCount = ordersPageResult.TotalCount,
                                 TotalPages = ordersPageResult.TotalPages,
                             };
            return result;
        }