Exemple #1
0
        public async Task <CreateOfferResponse> ExecuteAsync(CreateOfferRequest request)
        {
            var service   = CreateOfferService();
            var loanOffer = await service.CreateOfferAsync(request.PeselNumber, request.EmailAddress);

            return(CreateOfferResponse.Success(loanOffer.Id.Value, loanOffer.MaxLoanAmount.Value));
        }
Exemple #2
0
        public async Task <IActionResult> CreateOffer([FromBody] CreateOfferRequest request)
        {
            var createOfferCommand = new CreateOfferCommand(request);
            var result             = await mediator.Send(createOfferCommand);

            return(StatusCode((int)result.Code, result.Value));
        }
        public static CreateOfferRequest GetCreateOfferRequest(this VisaOffer offer, Merchant merchant, string visaCommunityCode)
        {
            var offerGuid = Guid.Parse(offer.Id);
            var offerId   = offerGuid.ToByteArray().ToBase62();

            var request = new CreateOfferRequest();

            request.CommunityCode = visaCommunityCode;
            request.Name          = offer.Name;
            //request.Description = offer.Name;
            request.CampaignName    = offer.CampaignName;
            request.StartDate       = RemoveTime(offer.StartDate);
            request.EndDate         = RemoveTime(offer.EndDate);
            request.TemplateName    = offer.Template;
            request.ExternalOfferId = offerId;


            var visaPayments = merchant.GetVisaPayments();
            var events       = new List <Event>();

            foreach (var payment in visaPayments)
            {
                var mid = payment.PaymentMids[MerchantConstants.VisaMid];
                var sid = payment.PaymentMids[MerchantConstants.VisaSid];

                EventField[] eventFields =
                {
                    new EventField
                    {
                        Name  = "VisaMerchantId",
                        Value = mid
                    },

                    new EventField
                    {
                        Name  = "VisaStoreId",
                        Value = sid
                    }

                    //new EventField
                    //{
                    //    Name = "MerchantCountryCode",
                    //    Value = offer.CountryCode
                    //}
                };

                var offerEvent = new Event
                {
                    EventFields = eventFields
                };

                events.Add(offerEvent);
            }

            request.Events = events.ToArray();
            return(request);
        }
Exemple #4
0
        public async Task <IActionResult> Post([FromBody] CreateOfferRequest offer)
        {
            (bool success, OfferViewModel? vm, RequestError? error) = await new CreateOffer(_context).Do(offer);

            if (!success && error != null)
            {
                return(StatusCode((int)error.StatusCode, error.Errors));
            }

            return(Ok(vm));
        }
Exemple #5
0
        public async Task <IActionResult> Create([FromBody] CreateOfferRequest offer)
        {
            var Offers = new Offers
            {
                ArabicDesc  = offer.ArabicDesc,
                EnglishDesc = offer.EnglishDesc,
                offerPrice  = offer.offerPrice,
                ImgUrl      = offer.ImgUrl,
                ProductId   = offer.ProductId,
                status      = offer.status
            };

            var status = await _OffersService.CreateOffersAsync(Offers);

            if (status == -1)
            {
                return(Conflict(new ErrorResponse
                {
                    message = "Dublicate Entry",
                    status = Conflict().StatusCode
                }));
            }

            if (status == 1)
            {
                await _productService.UpdateProductSalePriceAsync(offer.ProductId, offer.offerPrice);

                var response = new OfferResponse {
                    Id = Offers.Id
                };
                return(Ok(response));
            }
            return(NotFound(new ErrorResponse
            {
                message = "Not Found",
                status = NotFound().StatusCode
            }));
        }
Exemple #6
0
        public async Task <(bool success, OfferViewModel?viewModel, RequestError?error)> Do(CreateOfferRequest request)
        {
            (bool isValid, List <string> errors) = request.CheckValidity();

            if (!isValid)
            {
                return(false, null, new RequestError(HttpStatusCode.BadRequest, errors));
            }
            if (!_context.ContactInfos.Any(c => c.Id == request.ContactInfoId))
            {
                return(false, null, new RequestError(HttpStatusCode.BadRequest, "contactInfo not found."));
            }
            if (request.LocationId > 0 && !_context.Locations.Any(l => l.Id == request.LocationId))
            {
                return(false, null, new RequestError(HttpStatusCode.BadRequest, "location not found."));
            }
            if (!_context.Resources.Any(r => r.Id == request.ResourceId))
            {
                return(false, null, new RequestError(HttpStatusCode.BadRequest, "resource not found."));
            }



            Offer offer = new Offer
            {
                Number = (float)request.Number !,

                ContactInfoId = (int)request.ContactInfoId !,
                LocationId    = request.LocationId == 0 ? null : request.LocationId,
                ResourceId    = (int)request.ResourceId !,

                CreationDate = DateTime.Now,
            };

            _context.Add(offer);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                await new ErrorLogging(_context).LogError(ErrorMessages.CreateOffer, ex, request);
                return(false, null, new RequestError(HttpStatusCode.InternalServerError, ErrorMessages.DatabaseOperationFailed));
            }

            return(true, new OfferViewModel(offer), null);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="CreateOfferCommand"/> class.
 /// </summary>
 /// <param name="request">The request.</param>
 public CreateOfferCommand(CreateOfferRequest request)
 {
     Request = request;
 }
        public async Task <IActionResult> CreateOffer([FromBody] CreateOfferRequest request)
        {
            var result = await offerService.CreateOffer(request);

            return(StatusCode((int)result.Code, result.Value));
        }