private RetailerService CreateRetailerService() { var ownerId = Guid.Parse(User.Identity.GetUserId()); var service = new RetailerService(ownerId); return(service); }
public async void GetRetailers_CanGetAllRetailersAsList() { DbContextOptions <RimRockApiDbContext> options = new DbContextOptionsBuilder <RimRockApiDbContext>().UseInMemoryDatabase("CanGetAllRetailersAsList").Options; using (RimRockApiDbContext context = new RimRockApiDbContext(options)) { // Arrange Retailer retailer1 = new Retailer(); retailer1.ID = 1; retailer1.Name = "Second Ascents"; Retailer retailer2 = new Retailer(); retailer2.ID = 2; retailer2.Name = "Play It Again Sports"; // Act RetailerService retailerService = new RetailerService(context); await context.Retailers.AddAsync(retailer1); await context.Retailers.AddAsync(retailer2); await context.SaveChangesAsync(); List <Retailer> list = await retailerService.GetRetailers(); // Assert Assert.Equal(list[1], retailer2); }; }
public async Task <ActionResult> Retailers() { var sitemapItems = new List <SitemapItem>(); String key = String.Format("RetailersSiteMap-{0}", StoreId); ProductSitemapItemCache.TryGet(key, out sitemapItems); if (sitemapItems == null) { sitemapItems = new List <SitemapItem>(); var retailersTask = RetailerService.GetRetailersAsync(StoreId, null, true); await Task.WhenAll(retailersTask); var retailers = retailersTask.Result; foreach (var retailer in retailers) { var retailerDetailLink = LinkHelper.GetRetailerIdRouteValue(retailer); var siteMap = new SitemapItem(Url.AbsoluteAction("detail", "retailers", new { id = retailerDetailLink }), changeFrequency: SitemapChangeFrequency.Monthly, priority: 1.0); sitemapItems.Add(siteMap); } ProductSitemapItemCache.Set(key, sitemapItems, MemoryCacheHelper.CacheAbsoluteExpirationPolicy(ProjectAppSettings.CacheLongSeconds)); } return(new SitemapResult(sitemapItems)); }
public IHttpActionResult Get(int id) { RetailerService customerService = CreateRetailerService(); var retailer = customerService.GetRetailerbyId(id); return(Ok(retailer)); }
public IHttpActionResult GetAll() { RetailerService RetailerService = CreateRetailerService(); var retailer = RetailerService.GetAllRetailers(); return(Ok(retailer)); }
public async Task <ActionResult> Index() { try { var pageDesignTask = PageDesignService.GetPageDesignByName(StoreId, IndexPageDesingName); var retailersTask = RetailerService.GetRetailersAsync(StoreId, null, true); var settings = GetStoreSettings(); RetailerHelper.StoreSettings = settings; RetailerHelper.ImageWidth = GetSettingValueInt("RetailersIndex_ImageWidth", 50); RetailerHelper.ImageHeight = GetSettingValueInt("RetailersIndex_ImageHeight", 50); await Task.WhenAll(pageDesignTask, retailersTask); var pageDesign = pageDesignTask.Result; var retailers = retailersTask.Result; if (pageDesign == null) { throw new Exception("PageDesing is null:" + IndexPageDesingName); } var pageOutput = RetailerHelper.GetRetailers(retailers, pageDesign); pageOutput.StoreSettings = settings; pageOutput.PageTitle = "Retailers"; pageOutput.MyStore = this.MyStore; return(View(pageOutput)); } catch (Exception ex) { Logger.Error(ex, "Index:" + ex.StackTrace); return(new HttpStatusCodeResult(500)); } }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log) { try { log.LogInformation("C# HTTP trigger function processed a request."); var requestBody = await new StreamReader(req.Body).ReadToEndAsync(); var requestBodyParsed = JObject.Parse(requestBody); ConsumerOperationsBodyValidator.ValidateBody(requestBodyParsed); var contractAddress = requestBodyParsed.Value <string>("contractAddress"); var userId = requestBodyParsed.Value <string>("userId"); var userProfile = await _userProfileService.GetUserProfile(userId); var keyStoreString = JsonConvert.SerializeObject(userProfile.UserKeyStore); var web3 = Web3Service.Initialize(keyStoreString, userProfile.Password); var retailerService = new RetailerService(web3, contractAddress); var createOrder = JsonConvert.DeserializeObject <CreateOrderFunction>(requestBody); createOrder.ClientEmail = userProfile.Email; var receiptForCreateOrderFunctionCall = await retailerService.CreateOrderRequestAndWaitForReceiptAsync(createOrder); var orderCreatedEvent = receiptForCreateOrderFunctionCall.DecodeAllEvents <OrderCreatedEventDTO>().FirstOrDefault().Event; log.LogInformation("Event:"); log.LogInformation($" Message: {orderCreatedEvent.Message}"); log.LogInformation($" Order ID: {orderCreatedEvent.OrderId}"); log.LogInformation($" Status: {orderCreatedEvent.Status}"); log.LogInformation($"Finished storing an int: Tx Hash: {receiptForCreateOrderFunctionCall.TransactionHash}"); log.LogInformation($"Finished storing an int: Tx Status: {receiptForCreateOrderFunctionCall.Status.Value}"); return(new OkObjectResult(orderCreatedEvent.OrderId)); } catch (Exception e) { log.LogInformation($"The following Exception was raised in CreateOrder: {e.Message}"); if (e is UserProfileException || e is SmartContractRevertException || e is RpcResponseException) { return(new ContentResult { StatusCode = 401, Content = Messages.UnAuthorizedMessage }); } return(new BadRequestObjectResult(e.Message)); } }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log) { try { var requestBody = await new StreamReader(req.Body).ReadToEndAsync(); log.LogInformation($"Request body: {requestBody}"); var requestBodyParsed = JObject.Parse(requestBody); ConsumerOperationsBodyValidator.ValidateBody(requestBodyParsed); var contractAddress = requestBodyParsed.Value <string>("contractAddress"); var userId = requestBodyParsed.Value <string>("userId"); var userProfile = await _userProfileService.GetUserProfile(userId); var keyStoreString = JsonConvert.SerializeObject(userProfile.UserKeyStore); var web3 = Web3Service.Initialize(keyStoreString, userProfile.Password); var retailerService = new RetailerService(web3, contractAddress); var getOrderStatus = JsonConvert.DeserializeObject <GetOrderStatusFunction>(requestBody); var orderStatus = await retailerService.GetOrderStatusQueryAsync(getOrderStatus); log.LogInformation($"Order status: {orderStatus}"); return(new OkObjectResult(new OrderStatusResponse { status = orderStatus, details = ((OrderStatus)orderStatus).ToString() })); } catch (Exception e) { log.LogInformation($"The following Exception was raised in GetOrderStatus: {e.Message}"); if (e is UserProfileException || e is SmartContractRevertException || e is RpcResponseException) { return(new ContentResult { StatusCode = 401, Content = Messages.UnAuthorizedMessage }); } return(new BadRequestObjectResult(e.Message)); } }
public async Task ShowRemoveRetailerModalAsync(Guid RetailerId) { var DeleteRetailerModal = Modal.Show <Confirmation>("Are you sure you want to delete this Retailer?"); var result = await DeleteRetailerModal.Result; if (!result.Cancelled) { var Installers = await InstallerService.GetAllInstallersByRetailerIdAsync(RetailerId); foreach (var installer in Installers) { await InstallerService.DeleteInstallerAsync(installer.Id); } await RetailerService.DeleteRetailerAsync(RetailerId); await Refresh(); } }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log) { try { var requestBody = await new StreamReader(req.Body).ReadToEndAsync(); log.LogInformation($"Request body: {requestBody}"); var requestBodyParsed = JObject.Parse(requestBody); BaseBodyValidator.ValidateBody(requestBodyParsed); var contractAddress = requestBodyParsed.Value <string>("contractAddress"); var web3 = Web3Service.Initialize(); var retailerService = new RetailerService(web3, contractAddress); var checkOrderItemsAvailability = JsonConvert.DeserializeObject <CheckOrderItemsAvailabilityFunction>(requestBody); await retailerService.CheckOrderItemsAvailabilityQueryAsync(checkOrderItemsAvailability); log.LogInformation($"Order {checkOrderItemsAvailability.OrderId} availability checked."); return(new OkResult()); } catch (Exception e) { log.LogInformation($"The following Exception was raised in CheckOrderItemsAvailability: {e.Message}"); if (e is SmartContractRevertException || e is RpcResponseException) { return(new ContentResult { StatusCode = 401, Content = Messages.UnAuthorizedMessage }); } return(new BadRequestObjectResult(e.Message)); } }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log) { var requestBody = await new StreamReader(req.Body).ReadToEndAsync(); log.LogInformation($"Request body: {requestBody}"); var requestBodyParsed = JObject.Parse(requestBody); var contractAddress = requestBodyParsed.Value <string>("contractAddress"); var userId = requestBodyParsed.Value <string>("userId"); var web3 = Web3Service.Initialize(); var retailerService = new RetailerService(web3, contractAddress); var updateMinItemsPerOrder = JsonConvert.DeserializeObject <UpdateMinItemsPerOrderFunction>(requestBody); try { await retailerService.UpdateMinItemsPerOrderRequestAsync(updateMinItemsPerOrder); log.LogInformation($"The minimum amount allowed of an item has been updated to: {updateMinItemsPerOrder.MinItems}"); return(new OkResult()); } catch (Exception e) { log.LogInformation($"The following Exception was raised in UpdateMinItemsPerOrder: {e.Message}"); if (e is SmartContractRevertException || e is RpcResponseException) { return(new ContentResult { StatusCode = 401, Content = Messages.UnAuthorizedMessage }); } return(new BadRequestObjectResult(e.Message)); } }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log) { try { var requestBody = await new StreamReader(req.Body).ReadToEndAsync(); log.LogInformation($"Request body: {requestBody}"); var requestBodyParsed = JObject.Parse(requestBody); BaseBodyValidator.ValidateBody(requestBodyParsed); var contractAddress = requestBodyParsed.Value <string>("contractAddress"); var web3 = Web3Service.Initialize(); var retailerService = new RetailerService(web3, contractAddress); var newOrders = await retailerService.GetNewOrdersQueryAsync(); log.LogInformation($"The amount of new orders is: {newOrders.Count}"); return(new OkObjectResult(newOrders)); } catch (Exception e) { log.LogInformation($"The following Exception was raised in GetNewOrders: {e.Message}"); if (e is SmartContractRevertException || e is RpcResponseException) { return(new ContentResult { StatusCode = 401, Content = Messages.UnAuthorizedMessage }); } return(new BadRequestObjectResult(e.Message)); } }
public async Task <ActionResult> Detail(String id = "") { try { int retailerId = id.Split("-".ToCharArray()).Last().ToInt(); var pageDesignTask = PageDesignService.GetPageDesignByName(StoreId, RetailerDetailPageDesignName); var retailerTask = RetailerService.GetRetailerAsync(retailerId); var take = GetSettingValueInt("RetailerProducts_ItemNumber", 20); var productsTask = ProductService.GetProductsByProductTypeAsync(StoreId, null, null, retailerId, StoreConstants.ProductType, 1, take, true, "normal", null); var productCategoriesTask = ProductCategoryService.GetCategoriesByRetailerIdAsync(StoreId, retailerId); var settings = GetStoreSettings(); RetailerHelper.StoreSettings = settings; RetailerHelper.ImageWidth = GetSettingValueInt("RetailerDetail_ImageWidth", 50); RetailerHelper.ImageHeight = GetSettingValueInt("RetailerDetail_ImageHeight", 50); await Task.WhenAll(retailerTask, pageDesignTask, productsTask, productCategoriesTask); var pageDesign = pageDesignTask.Result; var products = productsTask.Result; var productCategories = productCategoriesTask.Result; var retailer = retailerTask.Result; if (pageDesign == null) { throw new Exception("PageDesing is null:" + RetailerDetailPageDesignName); } var dic = RetailerHelper.GetRetailerDetailPage(retailer, products, pageDesign, productCategories); dic.StoreSettings = settings; dic.MyStore = this.MyStore; dic.PageTitle = retailer.Name; return(View(dic)); } catch (Exception ex) { Logger.Error(ex, "Stack Trace:" + ex.StackTrace, id); return(new HttpStatusCodeResult(500)); } }
public async void GetRetailer_CanGetSingleRetailer() { DbContextOptions <RimRockApiDbContext> options = new DbContextOptionsBuilder <RimRockApiDbContext>().UseInMemoryDatabase("CanGetSingleRetailer").Options; using (RimRockApiDbContext context = new RimRockApiDbContext(options)) { // Arrange Retailer retailer = new Retailer(); retailer.ID = 1; retailer.Name = "Backcountry Essentials"; // Act RetailerService retailerService = new RetailerService(context); await context.Retailers.AddAsync(retailer); await context.SaveChangesAsync(); Retailer result = await retailerService.GetRetailer(retailer.ID); // Assert Assert.Equal(result, retailer); }; }
public async Task AddNewRetailerAsync(CreateRetailerRequest RetailerRequest) { await RetailerService.AddNewRetailerAsync(RetailerRequest); await ModalInstance.CloseAsync(); }
public async Task Refresh() { Retailer = await RetailerService.GetOneRetailerAsync(RetailerId); Installers = await InstallerService.GetAllInstallersByRetailerIdAsync(RetailerId); }
public async Task Refresh() { Retailers = await RetailerService.GetAllRetailersAsync(); }