//[CacheOutput(ClientTimeSpan = 100, ServerTimeSpan = 100)] public HttpResponseMessage GetDonations([FromUri] PageResourseParameters pageResourceParameters) { try { var donationProgramsFromRepo = _rotaractRepository.GetDonationPrograms(pageResourceParameters); var paginationMetadata = new { totalCount = donationProgramsFromRepo.TotalCount, pageSize = donationProgramsFromRepo.PageSize, currentPage = donationProgramsFromRepo.CurrentPage, totalPages = donationProgramsFromRepo.TotalPages }; var shapedDonations = donationProgramsFromRepo .ShapeData(pageResourceParameters.Fields); var response = Request.CreateResponse(HttpStatusCode.OK, shapedDonations); response.Headers.Add("x-pagination", JsonSerializer.Serialize(paginationMetadata)); response.Headers.Add("Access-Control-Expose-Headers", "x-pagination"); return(response); } catch (Exception e) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, e)); } }
public PagedList <DonationProgram> GetDonationProgramsById(int UserId, PageResourseParameters pageResourseParameters) { if (pageResourseParameters == null) { throw new ArgumentNullException(nameof(pageResourseParameters)); } //string allDonationsQuery = " SELECT dbo.DonationProgram_Audit.DonationProgramId,dbo.DonationProgram_Audit.DonationProgramName,dbo.DonationProgram_Audit.Description,dbo.DonationProgram_Audit.ImageRef,dbo.DonationProgram_Audit.StartDate,dbo.DonationProgram_Audit.EndDate,d.Amount AS Total" + // " FROM dbo.DonationProgram_Audit"+ // " JOIN dbo.Donations d"+ // " ON d.DonaitonProgram_auditId = dbo.DonationProgram_Audit.DonationProgram_AuditId"+ // " WHERE d.UserId = "+ UserId; string GroupSameDonationsQuery = "SELECT r.DonationProgramId,i.DonationProgramName,i.Description,i.ImageRef,i.StartDate,i.EndDate,r.Total " + " FROM dbo.DonationProgram_Audit i " + " JOIN( " + " SELECT a.DonationProgramId, SUM(p.Amount) AS Total, MAX(a.Updated_at) AS Updated_at " + " FROM dbo.Donations p " + " JOIN dbo.DonationProgram_Audit a " + " ON a.DonationProgram_AuditId = p.DonationProgram_AuditId " + " WHERE p.UserId = " + UserId + " GROUP BY a.DonationProgramId " + " ) r " + " ON i.Updated_at = r.Updated_at "; // var collection = _context.Products as IQueryable<Product>; var collection = _context.DonationPrograms.SqlQuery(GroupSameDonationsQuery).ToList(); return(PagedList <DonationProgram> .Create(collection, pageResourseParameters.PageNumber, pageResourseParameters.PageSize)); }
public PagedList <OrderDto> GetAllOrdersById(int UserId, PageResourseParameters pageResourseParameters) { if (pageResourseParameters == null) { throw new ArgumentNullException(nameof(pageResourseParameters)); } List <OrderDto> orderDtos = new List <OrderDto>(); List <Order> orders = _context.Orders.Where(n => n.UserId == UserId).OrderByDescending(p => p.DateStamp).ToList(); for (int i = 0; i < orders.Count; i++) { OrderDto order = new OrderDto(); order.UserId = UserId; order.OrderId = orders[i].OrderId; order.Status = orders[i].Status; order.DateStamp = orders[i].DateStamp.ToString("yyyy-MM-dd"); order.TotalPrice = orders[i].TotalPrice; order.ShippingDetailsModel = GetShippingDetailsDto(orders[i].OrderId); order.OrderItems = GetOrderItemsDto(orders[i].Status, orders[i].OrderId); orderDtos.Add(order); } return(PagedList <OrderDto> .Create(orderDtos, pageResourseParameters.PageNumber, pageResourseParameters.PageSize)); }
//[CacheOutput(ClientTimeSpan = 30, ServerTimeSpan = 30)] public HttpResponseMessage GetProducts([FromUri] PageResourseParameters pageResourceParameters) { try { var productsFromRepo = _rotaractRepository.GetProducts(pageResourceParameters); var paginationMetadata = new { totalCount = productsFromRepo.TotalCount, pageSize = productsFromRepo.PageSize, currentPage = productsFromRepo.CurrentPage, totalPages = productsFromRepo.TotalPages }; IEnumerable <ProductsDto> products = new List <ProductsDto>(); AutoMapper.Mapper.Map(productsFromRepo, products); var shapedProducts = products .ShapeData(pageResourceParameters.Fields); var response = Request.CreateResponse(HttpStatusCode.OK, shapedProducts); response.Headers.Add("x-pagination", JsonSerializer.Serialize(paginationMetadata)); response.Headers.Add("Access-Control-Expose-Headers", "x-pagination"); return(response); } catch (Exception e) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, e)); } }
public HttpResponseMessage GetOrdersByUser([FromUri] PageResourseParameters pageResourceParameters) { try { var identity = (ClaimsIdentity)User.Identity; int userId = Int32.Parse(identity.Claims.FirstOrDefault(c => c.Type == "UserId").Value); var ordersFromRepo = _rotaractRepository.GetAllOrdersById(userId, pageResourceParameters); var paginationMetadata = new { totalCount = ordersFromRepo.TotalCount, pageSize = ordersFromRepo.PageSize, currentPage = ordersFromRepo.CurrentPage, totalPages = ordersFromRepo.TotalPages }; var shapedOrders = ordersFromRepo .ShapeData(pageResourceParameters.Fields); var response = Request.CreateResponse(HttpStatusCode.OK, shapedOrders); response.Headers.Add("x-pagination", JsonSerializer.Serialize(paginationMetadata)); response.Headers.Add("Access-Control-Expose-Headers", "x-pagination"); return(response); } catch (Exception e) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, e)); } }
public PagedList <Product> GetProducts(PageResourseParameters pageResourseParameters) { if (pageResourseParameters == null) { throw new ArgumentNullException(nameof(pageResourseParameters)); } var collection = _context.Products.ToList(); return(PagedList <Product> .Create(collection, pageResourseParameters.PageNumber, pageResourseParameters.PageSize)); }
public void GetDonations_ShouldReturnPaginatedListOfDonationPrograms() { //expected var expected = new List <DonationProgram>() { new DonationProgram { DonationProgramId = 1, DonationProgramName = "One", Description = "Maxim one", ImageRef = "An image ref", StartDate = DateTime.Now, EndDate = DateTime.Now, Total = 111 }, new DonationProgram { DonationProgramId = 2, DonationProgramName = "Two", Description = "Maxim two", ImageRef = "An image refs", StartDate = DateTime.Now, EndDate = DateTime.Now, Total = 112 } }; //mock repo with pagination var pageParameters = new PageResourseParameters(); var mockRepo = new Mock <IRotaractRepository>(); var mockList = new PagedList <DonationProgram>(expected, 2, 1, 1); mockRepo.Setup(d => d.GetDonationPrograms(pageParameters)).Returns(mockList); //Arrange DonationController donationController = new DonationController(mockRepo.Object) { Request = new System.Net.Http.HttpRequestMessage(), Configuration = new HttpConfiguration() }; //Act var result = donationController.GetDonations(pageParameters); //Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(HttpResponseMessage)); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); Assert.IsTrue(result.Headers.Contains("x-pagination")); }
public PagedList <DonationProgram> GetDonationPrograms(PageResourseParameters pageResourseParameters) { if (pageResourseParameters == null) { throw new ArgumentNullException(nameof(pageResourseParameters)); } // var collection = _context.Products as IQueryable<Product>; var collection = _context.DonationPrograms.OrderByDescending(d => d.StartDate).ToList(); return(PagedList <DonationProgram> .Create(collection, pageResourseParameters.PageNumber, pageResourseParameters.PageSize)); }
public PagedList <DonationProgram> GetActiveDonationPrograms(PageResourseParameters pageResourseParameters) { if (pageResourseParameters == null) { throw new ArgumentNullException(nameof(pageResourseParameters)); } DateTime today = DateTime.Now; var collection = _context.DonationPrograms.Where(n => n.StartDate <= today && n.EndDate >= today).ToList(); return(PagedList <DonationProgram> .Create(collection, pageResourseParameters.PageNumber, pageResourseParameters.PageSize)); }
public void GetOrdersByStatus_ShouldRetrieveOrdersByStatus() { var user = new List <User> { new User { UserId = 112, Username = "******", FirstName = "Frank", LastName = "Sinatra", DistrictNumber = 1, Email = "*****@*****.**", Password = "******", Role = "Customer" } }; var shippingDetails = new List <ShippingDetailsDto> { new ShippingDetailsDto { Country = "USA", City = "San Francisco", PostalCode = 911, AddressLine = "Californication RHCP", CountyOrRegion = "California", FirstName = "Frank", LastName = "Sinatra", PhoneNumber = 12345678 } }; var product = new List <Product> { new Product { ProductId = 1, Name = "Microphone", Description = "Rotaract personalized microphone", ImageRef = "img ref", Inventory = 5, Price = 1250 } }; var orderItems = new List <OrderItemDto> { new OrderItemDto { product = product[0], Quantity = 1 } }; var orders = new List <OrderDto> { new OrderDto { UserId = user[0].UserId, OrderId = 2, OrderItems = orderItems, ShippingDetailsModel = shippingDetails[0], DateStamp = "01.12.2020", Status = "PENDING", TotalPrice = orderItems[0].product.Price * orderItems[0].Quantity } }; //mock repo with pagination var pageParameters = new PageResourseParameters(); var mockRepo = new Mock <IRotaractRepository>(); var mockList = new PagedList <OrderDto>(orders, 1, 1, 1); const string status = "PENDING"; mockRepo.Setup(o => o.GetAllOrdersByStatus(status, pageParameters)).Returns(mockList); //Arrange OrderController orderController = new OrderController(mockRepo.Object) { Request = new System.Net.Http.HttpRequestMessage(), Configuration = new HttpConfiguration() }; //Act var result = orderController.GetOrdersByStatus(status, pageParameters); //Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(HttpResponseMessage)); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); Assert.IsTrue(result.Headers.Contains("x-pagination")); }