public DeleteResult Delete(Guid id) { try { Connector.IsTransaction = true; PartnerCardDTO card = ReadById(id); bool result = false; if (card != null) { CardService cardService = new CardService(); cardService.Delete(card.Partner.StripeId, card.StripeId); result = Repository.Delete(id); Connector.CommitTransaction(); } else { Connector.RollbackTransaction(); } return(result ? DeleteResult.OK : DeleteResult.NotFound); } catch (Exception exception) { Connector.RollbackTransaction(); throw exception; } }
public void Insert(PartnerCardDTO card, out Guid?id) { id = Connector.ExecuteScalar <Guid?>(insertQuery, new Dictionary <string, object>() { { "Partner", card.Partner.Id }, { "StripeId", card.StripeId } }); }
public PartnerCardDTO ReadById(Guid id) { PartnerCardDTO card = Repository.SelectById(id); if (card != null) { card.StripeCard = GetStripeCard(card); } return(card); }
public AddCardResult AddCard(PartnerDTO partner, string tokenId) { PartnerCardBLL cardBLL = new PartnerCardBLL(Connector); PartnerCardDTO card = new PartnerCardDTO() { Partner = partner, StripeId = tokenId }; PartnerCardBLL.CreateResult result = cardBLL.Create(card); return((AddCardResult)(byte)result); }
public ActionResult DeleteCard(Guid id) { PartnerBLL partnerBLL = new PartnerBLL(WebApp.Connector); if (Request.HttpMethod == "GET") { PartnerCardDTO card = partnerBLL.ReadCardById(Account, id); return(card != null?View(card) as ActionResult : HttpNotFound()); } else { PartnerBLL.DeleteCardResult result = partnerBLL.DeleteCard(Account, id); switch (result) { case PartnerBLL.DeleteCardResult.OK: TempData["Result"] = "CardHasBeenDeleted"; return(RedirectToAction("MyCards")); case PartnerBLL.DeleteCardResult.NotFound: return(HttpNotFound()); default: return(BadRequest()); } } }
public CreateResult Create(PartnerCardDTO card) { CreateResult result = default; CardService cardService = new CardService(); TokenService tokenService = new TokenService(); Token stripeToken = tokenService.Get(card.StripeId); Card stripeNewCard = stripeToken.Card; if (stripeNewCard.Funding == "credit") { Connector.IsTransaction = true; try { PartnerDTO partner = card.Partner; string partnerStripeId = partner.StripeId; if (partnerStripeId == null) { CustomerService customerService = new CustomerService(); PartnerBLL partnerBLL = new PartnerBLL(Connector); Customer customer = customerService.Create(new CustomerCreateOptions() { Email = partner.EmailAddress }); partner.StripeId = customer.Id; partnerStripeId = partner.StripeId; partnerBLL.Update(card.Partner.Id, new Dictionary <string, object> { { "StripeId", partner.StripeId } }); } IEnumerable <Card> stripeCards = cardService.List(partnerStripeId); if (stripeCards.Count() < 10) { bool hasAlreadyBeenAdded = false; foreach (Card stripeCard in stripeCards) { if (stripeCard.Fingerprint == stripeNewCard.Fingerprint) { hasAlreadyBeenAdded = true; break; } } if (!hasAlreadyBeenAdded) { CardCreateOptions cardCreateOptions = new CardCreateOptions() { SourceToken = card.StripeId }; stripeNewCard = cardService.Create(card.Partner.StripeId, cardCreateOptions); card.StripeId = stripeNewCard.Id; Repository.Insert(card, out Guid? id); card.Id = id.Value; result = CreateResult.OK; } else { result = CreateResult.CardHasAlreadyBeenAdded; } Connector.CommitTransaction(); } else { Connector.RollbackTransaction(); result = CreateResult.MaximumAmountOfCardsReached; } } catch (Exception exception) { Connector.RollbackTransaction(); throw exception; } } else { result = CreateResult.CardIsNotCredit; } return(result); }
public Card GetStripeCard(PartnerCardDTO card, CardService cardService) => cardService.Get(card.Partner.StripeId, card.StripeId);
public Card GetStripeCard(PartnerCardDTO card) => GetStripeCard(card, new CardService());