Exemplo n.º 1
0
        //[HttpGet]


        public IActionResult Index(FilterCustomerViewModel filter)
        {
            List <CustomerViewModel> models = new List <CustomerViewModel>();

            var customers = _repository.GetCustomers();

            if (!string.IsNullOrEmpty(filter.Name))
            {
                customers = customers.Where(x => x.Name == filter.Name).ToList();
            }

            if (!string.IsNullOrEmpty(filter.Email))
            {
                customers = customers.Where(x => x.Email == filter.Email).ToList();
            }


            models = customers.Select(x => new CustomerViewModel
            {
                Email = x.Email,
                Name  = x.Name,
                Id    = x.Id
            }).ToList();

            return(View(models));
        }
Exemplo n.º 2
0
        public ActionResult ExportMenuByCustomer2(FilterCustomerViewModel filter)
        {
            List <Customer> allCustomer = new List <Customer>();

            allCustomer = context.Customer.Where(d => DateTime.Compare(d.created_at, filter.criado_em) > 0).ToList();
            var customerModel = Mapper.Map <IEnumerable <CustomerReportViewModel> >(allCustomer);

            List <CustomerByMenuViewModel2> customerByMenuReport = new List <CustomerByMenuViewModel2>();

            foreach (var customer in customerModel)
            {
                CustomerByMenuViewModel2 customerReport = new CustomerByMenuViewModel2();
                foreach (var customerMenu in customer.CustomerMenu)
                {
                    var menu = customerMenu.Menu;
                    int size = 0;
                    customerReport.CustomerName = customer.CustomerName;
                    customerReport.IdCustomer   = customer.id;
                    foreach (var produtoMenu in menu.MenuProduto)
                    {
                        var count = 0;
                        switch (menu.dia)
                        {
                        case 1:
                            customerReport.produtosDomingo.Add(produtoMenu);
                            count = customerReport.produtosDomingo.Count();
                            break;

                        case 2:
                            customerReport.produtosSegunda.Add(produtoMenu);
                            count = customerReport.produtosSegunda.Count();
                            break;

                        case 3:
                            customerReport.produtosTerca.Add(produtoMenu);
                            count = customerReport.produtosTerca.Count();
                            break;

                        case 4:
                            customerReport.produtosQuarta.Add(produtoMenu);
                            count = customerReport.produtosQuarta.Count();
                            break;

                        case 5:
                            customerReport.produtosQuinta.Add(produtoMenu);
                            count = customerReport.produtosQuinta.Count();
                            break;

                        case 6:
                            customerReport.produtosSexta.Add(produtoMenu);
                            count = customerReport.produtosSexta.Count();
                            break;

                        case 7:
                            customerReport.produtosSabado.Add(produtoMenu);
                            count = customerReport.produtosSabado.Count();
                            break;
                        }
                        size = count > size ? count : size;
                    }
                    customerReport.maxQuantity = size;
                }
                customerByMenuReport.Add(customerReport);
            }
            List <CustomerByMenuViewModel> report = new List <CustomerByMenuViewModel>();

            foreach (var customerList in customerByMenuReport)
            {
                for (int i = 0; i < customerList.maxQuantity; i++)
                {
                    CustomerByMenuViewModel customerReport = new CustomerByMenuViewModel();
                    customerReport.IdCustomer   = customerList.IdCustomer;
                    customerReport.CustomerName = customerList.CustomerName;
                    var domingo = customerList.produtosDomingo.ElementAtOrDefault(i);
                    customerReport.ProductNameDomingo     = domingo != null ? domingo.Produto.Nome : "";
                    customerReport.productQuantityDomingo = domingo != null?domingo.quantidade.ToString() : "";

                    var segunda = customerList.produtosSegunda.ElementAtOrDefault(i);
                    customerReport.ProductNameSegunda     = segunda != null ? segunda.Produto.Nome : "";
                    customerReport.productQuantitySegunda = segunda != null?segunda.quantidade.ToString() : "";

                    var terca = customerList.produtosTerca.ElementAtOrDefault(i);
                    customerReport.ProductNameTerca     = terca != null ? terca.Produto.Nome : "";
                    customerReport.productQuantityTerca = terca != null?terca.quantidade.ToString() : "";

                    var quarta = customerList.produtosQuarta.ElementAtOrDefault(i);
                    customerReport.ProductNameQuarta     = quarta != null ? quarta.Produto.Nome : "";
                    customerReport.productQuantityQuarta = quarta != null?quarta.quantidade.ToString() : "";

                    var quinta = customerList.produtosQuinta.ElementAtOrDefault(i);
                    customerReport.ProductNameQuinta     = quinta != null ? quinta.Produto.Nome : "";
                    customerReport.productQuantityQuinta = quinta != null?quinta.quantidade.ToString() : "";

                    var sexta = customerList.produtosSexta.ElementAtOrDefault(i);
                    customerReport.ProductNameSexta     = sexta != null ? sexta.Produto.Nome : "";
                    customerReport.productQuantitySexta = sexta != null?sexta.quantidade.ToString() : "";

                    var sabado = customerList.produtosSabado.ElementAtOrDefault(i);
                    customerReport.ProductNameSabado     = sabado != null ? sabado.Produto.Nome : "";
                    customerReport.productQuantitySabado = sabado != null?sabado.quantidade.ToString() : "";

                    report.Add(customerReport);
                }
            }
            ReportDocument rd       = new ReportDocument();
            var            combined = Path.Combine(Server.MapPath("~/CrystalReports"), "CustomerByMenu.rpt");

            rd.Load(combined);

            rd.SetDataSource(report);

            Response.Buffer = false;
            Response.ClearContent();
            Response.ClearHeaders();

            Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);

            stream.Seek(0, SeekOrigin.Begin);

            rd.Close();
            rd.Dispose();

            return(File(stream, "application/pdf", "MenuByCustomer.pdf"));
        }