Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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);
        }
Example #4
0
        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));
        }