public IHttpActionResult PostPrayer(PrayerRequestDetail request) { try { var isCurrent = request.IsCurrent; dbContext.PrayerRequests.Add(request); dbContext.SaveChanges(); var result = dbContext.PrayerRequests.Where(x => x.IsCurrent == isCurrent).OrderByDescending(y => y.Id) .Take(_defaultPageSize) .ToList(); //var result = dbContext.PrayerRequests.Select(x => x).OrderByDescending(y => y.Id); //var result = dbContext.PrayerRequests.ToList().GroupBy(b => b.IsCurrent).Select(grouping => grouping.OrderByDescending(b => b.Id)) // .OrderByDescending(grouping => grouping.First().IsCurrent) // .SelectMany(grouping => grouping) // .Skip(skip) // .Take(pageSize) // .ToList();.... var total = dbContext.PrayerRequests.Where(x => x.IsCurrent == isCurrent).Count(); return(Ok(new PagedResult <PrayerRequestDetail>(result, _defaultPageNo, _defaultPageSize, total))); } catch (Exception e) { return(InternalServerError()); } }
public IHttpActionResult PostPrayer(PrayerRequestDetail request) { try { var skip = 0; var pageSize = 10; var pageNo = 1; dbContext.PrayerRequests.Add(request); dbContext.SaveChanges(); //var result = dbContext.PrayerRequests.Select(x => x).OrderByDescending(y => y.Id); var result = dbContext.PrayerRequests.ToList().GroupBy(b => b.IsCurrent).Select(grouping => grouping.OrderByDescending(b => b.Id)) .OrderByDescending(grouping => grouping.First().IsCurrent) .SelectMany(grouping => grouping) .Skip(skip) .Take(pageSize) .ToList(); var total = dbContext.PrayerRequests.Count(); var temp = new PagedResult <PrayerRequestDetail>(result, pageNo, pageSize, total); return(Ok(new PagedResult <PrayerRequestDetail>(result, pageNo, pageSize, total))); } catch (Exception) { return(InternalServerError()); } }
public static bool IsModified(this PrayerRequestDetail prayerRequest) { if (prayerRequest.Id < 0) { return(true); } return(false); }
/// <summary> /// End point to update the object /// /// </summary> /// <param name="id"></param> /// <param name="updatedRequest"></param> /// <returns></returns> public IHttpActionResult PutPrayer(int id, PrayerRequestDetail updatedRequest) { // TODO: need to refactor this once adding the edit feature try { PrayerRequestDetail existingRequest; bool isCurrent; // the negative id object is the object that contains the updated info // this is to handle check/uncheck pray button if (updatedRequest.IsModified()) { existingRequest = dbContext.PrayerRequests.FirstOrDefault(x => x.Id == id); isCurrent = existingRequest.IsCurrent; existingRequest.IsCurrent = !existingRequest.IsCurrent; dbContext.SaveChanges(); var result = dbContext.PrayerRequests.Where(x => x.IsCurrent == isCurrent).OrderByDescending(y => y.Id) .Take(_defaultPageSize) .ToList(); var total = dbContext.PrayerRequests.Count(); return(Ok(new PagedResult <PrayerRequestDetail>(result, _defaultPageNo, _defaultPageSize, total))); } // the following is for edit the prayer request // Not support the edit feature yet existingRequest = dbContext.PrayerRequests.FirstOrDefault(x => x.Id == updatedRequest.Id); isCurrent = existingRequest.IsCurrent; if (existingRequest != null) { existingRequest.Name = updatedRequest.Name; existingRequest.Request = updatedRequest.Request; existingRequest.IsCurrent = updatedRequest.IsCurrent; dbContext.SaveChanges(); var result = dbContext.PrayerRequests.Where(x => x.IsCurrent == isCurrent).OrderByDescending(y => y.Id) .Take(_defaultPageSize) .ToList(); var total = dbContext.PrayerRequests.Count(); return(Ok(new PagedResult <PrayerRequestDetail>(result, _defaultPageNo, _defaultPageSize, total))); } return(NotFound()); } catch (Exception) { return(InternalServerError()); } }
public IHttpActionResult PutPrayer(int id, PrayerRequestDetail updatedRequest) { try { var skip = 0; var pageSize = 10; var pageNo = 1; PrayerRequestDetail existingRequest; if (updatedRequest.Id < 0) { existingRequest = dbContext.PrayerRequests.FirstOrDefault(x => x.Id == id); existingRequest.IsCurrent = false; dbContext.SaveChanges(); var result = dbContext.PrayerRequests.ToList().GroupBy(b => b.IsCurrent).Select(grouping => grouping.OrderByDescending(b => b.Id)) .OrderByDescending(grouping => grouping.First().IsCurrent) .SelectMany(grouping => grouping) .Skip(skip) .Take(pageSize) .ToList(); var total = dbContext.PrayerRequests.Count(); return(Ok(new PagedResult <PrayerRequestDetail>(result, pageNo, pageSize, total))); } existingRequest = dbContext.PrayerRequests.FirstOrDefault(x => x.Id == updatedRequest.Id); if (existingRequest != null) { existingRequest.Name = updatedRequest.Name; existingRequest.Request = updatedRequest.Request; existingRequest.IsCurrent = updatedRequest.IsCurrent; dbContext.SaveChanges(); var result = dbContext.PrayerRequests.ToList().GroupBy(b => b.IsCurrent).Select(grouping => grouping.OrderByDescending(b => b.Id)) .OrderByDescending(grouping => grouping.First().IsCurrent) .SelectMany(grouping => grouping) .Skip(skip) .Take(pageSize) .ToList(); var total = dbContext.PrayerRequests.Count(); return(Ok(new PagedResult <PrayerRequestDetail>(result, pageNo, pageSize, total))); } return(NotFound()); } catch (Exception) { return(InternalServerError()); } }
protected override void Seed(DatabaseContext context) { base.Seed(context); var prayerRequestForJason = new PrayerRequestDetail() { Id = 1, Name = "Jason", Date = System.DateTime.Now, IsCurrent = false, Request = "Hope to get a good house." }; context.PrayerRequests.Add(prayerRequestForJason); context.SaveChanges(); }