Ejemplo n.º 1
0
        public async Task <FileStreamResult> Export(string searchString, string selection, ExportType exportType)
        {
            ExportFile file;
            var        data = Enumerable.Empty <Equipment>();

            if (string.IsNullOrEmpty(selection))
            {
                if (searchString == "Find model/date/owner...")
                {
                    data = await _service.GetAll <Equipment>().ToListAsync();
                }
                else
                {
                    data = await EquipmentDataFormatting.Search(_service.GetAll <Equipment>(), searchString);
                }
            }
            else
            {
                var minSerialLength = 4;

                var serials = selection.Trim().Replace("\n", " ").Split(" ");
                serials = serials.Where(s => !string.IsNullOrWhiteSpace(s) && s.Length >= minSerialLength).Distinct().ToArray();

                List <Equipment> temp = new List <Equipment>();
                for (int i = 0; i < serials.Count(); i++)
                {
                    temp.Add(await _service.FirstOrDefault <Equipment>(x => x.Serial == serials[i]).FirstAsync());
                }
                data = temp;
            }

            file = await new ExportService <Equipment>().Export(data, exportType);
            return(new FileStreamResult(new MemoryStream(file.Data), file.ContentType)
            {
                FileDownloadName = file.FileName
            });
        }
Ejemplo n.º 2
0
        public async Task <PagedList <EquipmentViewModel> > IndexRequest <T>(IndexRequestModel request) where T : class
        {
            var pagedList = new PagedList <EquipmentViewModel>();
            var list      = new List <EquipmentViewModel>();
            int count;

            if (string.IsNullOrEmpty(request.Type) is false)
            {
                Enum.TryParse(request.Type, out EquipmentType choiceType);
                count = await _service.Count <Equipment>(x => x.EquipType == choiceType);
            }
            else
            {
                count = await _service.Count <Equipment>();
            }

            var data     = Enumerable.Empty <Equipment>();
            var query    = Enumerable.Empty <Equipment>();
            var searched = false;

            // Search
            if (!string.IsNullOrEmpty(request.SearchString))
            {
                query = await EquipmentDataFormatting.Search(_service.GetAll <Equipment>(), request.SearchString);

                count    = query.Count();
                searched = true;
            }

            // Sort
            if (!string.IsNullOrEmpty(request.SortVariable))
            {
                if (searched)
                {
                    data = EquipmentDataFormatting.Sort <Equipment>(query, request.SortVariable);
                }
                else
                {
                    data = EquipmentDataFormatting.Sort <Equipment>(_service.GetAll <Equipment>(), request.SortVariable);
                }

                foreach (var item in data)
                {
                    list.Add(new EquipmentViewModel()
                    {
                        Equipment = item
                    });
                }

                pagedList.Initialize(list.Skip(request.Page * request.PageSize).Take(request.PageSize), request, count);
            }
            // Index request without modifiers
            else
            {
                data = EquipmentDataFormatting.Sort <Equipment>(_service.GetAll <Equipment>(), "Date_desc");

                foreach (var item in data)
                {
                    list.Add(new EquipmentViewModel()
                    {
                        Equipment = item
                    });
                }

                pagedList.Initialize(list.Skip(request.Page * request.PageSize).Take(request.PageSize), request, count);
            }

            return(pagedList);
        }