Exemple #1
0
        public async Task <ActionResult> Export([FromBody] CustomerLeadReport_CustomerLeadReportFilterDTO CustomerLeadReport_CustomerLeadReportFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }


            CustomerLeadFilter CustomerLeadFilter = ConvertFilterDTOToFilterEntity(CustomerLeadReport_CustomerLeadReportFilterDTO);
            //Lấy danh sách CustomerLead
            var CustomerLeads = await CustomerLeadService.List(CustomerLeadFilter);

            List <CustomerLeadReport_CustomerLeadDTO> CustomerLeadDTOs = CustomerLeads.Select(p => new CustomerLeadReport_CustomerLeadDTO(p)).ToList();
            CustomerLeadReport_CustomerLeadReportDTO  CustomerLeadReport_CustomerLeadReportDTO = new CustomerLeadReport_CustomerLeadReportDTO();
            var STT = 1;

            foreach (var item in CustomerLeadDTOs)
            {
                item.STT = STT;
                STT++;
            }
            var      maxDate = CustomerLeadDTOs.Max(p => p.CreatedAt);
            var      minDate = CustomerLeadDTOs.Min(p => p.CreatedAt);
            DateTime Start   = CustomerLeadReport_CustomerLeadReportFilterDTO.LeadTime?.GreaterEqual == null ?
                               minDate :
                               CustomerLeadReport_CustomerLeadReportFilterDTO.LeadTime.GreaterEqual.Value;

            DateTime End = CustomerLeadReport_CustomerLeadReportFilterDTO.LeadTime?.LessEqual == null ?
                           maxDate :
                           CustomerLeadReport_CustomerLeadReportFilterDTO.LeadTime.LessEqual.Value;

            CustomerLeadReport_CustomerLeadReportDTO.CustomerLeads = CustomerLeadDTOs;

            string path = "Templates/CustomerLeadReport.xlsx";

            byte[]       arr    = System.IO.File.ReadAllBytes(path);
            MemoryStream input  = new MemoryStream(arr);
            MemoryStream output = new MemoryStream();
            dynamic      Data   = new ExpandoObject();

            Data.Start         = Start.AddHours(CurrentContext.TimeZone).ToString("dd-MM-yyyy");
            Data.End           = End.AddHours(CurrentContext.TimeZone).ToString("dd-MM-yyyy");
            Data.CustomerLeads = CustomerLeadReport_CustomerLeadReportDTO.CustomerLeads;
            using (var document = StaticParams.DocumentFactory.Open(input, output, "xlsx"))
            {
                document.Process(Data);
            };

            return(File(output.ToArray(), "application/octet-stream", "BaoCaoLead.xlsx"));
        }
Exemple #2
0
        public async Task <ActionResult <CustomerLeadReport_CustomerLeadReportDTO> > List([FromBody] CustomerLeadReport_CustomerLeadReportFilterDTO CustomerLeadReport_CustomerLeadReportFilterDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }
            CustomerLeadFilter CustomerLeadFilter = ConvertFilterDTOToFilterEntity(CustomerLeadReport_CustomerLeadReportFilterDTO);
            //Lấy danh sách CustomerLead
            var CustomerLeads = await CustomerLeadService.List(CustomerLeadFilter);

            List <CustomerLeadReport_CustomerLeadDTO> CustomerLeadDTOs = CustomerLeads.Select(p => new CustomerLeadReport_CustomerLeadDTO(p)).ToList();
            CustomerLeadReport_CustomerLeadReportDTO  CustomerLeadReport_CustomerLeadReportDTO = new CustomerLeadReport_CustomerLeadReportDTO();

            CustomerLeadReport_CustomerLeadReportDTO.CustomerLeads = CustomerLeadDTOs;
            return(CustomerLeadReport_CustomerLeadReportDTO);
        }