public void SeedDatabase() { var accessorFactory = new AccessorFactory(); var applicationsAccessor = accessorFactory.CreateAccessor <IApplicationsAccessor>(); var claimsAccessor = accessorFactory.CreateAccessor <IClaimsAccessor>(); var userClaimsAccessor = accessorFactory.CreateAccessor <IUserClaimsAccessor>(); var membershipsAccessor = accessorFactory.CreateAccessor <IMembershipsAccessor>(); applicationsAccessor.SaveApplication(application); claimsAccessor.SaveClaim(claim); userClaimsAccessor.SaveUserClaim(userClaim); membershipsAccessor.SaveMembership(membership); }
protected IRemittanceAccessor CreateRemittanceAccessor() { var accessor = new AccessorFactory(_context, new UtilityFactory(_context)); var result = accessor.CreateAccessor <IRemittanceAccessor>(); return(result); }
private NotificationResponse SendOrderEventEmail(int orderId, string eventMessage) { try { // get the order info var order = AccessorFactory.CreateAccessor <IOrderAccessor>() .FindOrder(orderId); // get any necessary seller data var seller = AccessorFactory.CreateAccessor <ISellerAccessor>() .Find(order.SellerId); // format the email var messageBody = EngineFactory.CreateEngine <IEmailFormattingEngine>() .FormatOrderEmailBody(order, seller); // send the email AccessorFactory.CreateAccessor <IEmailAccessor>() .SendEmailNotification(order.BillingAddress.EmailAddress, $"{eventMessage}: {seller.Name}", messageBody); return(new NotificationResponse() { Success = true, Message = $"{eventMessage} email sent to {order.BillingAddress.EmailAddress} for order {order.Id}" }); } catch (Exception ex) { Logger.Error(ex); return(new NotificationResponse() { Success = false, Message = $"There was a problem processing the {eventMessage} notice" }); } }
WebStore.WebStoreSearchResponse WebStore.IWebStoreCatalogManager.Search(int catalogId, string query) { try { var products = AccessorFactory.CreateAccessor <ISearchAccessor>().Search(catalogId, query); var list = new List <WebStore.ProductSearchItem>(); foreach (var product in products) { var searchProduct = new WebStore.ProductSearchItem() { Id = product.Id, Name = product.Name, Price = product.Price }; list.Add(searchProduct); } return(new WebStore.WebStoreSearchResponse() { Success = true, Products = list.ToArray(), }); } catch (Exception ex) { Logger.Error(ex); return(new WebStore.WebStoreSearchResponse() { Success = false }); } }
public ProjectListItem[] GetAllProjects() { var projectAccess = AccessorFactory.CreateAccessor <IProjectAccess>(); DPL.PMTool.Accessors.Shared.EntityFramework.Project[] allProjects = projectAccess.Projects(); ProjectListItem[] projectList; if (allProjects == null) { projectList = new ProjectListItem[0]; } else { projectList = new ProjectListItem[allProjects.Length]; if (allProjects.Length > 0) { for (int i = 0; i < allProjects.Length; i++) { projectList[i] = new ProjectListItem(); projectList[i].Id = allProjects[i].Id; projectList[i].Name = allProjects[i].Name; } } } return(projectList); }
private IPaymentAccessor CreatePaymentAccessor(int sellerId = 1) { var accessor = new AccessorFactory(Context, new UtilityFactory(Context)); var result = accessor.CreateAccessor <IPaymentAccessor>(); return(result); }
public WebStore.WebStoreCartResponse SaveCartItem(int catalogId, int productId, int quantity) { try { // NOTE: no need to check for cart id in context since the accessor will take care of this for us and create a cart if necessary SalesAcc.ICartAccessor cartAccessor = AccessorFactory.CreateAccessor <SalesAcc.ICartAccessor>(); // Save the cart item Cart storedCart = cartAccessor.SaveCartItem(catalogId, productId, quantity); // generate the pricing and taxes for the cart and convert to the public DTO var result = GenerateCartPricingAndTax(storedCart); // Return the cart return(new WebStore.WebStoreCartResponse() { Success = true, Cart = result }); } catch (Exception ex) { Logger.Error(ex); return(new WebStore.WebStoreCartResponse() { Success = false, Message = "There was a problem editting the cart" }); } }
private IShippingAccessor CreateShippingAccessor() { var accessor = new AccessorFactory(Context, new UtilityFactory(Context)); var result = accessor.CreateAccessor <IShippingAccessor>(); return(result); }
string IServiceContractBase.TestMe(string input) { input = base.TestMe(input); input = AccessorFactory.CreateAccessor <ICatalogAccessor>().TestMe(input); return(input); }
public override string TestMe(string input) { input = base.TestMe(input); input = AccessorFactory.CreateAccessor <IRemittanceAccessor>().TestMe(input); return(input); }
protected IOrderAccessor CreateOrderAccessor(int sellerId = 1) { _context.SellerId = sellerId; var accessor = new AccessorFactory(_context, new UtilityFactory(_context)); var result = accessor.CreateAccessor <IOrderAccessor>(); return(result); }
protected ICartAccessor CreateCartAccessor(Guid sessionId) { _context.SessionId = sessionId; var accessor = new AccessorFactory(_context, new UtilityFactory(_context)); var result = accessor.CreateAccessor <ICartAccessor>(); return(result); }
public override string TestMe(string input) { input = base.TestMe(input); input = AccessorFactory.CreateAccessor <SalesAcc.ICartAccessor>().TestMe(input); input = EngineFactory.CreateEngine <ITaxCalculationEngine>().TestMe(input); input = EngineFactory.CreateEngine <ICartPricingEngine>().TestMe(input); return(input); }
public override string TestMe(string input) { input = base.TestMe(input); input = EngineFactory.CreateEngine <IEmailFormattingEngine>().TestMe(input); input = AccessorFactory.CreateAccessor <IEmailAccessor>().TestMe(input); return(input); }
BackOffice.OrderDataResponse BackOffice.IBackOfficeRemittanceManager.Totals() { try { // authenticate the user as a seller if (UtilityFactory.CreateUtility <ISecurityUtility>().BackOfficeAdminAuthenticated()) { var sellerOrderData = AccessorFactory.CreateAccessor <IRemittanceAccessor>() .SalesTotal(); if (sellerOrderData != null && sellerOrderData.Length > 0) { var result = new BackOffice.OrderDataResponse(); var items = new List <BackOffice.SellerOrderData>(); foreach (var item in sellerOrderData) { var mapped = DTOMapper.Map <BackOffice.SellerOrderData>(item); var calcResult = EngineFactory.CreateEngine <IRemittanceCalculationEngine>() .CalculateFee(mapped.SellerId, mapped.OrderTotal); mapped.FeeAmount = calcResult.FeeAmount; mapped.RemittanceAmount = calcResult.RemittanceAmount; items.Add(mapped); } result.Success = true; result.SellerOrderData = items.ToArray(); return(result); } else { return(new BackOffice.OrderDataResponse() { Success = false, Message = "No orders" }); } } return(new BackOffice.OrderDataResponse() { Success = false, Message = "BackOfficeAdmin not authenticated" }); } catch (Exception ex) { Logger.Error(ex); return(new BackOffice.OrderDataResponse() { Success = false, Message = "There was a problem accessing sellers orders" }); } }
private ITaxRateAccessor CreateAccessor() { var context = new Common.Contracts.AmbientContext(); var factory = new AccessorFactory( context, new Utilities.UtilityFactory(context)); return(factory.CreateAccessor <ITaxRateAccessor>()); }
public void InvalidAccessorType() { // Arrange IAccessorFactory factory = new AccessorFactory(); // Act var accessor = factory.CreateAccessor <string>(); // Assert // none - expect an exception to be thrown }
void Admin.IAdminCatalogManager.RebuildCatalog(int catalogId) { try { AccessorFactory.CreateAccessor <ISearchAccessor>().RebuildIndex(catalogId); } catch (Exception ex) { Logger.Error(ex); } }
//TODO: make this class private and implement an interface while still supporting unit testing and mocking public Product[] GetProductPricingUsingSearch(string brand, string productCode, string industryCode, bool useProxy, string connString) { // TODO: Need to refactor this so it is not so repetitive. Possibly pass in references to the engines and make the workflow here generic // TODO: Once we have searched and identified a product page url we should not need to search for subsequent price refreshes. // TODO: Consider breaking these calls out into discrete site-specific calls. var products = new List <Product>(); // Get the amazon product pricing var pageEngine = EngineFactory.CreateEngine <IWebPageEngine>(); var amznSearchParser = EngineFactory.CreateSiteEngine <ISearchLinkParserEngine>(WebstoreSite.Amazon); var amznProductParser = EngineFactory.CreateSiteEngine <IProductParserEngine>(WebstoreSite.Amazon); var productAccessor = AccessorFactory.CreateAccessor <IProductAccessor>(); string[] urls = amznSearchParser.GetProductUrls(pageEngine.GetWebPageContents(amznSearchParser.GetSearchUrl(brand, productCode, industryCode), useProxy)); // NOTE: for Amazon we are assuming that if more than 1 result returned then exact match not found so skip if (urls.Length > 0) { // Assume the first product in the result is the product in question // TODO: make this a little more robust in handling multiple search results coming back var product = amznProductParser.GetProductInfo(pageEngine.GetWebPageContents(urls[0], useProxy), brand, productCode, industryCode); if (product != null) { product.ProductUrl = urls[0]; product.ProductCode = industryCode; product.Brand = brand; products.Add(product); productAccessor.Save(connString, product); } } // Get the amain product pricing var amainSearchParser = EngineFactory.CreateSiteEngine <ISearchLinkParserEngine>(WebstoreSite.AMain); var amainProductParser = EngineFactory.CreateSiteEngine <IProductParserEngine>(WebstoreSite.AMain); urls = amainSearchParser.GetProductUrls(pageEngine.GetWebPageContents(amainSearchParser.GetSearchUrl(brand, productCode, industryCode), useProxy)); if (urls.Length > 0) { // Assume the first product in the result is the product in question // TODO: make this a little more robust in handling multiple search results coming back var product = amainProductParser.GetProductInfo(pageEngine.GetWebPageContents(urls[0], useProxy), brand, productCode, industryCode); if (product != null) { product.ProductUrl = urls[0]; product.ProductCode = industryCode; product.Brand = brand; products.Add(product); productAccessor.Save(connString, product); } } return(products.ToArray()); }
public Project Project(int id) { // this should load from the ProjectAccess service. var projectAccess = AccessorFactory.CreateAccessor <IProjectAccess>(); var dbProject = projectAccess.Project(id); // convert db project to client version var dbActivities = projectAccess.ActivitiesForProject(id); var clientProject = new Project(); Activity[] clientActivities; if (dbActivities != null) { clientActivities = new Activity[dbActivities.Length]; List <Activity> activitiesList = new List <Activity>(); foreach (var serverActivity in dbActivities) { Activity clientActivity = new Activity(); clientActivity.Id = serverActivity.Id; clientActivity.TaskName = serverActivity.TaskName; clientActivity.Estimate = serverActivity.Estimate; clientActivity.Predecessors = serverActivity.Predecessors; clientActivity.Resource = serverActivity.Resource; clientActivity.Priority = serverActivity.Priority; clientActivity.Start = serverActivity.Start; clientActivity.Finish = serverActivity.Finish; activitiesList.Add(clientActivity); } for (int i = 0; i < activitiesList.Count; i++) { clientActivities[i] = activitiesList[i]; } } else { clientActivities = new Activity[0]; } if (dbProject != null) { clientProject.Id = dbProject.Id; clientProject.Name = dbProject.Name; clientProject.Start = dbProject.Start; clientProject.Activities = clientActivities; } return(clientProject); }
public void GetUserById_StateUnderTest_ExpectedBehavior() { // Arrange var accessorFactory = new AccessorFactory(); var graphAccessor = accessorFactory.CreateAccessor <IGraphAccessor>(); string userId = "be64b27b-59b6-43bb-a824-51c16d328ffb"; // Act var result = graphAccessor.GetUserById(userId); // Assert Assert.Equal(expected: userId, actual: result.Id.ToString()); }
public void GetUserByDisplayName_StateUnderTest_ExpectedBehavior() { // Arrange var accessorFactory = new AccessorFactory(); var graphAccessor = accessorFactory.CreateAccessor <IGraphAccessor>(); string displayName = "Fake.User"; // Act var result = graphAccessor.GetUserByDisplayName(displayName); // Assert Assert.Equal(expected: displayName, actual: result.DisplayName); }
public void GetUserByEmail_StateUnderTest_ExpectedBehavior() { // Arrange var accessorFactory = new AccessorFactory(); var graphAccessor = accessorFactory.CreateAccessor <IGraphAccessor>(); string email = "*****@*****.**"; // Act var result = graphAccessor.GetUserByEmail(email); // Assert Assert.Equal(expected: email, actual: result.EmailAddress); }
public void FindAllApplications_StateUnderTest_ExpectedBehavior() { // Arrange var accessorFactory = new AccessorFactory(); var applicationsAccessor = accessorFactory.CreateAccessor <IApplicationsAccessor>(); var DatabaseMock = new DatabaseMock(); DatabaseMock.SeedDatabase(); // Act var result = applicationsAccessor.FindAllApplications(); // Assert Assert.NotEmpty(result); }
public void DeleteClaim_StateUnderTest_ExpectedBehavior() { // Arrange var accessorFactory = new AccessorFactory(); var claimsAccessor = accessorFactory.CreateAccessor <IClaimsAccessor>(); var DatabaseMock = new DatabaseMock(); DatabaseMock.SeedDatabase(); var claimId = DatabaseMock.GetId("claimId"); // Act claimsAccessor.DeleteClaim(claimId); // Assert Assert.Null(claimsAccessor.Find(claimId)); }
public void FindAllUserClaims_StateUnderTest_ExpectedBehavior() { // Arrange var accessorFactory = new AccessorFactory(); var userClaimsAccessor = accessorFactory.CreateAccessor <IUserClaimsAccessor>(); var DatabaseMock = new DatabaseMock(); DatabaseMock.SeedDatabase(); var userId = DatabaseMock.GetId("userId"); // Act var result = userClaimsAccessor.FindAllUserClaims(userId); // Assert Assert.NotEmpty(result); }
public void FindAllUsersForApplication_StateUnderTest_ExpectedBehavior() { // Arrange var accessorFactory = new AccessorFactory(); var applicationsAccessor = accessorFactory.CreateAccessor <IApplicationsAccessor>(); var DatabaseMock = new DatabaseMock(); DatabaseMock.SeedDatabase(); string applicationName = DatabaseMock.GetValue("applicationName"); // Act var result = applicationsAccessor.FindAllUsersForApplication(applicationName); // Assert Assert.NotEmpty(result); }
public void Find_StateUnderTest_ExpectedBehavior() { // Arrange var accessorFactory = new AccessorFactory(); var applicationsAccessor = accessorFactory.CreateAccessor <IApplicationsAccessor>(); var DatabaseMock = new DatabaseMock(); DatabaseMock.SeedDatabase(); var applicationId = DatabaseMock.GetId("applicationId"); // Act var result = applicationsAccessor.Find(applicationId); // Assert Assert.Equal(expected: applicationId, actual: result.Id); }
public void DeleteApplication_StateUnderTest_ExpectedBehavior() { // Arrange var accessorFactory = new AccessorFactory(); var applicationsAccessor = accessorFactory.CreateAccessor <IApplicationsAccessor>(); var DatabaseMock = new DatabaseMock(); DatabaseMock.SeedDatabase(); var applicationId = DatabaseMock.GetId("applicationId"); // Act applicationsAccessor.DeleteApplication(applicationId); // Assert Assert.Null(applicationsAccessor.Find(applicationId)); }
WebStore.WebStoreCatalogResponse WebStore.IWebStoreCatalogManager.ShowCatalog(int catalogId) { try { // Get the webstore catalog WebStore.WebStoreCatalog result = new WebStore.WebStoreCatalog(); ICatalogAccessor catalogAccessor = AccessorFactory.CreateAccessor <ICatalogAccessor>(); DTO.WebStoreCatalog accCatalog = catalogAccessor.Find(catalogId); // Get the webstore catalog products if (accCatalog != null) { DTOMapper.Map(accCatalog, result); DTO.Product[] catalogProducts = catalogAccessor.FindAllProductsForCatalog(catalogId); List <WebStore.ProductSummary> productList = new List <WebStore.ProductSummary>(); foreach (var catalogProduct in catalogProducts) { WebStore.ProductSummary product = new WebStore.ProductSummary(); DTOMapper.Map(catalogProduct, product); productList.Add(product); } result.Products = productList.ToArray(); return(new WebStore.WebStoreCatalogResponse() { Success = true, Catalog = result }); } return(new WebStore.WebStoreCatalogResponse() { Success = false, Message = "Catalog not found" }); } catch (Exception ex) { Logger.Error(ex); return(new WebStore.WebStoreCatalogResponse() { Success = false, Message = "There was a problem accessing the catalog" }); } }