public async Task <IActionResult> Get([FromBody] PaginationContract contract)
        {
            try
            {
                var usr = await _userManager.FindByEmailAsync(HttpContext.User.Identity.Name);

                var quotas = _quotaRepository
                             .GetWithInclude(q => q.ClientId == usr.Id, q => q.AdditionalContributions, q => q.City);
                var pagination = contract.Pagination;
                switch (pagination.SortBy)
                {
                case "city":
                    quotas = pagination.Descending
                            ? quotas.OrderByDescending(q => q.City.Name)
                            : quotas.OrderBy(q => q.City.Name);
                    break;

                case "refinancingAmount":
                    quotas = pagination.Descending
                            ? quotas.OrderByDescending(q => q.RefinancingAmount)
                            : quotas.OrderBy(q => q.RefinancingAmount);
                    break;

                case "interestRate":
                    quotas = pagination.Descending
                            ? quotas.OrderByDescending(q => q.InterestRate)
                            : quotas.OrderBy(q => q.InterestRate);
                    break;

                default:
                    quotas = pagination.Descending
                            ? quotas.OrderByDescending(q => q.CreatedAt)
                            : quotas.OrderBy(q => q.CreatedAt);
                    break;
                }

                if (pagination.RowsPerPage > 0)
                {
                    quotas = quotas.Skip((pagination.Page - 1) * pagination.RowsPerPage).Take(pagination.RowsPerPage);
                }
                quotas = quotas.ToList();
                foreach (var quota in quotas)
                {
                    quota.City = null;
                    quota.AdditionalContributions?.ForEach(ac =>
                    {
                        ac.Quota        = null;
                        ac.Contribution = null;
                    });
                }

                return(Ok(quotas));
            }
            catch (Exception exception)
            {
                return(BadRequest(exception.Message));
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> GetFilePDFAsync(Guid id, [FromQuery] PaginationContract pCon)
        {
            var listStudent = await _studentService.ListStudentInClassAsync(id, pCon);

            var pdf = await _generatePdf.GetByteArray("HTML/Demo.cshtml", listStudent.Sources);

            var pdfStream = new MemoryStream();

            pdfStream.Write(pdf, 0, pdf.Length);
            pdfStream.Position = 0;
            return(new FileStreamResult(pdfStream, "application/pdf"));
        }
Ejemplo n.º 3
0
        public void GetElementsReturnsValidList()
        {
            string username = "******";
            string userId   = "dddc9f1e-63c5-4715-b60f-1cf2f7fe93f2";

            _fakeUserManager.Setup(x => x.FindByEmailAsync(username)).ReturnsAsync(_fakeUserManager.Object.Users.FirstOrDefault(u => u.Id == userId));
            _quotaRepository.Setup(repo => repo.GetWithInclude(It.IsAny <Func <Quota, bool> >(), It.IsAny <Expression <Func <Quota, object> >[]>())).Returns(GetTestQuotas().Where(q => q.ClientId == userId));

            var controller = new QuotaController(_fakeUserManager.Object, _quotaRepository.Object, null, null);

            controller.ControllerContext = MockContext(username);
            var pagination = new PaginationContract()
            {
                Pagination = new Pagination()
                {
                    Descending = true, Page = 1, RowsPerPage = 2, SortBy = "interestRate"
                }
            };
            var result     = controller.Get(pagination).GetAwaiter().GetResult() as OkObjectResult;
            var lastOnPage = (result?.Value as List <Quota>)?.LastOrDefault();

            Assert.Equal(new decimal(12.6), lastOnPage?.InterestRate);
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Get([FromBody] PaginationContract contract)
        {
            try
            {
                var usr = await _userManager.FindByEmailAsync(HttpContext.User.Identity.Name);

                var pagination = contract.Pagination;
                if (usr == null)
                {
                    return(BadRequest("User not found"));
                }
                var notes = _noteRepository
                            .GetWithInclude(n => n.UserId == usr.Id);
                if (notes == null)
                {
                    return(null);
                }
                switch (pagination.SortBy)
                {
                case "name":
                    notes = pagination.Descending
                            ? notes.OrderByDescending(n => n.Name)
                            : notes.OrderBy(n => n.Name);
                    break;

                case "createdAt":
                    notes = pagination.Descending
                            ? notes.OrderByDescending(n => n.CreatedAt)
                            : notes.OrderBy(n => n.CreatedAt);
                    break;

                case "modifiedAt":
                    notes = pagination.Descending
                            ? notes.OrderByDescending(n => n.ModifiedAt)
                            : notes.OrderBy(n => n.ModifiedAt);
                    break;

                case "position":
                    notes = pagination.Descending
                            ? notes.OrderByDescending(n => n.Position)
                            : notes.OrderBy(n => n.Position);
                    break;

                default:
                    notes = pagination.Descending
                            ? notes.OrderByDescending(n => n.Position)
                            : notes.OrderBy(n => n.Position);
                    break;
                }

                if (pagination.RowsPerPage > 0)
                {
                    notes = notes.Skip((pagination.Page - 1) * pagination.RowsPerPage).Take(pagination.RowsPerPage);
                }
                notes = notes.ToList();

                return(Ok(notes));
            }
            catch (Exception exception)
            {
                return(BadRequest(exception.Message));
            }
        }
Ejemplo n.º 5
0
 public async Task <IActionResult> ListStudentInClass(Guid id, [FromQuery] PaginationContract pCon)
 {
     return(Ok(await _studentService.ListStudentInClassAsync(id, pCon)));
 }
Ejemplo n.º 6
0
        public async Task <PageListContract <StudentResponse> > ListStudentInClassAsync(Guid clsId, PaginationContract pCon)
        {
            var listStudent = _studentRepository.Filter(s => s.ClassId == clsId, c => c.Include(x => x.Class));
            var data        = listStudent.ProjectTo <StudentResponse>();

            return(await data.Paginate(pCon.PageIndex, pCon.PageSize));
        }