public async Task <IActionResult> Execute()
        {
            var shops = await _repository.Get();

            _halResponseBuilder.AddLinks(l => l.AddSelf("/" + Constants.RouteNames.Shops));
            foreach (var shop in shops)
            {
                _shopEnricher.Enrich(_halResponseBuilder, shop);
            }

            return(new OkObjectResult(_halResponseBuilder.Build()));
        }
Example #2
0
        public async Task <IActionResult> Execute(JObject jObj, string subject)
        {
            if (jObj == null)
            {
                throw new ArgumentNullException(nameof(jObj));
            }

            if (string.IsNullOrWhiteSpace(subject))
            {
                throw new ArgumentNullException(nameof(subject));
            }

            var href    = "/" + Constants.RouteNames.Notifications + "/" + Constants.RouteNames.Search;
            var request = _requestBuilder.GetSearchNotifications(jObj);

            request.To = subject;
            var searchResult = await _notificationRepository.Search(request);

            if (searchResult.Content == null || !searchResult.Content.Any())
            {
                return(new OkObjectResult(new { }));
            }

            _halResponseBuilder.AddLinks(l => l.AddSelf(href));
            foreach (var shop in searchResult.Content)
            {
                _notificationEnricher.Enrich(_halResponseBuilder, shop);
            }

            double r       = (double)searchResult.TotalResults / (double)request.Count;
            var    nbPages = Math.Ceiling(r);

            nbPages = nbPages == 0 ? 1 : nbPages;
            for (var page = 1; page <= nbPages; page++)
            {
                _halResponseBuilder.AddLinks(l => l.AddOtherItem("navigation", new Dtos.Link(href, page.ToString())));
            }

            return(new OkObjectResult(_halResponseBuilder.Build()));
        }
        public async Task <IActionResult> Execute(string subject, JObject jObj)
        {
            if (string.IsNullOrWhiteSpace(subject))
            {
                throw new ArgumentNullException(nameof(subject));
            }

            if (jObj == null)
            {
                throw new ArgumentNullException(nameof(jObj));
            }

            var parameter = _requestBuilder.GetSearchAnnouncements(jObj);

            parameter.Subjects = new[]
            {
                subject
            };
            var searchResult = await _repository.Search(parameter);

            _halResponseBuilder.AddLinks(l => l.AddSelf(GetSearchMineAnnouncements()));
            if (searchResult != null && searchResult.Content != null)
            {
                var products = searchResult.Content;
                foreach (var product in products)
                {
                    _enricher.Enrich(_halResponseBuilder, product);
                }

                double r       = (double)searchResult.TotalResults / (double)parameter.Count;
                var    nbPages = Math.Ceiling(r);
                nbPages = nbPages == 0 ? 1 : nbPages;
                for (var page = 1; page <= nbPages; page++)
                {
                    _halResponseBuilder.AddLinks(l => l.AddOtherItem("navigation", new Dtos.Link(GetSearchMineAnnouncements(), page.ToString())));
                }
            }

            return(new OkObjectResult(_halResponseBuilder.Build()));
        }
Example #4
0
        public async Task <IActionResult> Execute(string shopId, JObject jObj)
        {
            if (string.IsNullOrWhiteSpace(shopId))
            {
                throw new ArgumentNullException(nameof(shopId));
            }

            if (jObj == null)
            {
                throw new ArgumentNullException(nameof(jObj));
            }

            var parameter = _requestBuilder.GetSearchShopComments(jObj);

            parameter.ShopId = shopId;
            var searchResult = await _shopRepository.SearchComments(parameter);

            _halResponseBuilder.AddLinks(l => l.AddSelf(GetCommentLink(shopId)));
            if (searchResult != null && searchResult.Content != null)
            {
                var comments = searchResult.Content;
                foreach (var comment in comments)
                {
                    _commentEnricher.Enrich(_halResponseBuilder, comment, parameter.ShopId);
                }

                double r       = (double)searchResult.TotalResults / (double)parameter.Count;
                var    nbPages = Math.Ceiling(r);
                nbPages = nbPages == 0 ? 1 : nbPages;
                for (var page = 1; page <= nbPages; page++)
                {
                    _halResponseBuilder.AddLinks(l => l.AddOtherItem("navigation", new Dtos.Link(GetCommentLink(shopId), page.ToString())));
                }
            }

            return(new OkObjectResult(_halResponseBuilder.Build()));
        }
