public PaymentCardPresenter(PaymentCardDTO paymentCardDTO) { this.HolderName = paymentCardDTO.HolderName; this.CardNumber = paymentCardDTO.CardNumber; this.stripecardId = paymentCardDTO.StripeCardId; this.PaymentCardId = paymentCardDTO.PaymentCardId; DeleteCardCommand = new Command(async() => { var deleted = await CardDataStore.DeletePaymentCard(paymentCardId.ToString()); if (deleted) { var cardDeleteStripeResult = await stripeServiceDS.DeleteCardFromCustomer(App.LogUser.StripeUserId, this.StipeCardId); if (cardDeleteStripeResult) { MessagingCenter.Send <PaymentCardPresenter>(this, "PaymencardDeleteMsg"); } } //await Shell.Current.GoToAsync($"{EditCardPage.Route}"); }); }
public CardsListPage(CardDataStore cards) { InitializeComponent(); this.Cards = cards; BindingContext = viewModel = new CardsViewModel(this.Cards); }
public CardDataStore.CardsQuery GetQuery() { string field = this.SearchCriteria.Field.Replace(" ", ""); PropertyInfo property = typeof(Card).GetProperty(field); if (property.PropertyType == typeof(bool)) { return(CardDataStore.Where(SearchCriteria.Field, SearchCriteria.Set)); } else if (SearchCriteria.Operation == "Exists") { return(CardDataStore.Where(SearchCriteria.Field, SearchCriteria.Operation, SearchCriteria.Set.ToString())); } else { return(CardDataStore.Where(SearchCriteria.Field, SearchCriteria.Operation, SearchCriteria.Value)); } }
async Task ExecuteLoadItems() { TokenExpManger tokenExpManger = new TokenExpManger(App.TokenDto.Exp); if (tokenExpManger.IsExpired()) { await tokenExpManger.CloseSession(); } else { var tokenData = new JwtSecurityTokenHandler().ReadJwtToken(App.TokenDto.Token); var cardData = await CardDataStore.GetCardDTOFromUser(App.LogUser.UserId, App.TokenDto.Token); foreach (var item in cardData) { var cardPresenter = new PaymentCardPresenter(item); PaymentCardPresenters.Add(cardPresenter); } } }
async void AllWithArt(object sender, EventArgs e) { await Navigation.PushAsync(new CardsListPage(CardDataStore.Where("IllustrationId", "Equals", this.Cards[this.Carousel.Position].IllustrationId).ToDataStore())); }
public RegisterCardViewModel() { PropertiesInitializer(); CompleteRegisterCardCommand = new Command(async() => { TokenExpManger tokenExpManger = new TokenExpManger(App.TokenDto.Exp); if (tokenExpManger.IsExpired()) { await tokenExpManger.CloseSession(); } else { HolderNameValidator = ValidatorRules.EmptyOrNullValueRule(HolderName); CardNumberValidator = ValidatorRules.EmptyOrNullValueRule(CardNumber); YearValidator = ValidatorRules.EmptyOrNullValueRule(Year); MonthVaidator = ValidatorRules.EmptyOrNullValueRule(Month); CVCValidator = ValidatorRules.EmptyOrNullValueRule(CVC); if (!HolderNameValidator.HasError && !CardNumberValidator.HasError && !YearValidator.HasError && !MonthVaidator.HasError && !CVCValidator.HasError) { try { var cardData = new PaymentCard() { CardNumber = CardNumber, Cvc = CVC, HolderName = HolderName, Month = Month, Year = Year, PaymentCardId = Guid.NewGuid(), UserId = App.LogUser.UserId }; var cardserviceResult = await stripeServiceDS.InsertStripeCardToStripeUser(cardData, App.LogUser.StripeUserId); if (!cardserviceResult.HasError) { cardData.StripeCardId = cardserviceResult.TokenId; var result = await CardDataStore.AddItemAsync(cardData); if (result) { await Shell.Current.DisplayAlert("Notification", "Card succefully added.", "OK"); } } else { await Shell.Current.DisplayAlert("Notification", cardserviceResult.ErrorMsg, "OK"); } } catch (Exception e) { await Shell.Current.DisplayAlert("Notification", e.Message, "OK"); } } } }); }
public GetLicenceViewModel() { GetLicenseCommand = new Command <string>(async(arg) => { TokenExpManger tokenExpManger = new TokenExpManger(App.TokenDto.Exp); if (tokenExpManger.IsExpired()) { await tokenExpManger.CloseSession(); } else { var result = await Shell.Current.DisplayAlert("Notification", "Your are going to get a store license.For the cost $100 by month. Are you OK with that?", "Yes", "No"); if (result) { var cardResult = await CardDataStore.GetCardFromUser(App.LogUser.UserId, App.TokenDto.Token); if (cardResult != null && cardResult.Count() > 0) { //Make the Payment transation here... //Check that the payment was submited. //Send Lincese Code var subcriptionToken = await stripeServiceDS.CreateACustomerSubcription(App.LogUser.StripeUserId); if (!string.IsNullOrEmpty(subcriptionToken)) { var subcription = new Library.Models.Subcription() { StripeCustomerId = App.LogUser.StripeUserId, StripeSubCriptionID = subcriptionToken, //StoreLicense = StoreControlPanelViewModel.YourSelectedStore.StoreLicenceId }; var subcriptionResult = await SubcriptionDataStore.AddItemAsync(subcription); if (subcriptionResult) { var licenseReuslt = await storeLicenseDataStore.PostStoreLicense(App.LogUser.Email, App.LogUser.Name); if (licenseReuslt) { await App.Current.MainPage.DisplayAlert("Notification", "License added succefully.", "OK"); } } } else { await App.Current.MainPage.DisplayAlert("Notification", "The subcription could not be made. Try again.", "OK"); } } else { await App.Current.MainPage.DisplayAlert("Notification", "You dont have a card register, register a card first.", "OK"); } } } }); }
public UserDetailOrderViewModel() { ProductPresenters = new ObservableCollection <ProductPresenter>(); OrderDetail = SelectedOrder.CurrentOrder; OrderStatus = OrderDetail.OrderStatus.ToString(); OrderQuantity = OrderDetail.OrderProducts.Count(); isDeliveryFeeAdded = false; if (OrderDetail.OrderStatus == Status.Submited || OrderDetail.OrderStatus == Status.Completed) { AreVisible = false; } else { AreVisible = true; } SetProducts(); IspickUp = true; CheckoutCommand = new Command(async() => { TokenExpManger tokenExpManger = new TokenExpManger(App.TokenDto.Exp); if (tokenExpManger.IsExpired()) { await tokenExpManger.CloseSession(); } else { var cardofUser = await CardDataStore.GetCardFromUser(App.LogUser.UserId, App.TokenDto.Token); App.LogUser.PaymentCards = new List <PaymentCard>(cardofUser); if (App.LogUser.PaymentCards.Count() > 0) { if (OrderDetail.OrderStatus == Status.NotSubmited) { if (IsDelivery) { OrderDetail.OrderType = Library.Models.Type.Delivery; } if (IspickUp) { OrderDetail.OrderType = Library.Models.Type.PickUp; } if (!IsDelivery && !IspickUp) { OrderDetail.OrderType = Library.Models.Type.PickUp; } OrderDetail.OrderStatus = Status.Submited; //List<PaymentCard> paymentCards = new List<PaymentCard>(App.LogUser.PaymentCards); var customercardId = await stripeServiceDS.GetCustomerCardId(App.LogUser.StripeUserId, App.LogUser.PaymentCards.FirstOrDefault().StripeCardId); var isTransactionSuccess = await stripeServiceDS.MakePaymentWithCard(OrderDetail.StoreId, Total, App.LogUser.PaymentCards.FirstOrDefault().PaymentCardId, OrderDetail.OrderId.ToString()); if (isTransactionSuccess) { var orderUpdate = await orderDataStore.UpdateItemAsync(OrderDetail); OrderStatus = OrderDetail.OrderStatus.ToString(); if (orderUpdate) { var orderNotificationToEmployees = await userConnectedDataStore.SendOrdersToEmployees(OrderDetail.StoreId.ToString(), OrderDetail.OrderId.ToString()); //await App.ComunicationService.OrderToPrepare(OrderDetail); await App.Current.MainPage.DisplayAlert("Notification", "Order was submited...!", "OK"); MessagingCenter.Send <Library.Models.Order>(OrderDetail, "RemoveOrderSubtmitedMsg"); } } else { await App.Current.MainPage.DisplayAlert("Notification", "Bad Transaction.", "OK"); } } else { await App.Current.MainPage.DisplayAlert("Notification", "Order was submited.", "OK"); } } else { await App.Current.MainPage.DisplayAlert("Notification", "You dont have a card register, register a card first.", "OK"); } } }); CalculateTotal(); MessagingCenter.Subscribe <ProductPresenter>(this, "RemoveOrderProduct", async(obj) => { ProductPresenters.Remove(obj); var _orderProductToRemove = OrderDetail.OrderProducts.Where(o => o.OrderProductId == obj.ProductId).FirstOrDefault(); OrderDetail.OrderProducts.Remove(_orderProductToRemove); OrderQuantity = OrderDetail.OrderProducts.Count(); if (OrderDetail.OrderProducts.Count() == 0) { var result = await orderDataStore.DeleteItemAsync(OrderDetail.OrderId.ToString()); if (result) { await Shell.Current.GoToAsync($"../StoreOrderRoute"); } } CalculateTotal(); }); MessagingCenter.Subscribe <OrderProduct>(this, "OrderProductUpdate", async(obj) => { var oproductToRemove = ProductPresenters.Where(op => op.ProductId == obj.OrderProductId).FirstOrDefault(); ProductPresenters.Remove(oproductToRemove); var updatedOrderProductPrensenter = new ProductPresenter(obj); if (OrderDetail.OrderStatus == Status.Submited || OrderDetail.OrderStatus == Status.Completed) { updatedOrderProductPrensenter.AreVisible = false; } else { updatedOrderProductPrensenter.AreVisible = true; } ProductPresenters.Add(updatedOrderProductPrensenter); CalculateTotal(); }); }