public async Task <ActionResult <AdjustedCamper> > CreateCamper(int portalId, [FromBody] CamperModel camper) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { await ValidateCustomFields(portalId, camper.CustomFields); } catch (Exception ex) { return(BadRequest(ex.Message)); } Camper newCamper = await _camperRepository.CreateCamper(portalId, camper); if (camper.CouponId != null) { await _redeemedCouponRepository.RedeemCoupon(camper.CouponId.Value, newCamper.Id); } await SaveCustomFields(newCamper.Id, camper.CustomFields); AdjustedCamper adjustedCamper = await AdjustCamper(newCamper); return(Ok(adjustedCamper)); }
public async Task <ActionResult <AdjustedCamper> > GetCamper(int portalId, int camperId) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Camper camper = await _camperRepository.GetCamperById(portalId, camperId); AdjustedCamper adjustedCamper = await AdjustCamper(camper); return(Ok(adjustedCamper)); }
private async Task <AdjustedCamper> AdjustCamper(Camper camper) { RedeemedCoupon camperCoupon = await _redeemedCouponRepository.GetCamperCoupon(camper.Id); AdjustedCamper adjustedCamper = new AdjustedCamper(camper); if (camperCoupon != null) { adjustedCamper.CouponId = camperCoupon.CouponId; } IEnumerable <CamperCustomField> camperCustomFields = await _camperCustomFieldRepository.GetCamperCustomFields(camper.Id); adjustedCamper.CustomFields = camperCustomFields; return(adjustedCamper); }
public async Task <ActionResult <AdjustedCamper> > UpdateCamper(int portalId, int camperId, [FromBody] CamperModel camper) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { await ValidateCustomFields(portalId, camper.CustomFields); } catch (Exception ex) { return(BadRequest(ex.Message)); } Camper updatedCamper = await _camperRepository.UpdateCamper(portalId, camperId, camper); RedeemedCoupon camperCoupon = await _redeemedCouponRepository.GetCamperCoupon(camperId); if (camper.CouponId != null && (camperCoupon == null || camper.CouponId != camperCoupon.CouponId)) { await _redeemedCouponRepository.RedeemCoupon(camper.CouponId.Value, camperId); } else if (camper.CouponId == null && camperCoupon != null) { await _redeemedCouponRepository.RemoveRedeemedCoupon(camperId); } await SaveCustomFields(camperId, camper.CustomFields); AdjustedCamper adjustedCamper = await AdjustCamper(updatedCamper); return(Ok(adjustedCamper)); }