using GxPress.Service.Interface.SystemLabel;
using GxPress.Repository.Interface.SystemLabel;
using System.Threading.Tasks;
using GxPress.Common.Page;
using GxPress.Result.SystemLabel;
using System.Collections.Generic;
using GxPress.Request.SystemLabel;

namespace GxPress.Service.Implement.SystemLabel
{
    public class SystemLabelService : ISystemLabelService
    {
        private readonly ISystemLabelRepository systemLabelRepository;
        private readonly ISystemLableMediaRepository systemLableMediaRepository;
        public SystemLabelService(ISystemLabelRepository systemLabelRepository, ISystemLableMediaRepository systemLableMediaRepository)
        {
            this.systemLabelRepository = systemLabelRepository;
            this.systemLableMediaRepository = systemLableMediaRepository;
        }

        public async Task<PagedList<SystemLabelResult>> GetAllPageAsync(SystemLabelRequest request)
        {
            var result = await systemLabelRepository.GetAllPageAsync(request);
            foreach (var item in result.Items)
            {
                item.MediaIds = await systemLableMediaRepository.GetMediaIdsAsync(item.Id, 0);
            }
            return result;
        }
        public async Task<IEnumerable<SystemLabelResult>> GetAllAsync()
        {
            var result = await systemLabelRepository.GetAllAsync();
            return result;
        }
        /// <summary>
        /// 获取明栏分页
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task<PagedList<SystemLabelResult>> GetAllStarLablePageAsync(Common.Page.PageParameter request)
        {
            var result = await systemLabelRepository.GetAllStarLablePageAsync(request);
            foreach (var item in result.Items)
            {
                item.MediaIds = await systemLableMediaRepository.GetMediaIdsAsync(item.Id, 0);
            }
            return result;
        }
        /// <summary>
        /// 获取明栏
        /// </summary>
        /// <returns></returns>
        public async Task<IEnumerable<SystemLabelResult>> GetStarLableAllAsync()
        {
            var result = await systemLabelRepository.GetStarLableAllAsync();
            return result;
        }
    }
}