示例#1
0
        public async Task <IActionResult> PostAsync([FromQuery][Required] string region, [FromBody] Offer offer)
        {
            NullCheck.ThrowIfNull <Offer>(offer);

            try
            {
                _configurationService.ThrowIfUnknownRegion(region);
                _mailInputValidatorService.validateMail(offer.provider.mail);
                _resourceStockInputValidatorService.ValidateForStockInsertion(offer);
                var token = await _resourceStockUpdateService.InsertAsync(offer, region);

                await _mailService.SendNewOfferConfirmationMailAsync(region, token, offer.provider.mail,
                                                                     offer.provider.name);

                return(Ok(token));
            }
            catch (UnknownAdressException e)
            {
                return(BadRequest(e.Message));
            }
            catch (ArgumentException e)
            {
                return(BadRequest(e.Message));
            }
        }
示例#2
0
        public async Task <IActionResult> PostAsync([FromBody] AdminKeyProtected <Demand> adminKeyProtectedDemand)
        {
            NullCheck.ThrowIfNull <Demand>(adminKeyProtectedDemand);

            // This is a temporary solution until #103 is done.
            if (!_adminKey.Equals(adminKeyProtectedDemand.adminKey, StringComparison.InvariantCulture))
            {
                return(StatusCode(403));
            }

            Demand demand = adminKeyProtectedDemand.data;

            try
            {
                _mailInputValidatorService.validateMail(demand.provider.mail);
                _resourceDemandInputValidatorService.ValidateForDemandInsertion(demand);
                var token = await _resourceDemandUpdateService.InsertAsync(demand);

                return(Ok(token));
            }
            catch (UnknownAdressException e)
            {
                return(BadRequest(e.Message));
            }
            catch (ArgumentException e)
            {
                return(BadRequest(e.Message));
            }
        }
示例#3
0
        public IActionResult Post([FromQuery][Required] string region, [FromBody] TelephoneCallbackRequest telephoneCallbackRequest)
        {
            NullCheck.ThrowIfNull <TelephoneCallbackRequest>(telephoneCallbackRequest);

            try
            {
                _configurationService.ThrowIfUnknownRegion(region);
                _mailInputValidatorService.validateMail(telephoneCallbackRequest.email);
                this._mailService.SendTelephoneCallbackMailAsync(region, telephoneCallbackRequest);
                return(Ok());
            }
            catch (ArgumentException e)
            {
                return(BadRequest(e.Message));
            }
        }
示例#4
0
        public IActionResult Post([FromQuery][Required] string region, [FromBody] RegionSubscription regionsubscription)
        {
            NullCheck.ThrowIfNull <RegionSubscription>(regionsubscription);

            try
            {
                _configurationService.ThrowIfUnknownRegion(region);
                _mailInputValidatorService.validateMail(regionsubscription.email);
                this._subscriptionService.SubscribeRegionAsync(regionsubscription, region);
                this._mailService.SendRegionSubscriptionConformationMailAsync(region, regionsubscription);
            }
            catch (ArgumentException e)
            {
                return(BadRequest(e.Message));
            }
            catch (UnknownAdressException e)
            {
                return(BadRequest(e.Message));
            }
            return(Ok());
        }