public async Task <ActionResult <int> > Count([FromBody] KnowledgeGroup_KnowledgeGroupFilterDTO KnowledgeGroup_KnowledgeGroupFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            KnowledgeGroupFilter KnowledgeGroupFilter = ConvertFilterDTOToFilterEntity(KnowledgeGroup_KnowledgeGroupFilterDTO);

            KnowledgeGroupFilter = KnowledgeGroupService.ToFilter(KnowledgeGroupFilter);
            int count = await KnowledgeGroupService.Count(KnowledgeGroupFilter);

            return(count);
        }
        private KnowledgeGroupFilter ConvertFilterDTOToFilterEntity(KnowledgeGroup_KnowledgeGroupFilterDTO KnowledgeGroup_KnowledgeGroupFilterDTO)
        {
            KnowledgeGroupFilter KnowledgeGroupFilter = new KnowledgeGroupFilter();

            KnowledgeGroupFilter.Selects   = KnowledgeGroupSelect.ALL;
            KnowledgeGroupFilter.Skip      = KnowledgeGroup_KnowledgeGroupFilterDTO.Skip;
            KnowledgeGroupFilter.Take      = KnowledgeGroup_KnowledgeGroupFilterDTO.Take;
            KnowledgeGroupFilter.OrderBy   = KnowledgeGroup_KnowledgeGroupFilterDTO.OrderBy;
            KnowledgeGroupFilter.OrderType = KnowledgeGroup_KnowledgeGroupFilterDTO.OrderType;

            KnowledgeGroupFilter.Id           = KnowledgeGroup_KnowledgeGroupFilterDTO.Id;
            KnowledgeGroupFilter.Name         = KnowledgeGroup_KnowledgeGroupFilterDTO.Name;
            KnowledgeGroupFilter.Code         = KnowledgeGroup_KnowledgeGroupFilterDTO.Code;
            KnowledgeGroupFilter.StatusId     = KnowledgeGroup_KnowledgeGroupFilterDTO.StatusId;
            KnowledgeGroupFilter.DisplayOrder = KnowledgeGroup_KnowledgeGroupFilterDTO.DisplayOrder;
            KnowledgeGroupFilter.Description  = KnowledgeGroup_KnowledgeGroupFilterDTO.Description;
            KnowledgeGroupFilter.CreatedAt    = KnowledgeGroup_KnowledgeGroupFilterDTO.CreatedAt;
            KnowledgeGroupFilter.UpdatedAt    = KnowledgeGroup_KnowledgeGroupFilterDTO.UpdatedAt;
            return(KnowledgeGroupFilter);
        }
        public async Task <ActionResult <List <KnowledgeGroup_KnowledgeGroupDTO> > > List([FromBody] KnowledgeGroup_KnowledgeGroupFilterDTO KnowledgeGroup_KnowledgeGroupFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            KnowledgeGroupFilter KnowledgeGroupFilter = ConvertFilterDTOToFilterEntity(KnowledgeGroup_KnowledgeGroupFilterDTO);

            KnowledgeGroupFilter = KnowledgeGroupService.ToFilter(KnowledgeGroupFilter);
            List <KnowledgeGroup> KnowledgeGroups = await KnowledgeGroupService.List(KnowledgeGroupFilter);

            List <KnowledgeGroup_KnowledgeGroupDTO> KnowledgeGroup_KnowledgeGroupDTOs = KnowledgeGroups
                                                                                        .Select(c => new KnowledgeGroup_KnowledgeGroupDTO(c)).ToList();

            return(KnowledgeGroup_KnowledgeGroupDTOs);
        }
        public async Task <FileResult> ExportTemplate([FromBody] KnowledgeGroup_KnowledgeGroupFilterDTO KnowledgeGroup_KnowledgeGroupFilterDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            MemoryStream memoryStream = new MemoryStream();

            using (ExcelPackage excel = new ExcelPackage(memoryStream))
            {
                #region KnowledgeGroup
                var KnowledgeGroupHeaders = new List <string[]>()
                {
                    new string[] {
                        "Id",
                        "Name",
                        "Code",
                        "StatusId",
                        "DisplayOrder",
                        "Description",
                    }
                };
                List <object[]> KnowledgeGroupData = new List <object[]>();
                excel.GenerateWorksheet("KnowledgeGroup", KnowledgeGroupHeaders, KnowledgeGroupData);
                #endregion

                #region Status
                var StatusFilter = new StatusFilter();
                StatusFilter.Selects   = StatusSelect.ALL;
                StatusFilter.OrderBy   = StatusOrder.Id;
                StatusFilter.OrderType = OrderType.ASC;
                StatusFilter.Skip      = 0;
                StatusFilter.Take      = int.MaxValue;
                List <Status> Statuses = await StatusService.List(StatusFilter);

                var StatusHeaders = new List <string[]>()
                {
                    new string[] {
                        "Id",
                        "Code",
                        "Name",
                    }
                };
                List <object[]> StatusData = new List <object[]>();
                for (int i = 0; i < Statuses.Count; i++)
                {
                    var Status = Statuses[i];
                    StatusData.Add(new Object[]
                    {
                        Status.Id,
                        Status.Code,
                        Status.Name,
                    });
                }
                excel.GenerateWorksheet("Status", StatusHeaders, StatusData);
                #endregion
                excel.Save();
            }
            return(File(memoryStream.ToArray(), "application/octet-stream", "KnowledgeGroup.xlsx"));
        }