/// <inheritdoc /> public double GetTotalCost(GenericRequestModel grm) { var selectStatement = $@"SELECT SUM(Price) AS total FROM Item JOIN ShoppingCart_LinkTable ON Item.Id = ShoppingCart_LinkTable.ItemId WHERE ShoppingCart_LinkTable.UserId = {grm.CurrentUser.Id}"; //Open DB _dbconn.Open(); //Start query try { using (var cmd = _dbconn.CreateCommand()) { cmd.CommandText = selectStatement; var rdr = cmd.ExecuteReader(); return(rdr.Read() ? Convert.ToDouble(rdr["total"]) : 0d); } } catch (Exception) { //@TODO: Add logging return(0d); } finally { if (_dbconn.State == ConnectionState.Open) { _dbconn.Close(); } } }
public void AddItems_ControllerTest() { //Arrange Bootstrapper.Run(); DatabaseDriver.ValidateDBStatus(); var controller = Bootstrapper._container.Resolve <IShoppingCartController>(); var service = Bootstrapper._container.Resolve <IShoppingCartService>(); var itemList = new List <Item> { new Item { Id = 6, Name = "Test Item", Description = "Test Description", Price = 9999 } }; var user = new User { Id = 1 }; var grm = new GenericRequestModel { CurrentUser = user, Items = itemList }; //Act //var result = controller.AddItems(grm); var result = service.AddItems(grm); //Assert Assert.AreEqual(result, true); }
public IHttpActionResult ListItems([FromBody] GenericRequestModel grm) { var result = _svc.ListItems(grm); return(Ok(new { result })); }
public IHttpActionResult ClearCart([FromBody] GenericRequestModel grm) { var result = _svc.ClearCart(grm); return(Ok(new { result })); }
public IHttpActionResult GetSalesTax([FromBody] GenericRequestModel grm) { var result = _svc.GetSalesTax(grm); return(Ok(new { result })); }
public IHttpActionResult ApplyBuyOneGetOne(GenericRequestModel grm) { var result = _svc.ApplyBuyOneGetOne(grm); return(Ok(new { result })); }
/// <inheritdoc /> public double GetSalesTax(GenericRequestModel grm) { //Retrieve price var price = GetTotalCost(grm); //Retrieve sales tax var taxRate = ExternCall.GetTaxRate(grm.CurrentUser.RegionCode); //Return value return(price * taxRate); }
/// <inheritdoc /> public IEnumerable <Item> ListItems(GenericRequestModel grm) { var selectStatement = $@"SELECT Item.Id, Item.Name, Item.Description, Item.Price FROM ShoppingCart_LinkTable JOIN Item on ShoppingCart_LinkTable.ItemId = Item.Id WHERE ShoppingCart_LinkTable.UserId = {grm.CurrentUser.Id}"; //Open DB _dbconn.Open(); //Start query try { using (var cmd = _dbconn.CreateCommand()) { cmd.CommandText = selectStatement; var rdr = cmd.ExecuteReader(); //Instantiate return object and iterate results var returnList = new List <Item>(); while (rdr.Read()) { returnList.Add(new Item { Description = Convert.ToString(rdr["Description"]), Id = Convert.ToInt32(rdr["Id"]), Name = Convert.ToString(rdr["Name"]), Price = Convert.ToDouble(rdr["Price"]) }); } //Return results return(returnList); } } catch (Exception) { //@TODO: Add logging return(new List <Item>()); } finally { if (_dbconn.State == ConnectionState.Open) { _dbconn.Close(); } } }
public JsonResult GetAuthenticationStatus(GenericRequestModel request) { GenericResultModel a = new GenericResultModel() { ErrorReference = "", Feedback = "", HasError = false, IsAuthenticationError = false, IsValidationError = false, MaintenanceMessage = "", MaintenanceMode = false, FullName = request.SessionUserName }; return(Json(a, JsonRequestBehavior.DenyGet)); }
public IActionResult SendTransaction([FromBody] GenericRequestModel <string> txHex) { string txid = string.Empty; string errMessage = string.Empty; try { txid = CoinService.SendRawTransaction(txHex.Data, false); var raw = Newtonsoft.Json.JsonConvert.SerializeObject(CoinService.DecodeRawTransaction(txHex.Data)); string cmdString = "INSERT INTO [TransactionBroadcast] ([TxId],[BroadcastTime],[RawTransaction]) VALUES (@TxId, @BroadcastTime, @RawTransaction)"; using (SqlConnection conn = new SqlConnection(connString)) { using (SqlCommand comm = new SqlCommand()) { comm.Connection = conn; comm.CommandText = cmdString; comm.Parameters.AddWithValue("@TxId", txid); comm.Parameters.AddWithValue("@BroadcastTime", DateTime.UtcNow); comm.Parameters.AddWithValue("@RawTransaction", raw); try { conn.Open(); comm.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine("SQL Error" + ex.Message); } } } } catch (Exception ex) { return(BadRequest(new ErrorModel() { Error = "Transactions pending, please try again after 1 minute." })); } return(new ObjectResult(new { tx = txid })); }
/// <inheritdoc /> public double ApplyBuyOneGetOne(GenericRequestModel grm) { //Create select statement var selectStatement = $@"SELECT SUM(Price) AS total FROM Item JOIN ShoppingCart_LinkTable ON ShoppingCart_LinkTable.ItemId = Item.Id WHERE UserId = {grm.CurrentUser.Id} AND Item.Id NOT IN ( SELECT bItem.Id FROM Item as fItem JOIN Item as bItem ON fItem.BuyOneGetOne_ItemId = bItem.Id)"; //Open DB _dbconn.Open(); //Start query try { using (var cmd = _dbconn.CreateCommand()) { cmd.CommandText = selectStatement; var rdr = cmd.ExecuteReader(); return(rdr.Read() ? Convert.ToDouble(rdr["total"]) : 0d); } } catch (Exception) { //@TODO: Add logging return(0d); } finally { if (_dbconn.State == ConnectionState.Open) { _dbconn.Close(); } } }
/// <inheritdoc /> public bool AddItems(GenericRequestModel grm) => BulkExecute(grm.Items.Select(item => $"INSERT INTO ShoppingCart_LinkTable (UserId, ItemId) VALUES ({grm.CurrentUser.Id}, {item.Id})") .ToList());
/// <inheritdoc /> public IEnumerable <Item> ListItems(GenericRequestModel grm) => _vreader.ListItems(grm);
/// <inheritdoc /> public bool ClearCart(GenericRequestModel grm) => _vreader.ClearCart(grm);
/// <inhericdoc /> public bool ClearCart(GenericRequestModel grm) => Execute($"DELETE FROM ShoppingCart_LinkTable WHERE UserId = {grm.CurrentUser.Id}");
public static NavigationStructureResultModel GetUserNavigationStructure(GenericRequestModel request) { NavigationStructureResultModel result = new NavigationStructureResultModel() { HasError = false, Feedback = "", MaintenanceMode = false, MaintenanceMessage = "" }; result.ComplianceNavigation = new List <NavigationItemModel>(); result.DeclarationsNavigation = new List <NavigationItemModel>(); bool showComplianceAdminNavigation = false; bool showDeclarationsAdminNavigation = false; try { using (var dm = new Entities(request.SessionUserName)) { showComplianceAdminNavigation = request.UserRoles.Contains("Developers") || request.UserRoles.Contains("Compliance Super User") || request.UserRoles.Contains("Compliance Officer") || request.UserRoles.Contains("Chief Compliance & Ethics Officer") || request.UserRoles.Contains("Senior Compliance Manager"); //COMPLIANCE NAVIGATION bool showCompliance = false; if (showComplianceAdminNavigation) { showCompliance = true; } if (showCompliance) { result.ComplianceNavigation.Add(new NavigationItemModel() { IsParent = false, ItemTitle = "Compliance Home", RoutePath = "compliance-home" }); } result.ComplianceNavigation.Add(new NavigationItemModel() { IsParent = false, ItemTitle = "My Compliance Officer", RoutePath = "compliance-officer-list" }); //COMPLIANCE ADMIN NAVIGATION if (showComplianceAdminNavigation) { var adminNavigation = new NavigationItemModel { IsParent = true, ItemTitle = "Admin" }; result.ComplianceNavigation.Insert(0, adminNavigation); if (request.UserRoles.Contains("Compliance Super User") || request.UserRoles.Contains("Senior Compliance Manager")) { adminNavigation.ChildItems.Add(new NavigationItemModel() { IsParent = false, ItemTitle = "Confirmations Planning", RoutePath = "compliance-planning" }); } if (request.UserRoles.Contains("Compliance Super User")) { adminNavigation.ChildItems.Add(new NavigationItemModel() { IsParent = false, ItemTitle = "Manage User Roles", RoutePath = "compliance-user-roles" }); } if (request.UserRoles.Contains("Compliance Officer") || request.UserRoles.Contains("Senior Compliance Manager") || request.UserRoles.Contains("Chief Compliance & Ethics Officer")) { if (request.UserRoles.Contains("Compliance Officer") || request.UserRoles.Contains("Compliance Super User") || request.UserRoles.Contains("Senior Compliance Manager")) { adminNavigation.ChildItems.Add(new NavigationItemModel() { IsParent = false, ItemTitle = "Employees", RoutePath = "compliance-employees", beginGroup = true }); } if (request.UserRoles.Contains("Compliance Officer") || request.UserRoles.Contains("Senior Compliance Manager") || request.UserRoles.Contains("Compliance Super User")) { adminNavigation.ChildItems.Add(new NavigationItemModel() { IsParent = false, ItemTitle = "Conditional Items", RoutePath = "compliance-conditionals" }); } if (request.UserRoles.Contains("Compliance Officer") || request.UserRoles.Contains("Senior Compliance Manager") || request.UserRoles.Contains("Compliance Super User")) { adminNavigation.ChildItems.Add(new NavigationItemModel() { IsParent = false, ItemTitle = "Manual Data Capture", RoutePath = "compliance-manual-capture" }); } if (request.UserRoles.Contains("Compliance Officer") || request.UserRoles.Contains("Chief Compliance & Ethics Officer") || request.UserRoles.Contains("Senior Compliance Manager") || request.UserRoles.Contains("Compliance Super User")) { var phaseCompletion = new NavigationItemModel() { IsParent = true, ItemTitle = "Phase Completion", //RoutePath = "compliance-phasecompletion", ChildItems = new List <NavigationItemModel>() }; phaseCompletion.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Phase 1", RoutePath = "compliance-phasecompletion-1" }); if (request.UserRoles.Contains("Chief Compliance & Ethics Officer")) { phaseCompletion.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Phase 2", RoutePath = "compliance-phasecompletion-2" }); phaseCompletion.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Phase 3", RoutePath = "compliance-phasecompletion-3" }); phaseCompletion.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Phase 4", RoutePath = "compliance-phasecompletion-4" }); } adminNavigation.ChildItems.Add(phaseCompletion); adminNavigation.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Conditional Reports", RoutePath = "compliance-conditional-reports" }); adminNavigation.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "OME/s Conditional Report", RoutePath = "compliance-ome-conditional-report" }); adminNavigation.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Conditional Issue Log Audit", RoutePath = "compliance-conditionals-issue-log-audit" }); } var reports = new NavigationItemModel() { IsParent = true, ItemTitle = "Reports", beginGroup = true }; adminNavigation.ChildItems.Add(reports); reports.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Employee Status", RoutePath = "compliance-reporting-employee-status" }); reports.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Employee Non-Participation", RoutePath = "compliance-reporting-employee-non-participation" }); reports.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Conditional Status", RoutePath = "compliance-reporting-conditional-status", beginGroup = true }); reports.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Conditional Risk Categories", RoutePath = "compliance-reporting-conditional-risk-categories" }); reports.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Conditional Reasons for Previously Reported", RoutePath = "compliance-reporting-conditional-confirmed-reported-reasons" }); reports.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Confirmations Per Day", RoutePath = "compliance-confirmations-report-daily", beginGroup = true }); var emails = new NavigationItemModel() { IsParent = true, ItemTitle = "Email Listings", //RoutePath = "compliance-emailnotificationsummary", ChildItems = new List <NavigationItemModel>() }; emails.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Summary List", RoutePath = "compliance-emailnotificationsummary", ChildItems = new List <NavigationItemModel>() }); emails.ChildItems.Add(new NavigationItemModel() { IsParent = false, ItemTitle = "Detail List", RoutePath = "compliance-emailnotificationdetail" }); adminNavigation.ChildItems.Add(emails); } } result.DeclarationsNavigation.Add(new NavigationItemModel() { IsParent = false, ItemTitle = "Home", RoutePath = "declarations-home" }); //Declarations var declarationsMenu = new NavigationItemModel() { IsParent = true, ItemTitle = "Declaration" //RoutePath = "declarations-process-information" }; //:Personal Information declarationsMenu.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Personal Information", RoutePath = "declarations-process-information" }); //:Directorships declarationsMenu.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Directorships", RoutePath = "declarations-process-directorships" }); //:Shares declarationsMenu.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Financial Interests / Shares", RoutePath = "declarations-process-shares" }); //:Conflicts of Interest declarationsMenu.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Conflict of Interest", RoutePath = "declarations-process-conflicts" }); //:Private Work declarationsMenu.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Private Work", RoutePath = "declarations-process-work" }); //:Gifts declarationsMenu.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Gifts & Entertainment", RoutePath = "declarations-process-gifts" }); //:Summary Page declarationsMenu.ChildItems.Add(new NavigationItemModel { IsParent = false, ItemTitle = "Summary Page", RoutePath = "declarations-process-summary", beginGroup = true, ShowBadge = false }); result.DeclarationsNavigation.Add(declarationsMenu); //Related Parties result.DeclarationsNavigation.Add(new NavigationItemModel() { IsParent = false, ItemTitle = "Related Parties", RoutePath = "declarations-related-parties" }); result.DeclarationsNavigation.Add(new NavigationItemModel() { IsParent = false, ItemTitle = "Summary Page", RoutePath = "declarations-process-summary" }); result.DeclarationsNavigation.Add(new NavigationItemModel() { IsParent = false, ItemTitle = "Policies", RoutePath = "declarations-policies" }); result.DeclarationsNavigation.Add(new NavigationItemModel() { IsParent = false, ItemTitle = "Help", RoutePath = "declarations-help" }); } } catch (Exception error) { var errorState = ErrorHandling.HandleError(error); result.Feedback = errorState.ErrorMessage; result.IsValidationError = errorState.IsValidationError; result.HasError = true; } return(result); }
/// <inheritdoc /> public double GetTotalCost(GenericRequestModel grm) => _vreader.GetTotalCost(grm);
/// <inheritdoc /> public double GetSalesTax(GenericRequestModel grm) => _vreader.GetSalesTax(grm);
/// <inheritdoc /> public double ApplyBuyOneGetOne(GenericRequestModel grm) => _vreader.ApplyBuyOneGetOne(grm);
/// <inheritdoc /> public bool RemoveItems(GenericRequestModel grm) => _vreader.RemoveItems(grm);
public IActionResult SendTransaction([FromBody] GenericRequestModel <string> txHex) { var watch = System.Diagnostics.Stopwatch.StartNew(); string txid = string.Empty; string errMessage = string.Empty; bool isInstantPay = true; try { //txid = CoinService.SendRawTransaction(txHex.Data, false); var rawTx = CoinService.DecodeRawTransaction(txHex.Data); var senderTxs = rawTx.Vin.Select(t => new TransactionList() { Txid = t.TxId, Index = Convert.ToInt32(t.Vout) }).ToList(); isInstantPay = CheckInstantPay(senderTxs); try { txid = CoinService.SendRawTransaction(txHex.Data, false, isInstantPay); } catch (System.Exception ex) { if (ex.Message.IndexOf("Not a valid InstantSend") > -1) { try { txid = CoinService.SendRawTransaction(txHex.Data, false, false); } catch (System.Exception newEx) { return(BadRequest(new ErrorModel() { Error = "Transactions pending, please try again after 1 minute.", Description = newEx.Message })); } } return(BadRequest(new ErrorModel() { Error = "Transactions pending, please try again after 1 minute.", Description = ex.Message })); } Task.Run(() => SaveDbTransaction(txid, txHex.Data)); } catch (Exception ex) { return(BadRequest(new ErrorModel() { Error = "Transactions pending, please try again after 1 minute.", Description = ex.Message })); } watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; return(new ObjectResult(new { tx = txid, isInstantPay = isInstantPay, Execution = elapsedMs })); }
public JsonResult TestAPIAuthentication(GenericRequestModel request) { return(Json(request, JsonRequestBehavior.DenyGet)); }
public JsonResult GetUserNavigationStructure(GenericRequestModel request) { return(Json(NavigationLogic.GetUserNavigationStructure(request), JsonRequestBehavior.DenyGet)); }
/// <inheritdoc /> public bool RemoveItems(GenericRequestModel grm) => BulkExecute(grm.Items.Select(item => $"DELETE FROM ShoppingCart_LinkTable WHERE UserId = {grm.CurrentUser.Id} AND ItemId = {item.Id}") .ToList());
/// <inheritdoc /> public bool AddItems(GenericRequestModel grm) => _vreader.AddItems(grm);
public JsonResult CheckAuthentication(GenericRequestModel request) { return(new JsonNetResult(new GenericResultModel(), JsonRequestBehavior.DenyGet)); }