public async Task <SnackShopPurchase> UpdateSnackShopPurchase(int portalId, int sourceId, int snackShopPurchaseId, SnackShopPurchaseSource source, SnackShopPurchaseModel snackShopPurchase) { SnackShopPurchase dbSnackShopPurchase = await GetSnackShopPurchaseById(portalId, sourceId, snackShopPurchaseId, source); dbSnackShopPurchase.PurchasedDate = DateTimeOffset.Now; dbSnackShopPurchase.PurchasedPrice = snackShopPurchase.PurchasedPrice; dbSnackShopPurchase.SnackShopItemId = snackShopPurchase.SnackShopItemId; switch (source) { case SnackShopPurchaseSource.Camper: dbSnackShopPurchase.CamperId = sourceId; break; case SnackShopPurchaseSource.Counselor: dbSnackShopPurchase.CounselorId = sourceId; break; default: throw new ArgumentOutOfRangeException(nameof(source), source, "The source is required."); } await Context.SaveChangesAsync(); return(dbSnackShopPurchase); }
public async Task <SnackShopPurchase> CreateSnackShopPurchase(int portalId, int sourceId, SnackShopPurchaseSource source, SnackShopPurchaseModel snackShopPurchase) { SnackShopPurchase newSnackShopPurchase = new SnackShopPurchase { PortalId = portalId, PurchasedPrice = snackShopPurchase.PurchasedPrice, PurchasedDate = DateTimeOffset.Now, IsActive = true, IsDeleted = false, SnackShopItemId = snackShopPurchase.SnackShopItemId, CreatedBy = snackShopPurchase.CreatedBy, }; switch (source) { case SnackShopPurchaseSource.Camper: newSnackShopPurchase.CamperId = sourceId; break; case SnackShopPurchaseSource.Counselor: newSnackShopPurchase.CounselorId = sourceId; break; default: throw new ArgumentOutOfRangeException(nameof(source), source, "The source is required."); } await Context.SnackShopPurchases.AddAsync(newSnackShopPurchase); await Context.SaveChangesAsync(); return(newSnackShopPurchase); }
public async Task <SnackShopPurchase> GetSnackShopPurchaseById(int portalId, int sourceId, int snackShopPurchaseId, SnackShopPurchaseSource source) { IQueryable <SnackShopPurchase> snackShopPurchaseQuery = Context.SnackShopPurchases.Where(x => x.PortalId == portalId && !x.IsDeleted && x.IsActive && x.Id == snackShopPurchaseId && x.SnackShopItem.IsActive && !x.SnackShopItem.IsDeleted); snackShopPurchaseQuery = source switch { SnackShopPurchaseSource.Camper => snackShopPurchaseQuery.Where(x => x.CamperId == sourceId), SnackShopPurchaseSource.Counselor => snackShopPurchaseQuery.Where(x => x.CounselorId == sourceId), _ => throw new ArgumentOutOfRangeException(nameof(source), source, "The source is required.") }; SnackShopPurchase snackShopPurchase = await snackShopPurchaseQuery.FirstOrDefaultAsync(); if (snackShopPurchase == null) { throw new Exception("This snack shop purchase does not exist."); } return(snackShopPurchase); }
public async Task DeleteSnackShopPurchase(int portalId, int sourceId, int snackShopPurchaseId, SnackShopPurchaseSource source) { SnackShopPurchase dbSnackShopPurchase = await GetSnackShopPurchaseById(portalId, sourceId, snackShopPurchaseId, source); dbSnackShopPurchase.IsActive = false; dbSnackShopPurchase.IsDeleted = true; await Context.SaveChangesAsync(); }
public async Task <ActionResult <SnackShopPurchase> > CreateSnackShopItem(int portalId, int sourceId, [FromBody] SnackShopPurchaseModel snackShopPurchase, SnackShopPurchaseSource source) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } SnackShopPurchase newSnackShopPurchase = await _snackShopPurchaseRepository.CreateSnackShopPurchase(portalId, sourceId, source, snackShopPurchase); return(Ok(newSnackShopPurchase)); }
public async Task <ActionResult <SnackShopPurchase> > GetSnackShopItem(int portalId, int sourceId, int snackShopPurchaseId, SnackShopPurchaseSource source) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } SnackShopPurchase snackShopPurchase = await _snackShopPurchaseRepository.GetSnackShopPurchaseById(portalId, sourceId, snackShopPurchaseId, source); return(Ok(snackShopPurchase)); }