Example #5
0
        public async Task <IActionResult> Execute(string id, string subject)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                throw new ArgumentNullException(nameof(id));
            }

            var order = await _orderRepository.Get(id);

            if (order == null)
            {
                var error = _responseBuilder.GetError(ErrorCodes.Server, ErrorDescriptions.TheOrderDoesntExist);
                return(_controllerHelper.BuildResponse(System.Net.HttpStatusCode.NotFound, error));
            }

            if (order.Subject != subject && order.SellerId != subject)
            {
                var error = _responseBuilder.GetError(ErrorCodes.Server, ErrorDescriptions.TheOrderCannotBeAccessedByYou);
                return(_controllerHelper.BuildResponse(System.Net.HttpStatusCode.BadRequest, error));
            }

            if (order.OrderPayment == null)
            {
                var error = _responseBuilder.GetError(ErrorCodes.Server, ErrorDescriptions.TheOrderDoesntHavePayment);
                return(_controllerHelper.BuildResponse(System.Net.HttpStatusCode.BadRequest, error));
            }

            _halResponseBuilder.AddLinks(l => l.AddSelf("/" + Constants.RouteNames.OrderTransaction.Replace("{id}", id)));
            if (order.OrderPayment.PaymentMethod != OrderPayments.Paypal)
            {
                var error = _responseBuilder.GetError(ErrorCodes.Server, ErrorDescriptions.ThePaymentMethodIsNotSupported);
                return(_controllerHelper.BuildResponse(System.Net.HttpStatusCode.InternalServerError, error));
            }

            var token = await _paypalOauthClient.GetAccessToken(_settingsProvider.GetPaypalClientId(),
                                                                _settingsProvider.GetPaypalClientSecret(),
                                                                new PaypalOauthClientOptions
            {
                ApplicationMode = PaypalApplicationModes.sandbox
            });

            var payment = await _paypalClient.GetPayment(new GetPaymentParameter
            {
                AccessToken = token.AccessToken,
                PaymentId   = order.OrderPayment.TransactionId
            });

            return(new OkObjectResult(_responseBuilder.GetPaypalTransaction(payment)));
        }
        public async Task <IActionResult> Execute(string subject)
        {
            if (string.IsNullOrWhiteSpace(subject))
            {
                throw new ArgumentNullException(nameof(subject));
            }

            var content = await _orderRepository.GetStatus(new GetOrderStatusParameter
            {
                Subject = subject,
            });

            var href = "/" + Constants.RouteNames.Orders + "/" + Constants.RouteNames.Status;

            _halResponseBuilder.AddLinks(l => l.AddSelf(href)).AddEmbedded(e => e.AddObject(_responseBuilder.GetOrderStatus(content)));
            return(new OkObjectResult(_halResponseBuilder.Build()));
        }
        public async Task <IActionResult> Execute(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                throw new ArgumentNullException(nameof(id));
            }

            var shop = await _repository.Get(id);

            if (shop == null)
            {
                return(new NotFoundResult());
            }

            _halResponseBuilder.AddLinks(l => l.AddSelf("/" + Constants.RouteNames.Shops + "/" + id));
            _shopEnricher.Enrich(_halResponseBuilder, shop);
            return(new OkObjectResult(_halResponseBuilder.Build()));
        }
        public async Task <IActionResult> Execute(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                throw new ArgumentNullException(nameof(id));
            }

            var service = await _repository.Get(id);

            if (service == null)
            {
                return(new NotFoundResult());
            }

            _halResponseBuilder.AddLinks(l => l.AddSelf(GetServiceLink(id)));
            _serviceEnricher.Enrich(_halResponseBuilder, service);
            return(new OkObjectResult(_halResponseBuilder.Build()));
        }
        public async Task <IActionResult> Execute(string subject)
        {
            if (string.IsNullOrWhiteSpace(subject))
            {
                throw new ArgumentNullException(nameof(subject));
            }

            var shops = await _repository.Search(new SearchShopsParameter
            {
                Subjects = new[] { subject }
            });

            _halResponseBuilder.AddLinks(l => l.AddSelf("/" + Constants.RouteNames.Shops + "/" + Constants.RouteNames.Me));
            foreach (var shop in shops.Content)
            {
                _shopEnricher.Enrich(_halResponseBuilder, shop);
            }

            return(new OkObjectResult(_halResponseBuilder.Build()));
        }
        public async Task <IActionResult> Execute(JObject jObj, string subject)
        {
            if (jObj == null)
            {
                throw new ArgumentNullException(nameof(jObj));
            }

            if (string.IsNullOrWhiteSpace(subject))
            {
                throw new ArgumentNullException(nameof(subject));
            }

            var request = _requestBuilder.GetNotificationStatus(jObj);

            request.To = subject;
            var content = await _notificationRepository.Search(request);

            var href = "/" + Constants.RouteNames.Notifications + "/" + Constants.RouteNames.Status;

            _halResponseBuilder.AddLinks(l => l.AddSelf(href)).AddEmbedded(e => e.AddObject(_responseBuilder.GetNotificationStatus(content)));
            return(new OkObjectResult(_halResponseBuilder.Build()));
        }
        public async Task <IActionResult> Execute(string subject)
        {
            if (string.IsNullOrWhiteSpace(subject))
            {
                throw new ArgumentNullException(nameof(subject));
            }

            var announces = await _repository.Search(new SearchClientServicesParameter
            {
                Subjects = new [] { subject }
            });

            _halResponseBuilder.AddLinks(l => l.AddSelf(GetAnnouncementLink()));
            if (announces.TotalResults > 0)
            {
                foreach (var announce in announces.Content)
                {
                    _enricher.Enrich(_halResponseBuilder, announce);
                }
            }

            return(new OkObjectResult(_halResponseBuilder.Build()));
        }
Example #12
0
        public async Task <IActionResult> Execute(string id, string subject)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                throw new ArgumentNullException(nameof(id));
            }

            if (string.IsNullOrWhiteSpace(subject))
            {
                throw new ArgumentNullException(nameof(subject));
            }

            var message = await _messageRepository.Get(id);

            if (message == null)
            {
                return(new NotFoundResult());
            }

            _halResponseBuilder.AddLinks(l => l.AddSelf("/" + Constants.RouteNames.Messages + "/" + id));
            _messageEnricher.Enrich(_halResponseBuilder, message);
            return(new OkObjectResult(_halResponseBuilder.Build()));
        }