Пример #1
0
        public async Task <Response> MarkPaid(MarkPaidRequest request)
        {
            // TODO add validation that the marking user is the chosen supplier
            DbSet <ParticipancyEntity> participancies_db = _context.Set <ParticipancyEntity>();
            var p = await participancies_db.FindAsync(request.BidId, request.BuyerId).ConfigureAwait(false);

            if (p == null)
            {
                return(new Response()
                {
                    IsOperationSucceeded = false, SuccessOrFailureMessage = "participation not found"
                });
            }
            p.HasPaid = request.HasPaid;
            try
            {
                participancies_db.Update(p);
                await _context.SaveChangesAsync().ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                return(new Response()
                {
                    IsOperationSucceeded = false, SuccessOrFailureMessage = ex.Message
                });
            }
            return(new Response()
            {
                IsOperationSucceeded = true, SuccessOrFailureMessage = this.getSuccessMessage()
            });
        }
Пример #2
0
        public async Task <ActionResult> MarkPayment(MarkPaidRequest markPaidRequest)
        {
            if (!markPaidRequest.BidId.IsValidId() || !markPaidRequest.BuyerId.IsValidId())
            {
                return(this.StatusCode(StatusCodes.Status400BadRequest, $"one of the following: bidId: {markPaidRequest.BidId}, buyerId: {markPaidRequest.BuyerId}"));
            }
            markPaidRequest.MarkingUserId = GetRequestUserId();

            var authResult = await this.authorizationService.AuthorizeAsync(User, markPaidRequest.BidId, PolicyNames.ChosenSupplierPolicy).ConfigureAwait(false);

            if (!authResult.Succeeded)
            {
                return(this.StatusCode(StatusCodes.Status403Forbidden));
            }

            Response response = await this.bidsManager.MarkPaid(markPaidRequest).ConfigureAwait(false);

            if (response.IsOperationSucceeded)
            {
                return(this.StatusCode(StatusCodes.Status200OK, response.SuccessOrFailureMessage));
            }

            return(this.StatusCode(StatusCodes.Status405MethodNotAllowed, response.SuccessOrFailureMessage));
        }