Example #1
0
        public async Task <IActionResult> ListEquipments([FromQuery] EquipmentsQuery request)
        {
            try
            {
                var result = await _service.GetEquipments(request);

                return(Ok(result));
            }
            catch (BusinessLogicException ex)
            {
                return(BadRequest(new Response
                {
                    Status = false,
                    Message = ex.Message
                }));
            }
            catch (Exception e)
            {
                return(BadRequest(new Response
                {
                    Status = false,
                    //Message = ErrorMessages.UnkownError
                    Message = e.Message
                }));
            }
        }
Example #2
0
        public async Task <Response <EquipmentsDto> > GetEquipments(EquipmentsQuery request)
        {
            var result = _context.Equipment.Include(t => t.Type).
                         Include(b => b.Brand).Include(p => p.Place).AsQueryable();

            ///filtering
            #region filter
            if (!string.IsNullOrEmpty(request.Name))
            {
                result = result.Where(x => x.Name.Contains(request.Name));
            }

            if (!string.IsNullOrEmpty(request.TechnicalCode))
            {
                result = result.Where(x => x.TechnicalCode.Contains(request.TechnicalCode));
            }

            if (!string.IsNullOrEmpty(request.Amval))
            {
                result = result.Where(x => x.Amval.Contains(request.Amval));
            }

            if (!string.IsNullOrEmpty(request.Model))
            {
                result = result.Where(x => x.Model.Contains(request.Model));
            }

            if (!string.IsNullOrEmpty(request.Serial))
            {
                result = result.Where(x => x.Serial.Contains(request.Serial));
            }

            if (request.IsActive == true)
            {
                result = result.Where(x => x.IsActive == request.IsActive);
            }

            if (request.IsInUse == true)
            {
                result = result.Where(x => x.IsActive == request.IsInUse);
            }

            if (!string.IsNullOrEmpty(request.BrandName))
            {
                result = result.Where(b => b.Brand.Name.Contains(request.BrandName));
            }

            if (!string.IsNullOrEmpty(request.TypeName))
            {
                result = result.Where(x => x.Type.Name.Contains(request.TypeName));
            }

            if (!string.IsNullOrEmpty(request.PlaceName))
            {
                result = result.Where(x => x.Place.Name.Contains(request.PlaceName));
            }
            #endregion


            ///pagenating
            int take = request.PageSize;
            int skip = (request.PageId - 1) * take;

            int totalPages = (int)Math.Ceiling(result.Count() / (double)take);

            var finalResult = result.OrderBy(x => x.Name).Skip(skip).Take(take).AsQueryable();
            //----------------
            //   var list = await finalResult.ProjectTo<EquipmentDto>(_mapper.ConfigurationProvider).ToListAsync();
            var resultData = new EquipmentsDto
            {
                //Dtos=list,
                Dtos = await finalResult.Select(d => new EquipmentDto()
                {
                    Id            = d.Id,
                    Name          = d.Name,
                    Amval         = d.Amval,
                    Description   = d.Description,
                    IsActive      = d.IsActive,
                    IsInUse       = d.IsInUse,
                    Model         = d.Model,
                    Serial        = d.Serial,
                    TechnicalCode = d.TechnicalCode,
                    Type          = new EquipmentTypeDto
                    {
                        Id   = d.Type.Id,
                        Name = d.Type.Name
                    },
                    Brand = new EquipmentBrandDto
                    {
                        Id   = d.Brand.Id,
                        Name = d.Brand.Name
                    },
                    Place = new EquipmentPlaceDto
                    {
                        Id   = d.Place.Id,
                        Name = d.Place.Name
                    }
                }).ToListAsync(),
                PageId   = request.PageId,
                PageSize = request.PageSize,
                Total    = await result.CountAsync()
            };

            return(new Response <EquipmentsDto>
            {
                Data = resultData,


                Status = true,
                Message = "success"
            });
        }