示例#1
0
        public void Subscribe(User user, int feedId, string myfeed)
        {
            if (!string.IsNullOrEmpty(myfeed))
            {
                Feed feed = new Feed
                {
                    Title          = "My feed",
                    Description    = myfeed,
                    URL            = myfeed,
                    UserId         = user.Id,
                    FeedCategoryId = _repositoryContext.FeedCategories.Where(c => c.Description == "My feeds").FirstOrDefault().Id
                };
                _repositoryContext.Feeds.Add(feed);
                _repositoryContext.SaveChanges();
                feedId = feed.Id;
            }

            Subcription subcription = new Subcription
            {
                UserId = user.Id,
                FeedId = feedId
            };

            _repositoryContext.Subcriptions.Add(subcription);
            _repositoryContext.SaveChanges();
        }
        //Add subcription

        public IActionResult AddSubcription(SubcriptionViewModel model)
        {
            // 1 Get the login User id
            var logInUserid = _userManager.GetUserId(HttpContext.User);

            //get the member name throught ID
            var membershipList = db.Memberships.ToList();
            var membershipName = membershipList.Where(x => x.MembershipId == model.MembershipId)
                                 .Select(x => x.MembershipType).SingleOrDefault();

            //get the price throught ID
            var priceList = db.Membership_Prices.ToList();
            var priceName = priceList.Where(x => x.PriceId == model.PriceId)
                            .Select(x => x.Price).SingleOrDefault();



            //add to sub table
            Subcription usersub = new Subcription();

            usersub.ApplicationUserId = logInUserid;
            usersub.MembershipId      = model.MembershipId;
            usersub.MembershipName    = membershipName;
            usersub.Amount            = priceName;
            usersub.StartDate         = model.Date;


            db.Add(usersub);
            db.SaveChanges();

            return(RedirectToAction("UserSubcriptionDetails"));
        }
示例#3
0
        public async Task <IActionResult> PutSubcription(string id, Subcription subcription)
        {
            if (id != subcription.StripeSubCriptionID)
            {
                return(BadRequest());
            }

            _context.Entry(subcription).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SubcriptionExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#4
0
        public void unSubscribe(User user, int feedId)
        {
            Subcription subcription = _repositoryContext.Subcriptions.Where(s => s.UserId == user.Id && s.FeedId == feedId).FirstOrDefault();

            _repositoryContext.Subcriptions.Remove(subcription);
            _repositoryContext.SaveChanges();
        }
示例#5
0
 public void EditSubcription(Subcription subcription)
 {
     using (Context db = new Context())
     {
         db.Entry(subcription).State = EntityState.Modified;
         db.SaveChanges();
     }
 }
示例#6
0
 public void CreateSubscription(Subcription subcription)
 {
     using (Context db = new Context())
     {
         db.subcriptions.Add(subcription);
         db.SaveChanges();
     }
 }
 public ActionResult SelectSubscription(Subcription subscriptions)
 {
     if (subscriptions != null)
     {
         Session["SubscriptionID"] = subscriptions.ID;
         return(RedirectToAction("Index"));
     }
     return(View());
 }
 public ActionResult Edit([Bind(Include = "ID,Name,Description,CreditLimit")] Subcription subcription)
 {
     if (ModelState.IsValid)
     {
         DataBank db = new DataBank();
         db.EditSubcription(subcription);
         return(RedirectToAction("Index"));
     }
     return(View(subcription));
 }
        public ActionResult EditCreditPool(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DataBank    db          = new DataBank();
            Subcription subcription = db.GetSubcription(id);

            if (subcription == null)
            {
                return(HttpNotFound());
            }
            return(View(subcription));
        }
示例#10
0
 public void AddSubcribtion()
 {
     if (SelectedClient != null && SelectedClient.Id > 0 && !MainInteraction.ThisClientIsSubcribed(SelectedClient) && SelectedSubcriptionType != null)
     {
         var newSubcription = new Subcription {
             Client = SelectedClient, SubcriptionType = SelectedSubcriptionType, StartDate = SelectedStartDate, EndDate = SelectedEndDate
         };
         Main.SubcriptionsRepository.Add(newSubcription);
         //var history = new History {Client = SelectedClient, Record = DateTime.Now};
         //var pay=new Payement{Amount = Amount,Subription = newSubcription,History =history,Moment = DateTime.Now};
         var pay = new Payement {
             Amount = SelectedSubcriptionType.Price, Subription = newSubcription, Moment = DateTime.Now
         };
         Main.PayementsRepository.Add(pay);
         UpdateUiDataOfForTheCurrentClient();
     }
 }
示例#11
0
        public async Task <ActionResult <Subcription> > PostSubcription(Subcription subcription)
        {
            _context.Subcriptions.Add(subcription);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (SubcriptionExists(subcription.StripeSubCriptionID))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetSubcription", new { id = subcription.StripeSubCriptionID }, subcription));
        }
示例#12
0
        public bool AddUserToSubcription(int userId, int subcriptionId)
        {
            Context context = new Context();

            try
            {
                UserSubcription userSubcription = new UserSubcription();
                User            user            = context.users.Find(userId);
                Subcription     subcription     = context.subcriptions.Find(subcriptionId);
                userSubcription.UserID        = user;
                userSubcription.SubcriptionID = subcription;
                context.userSubcriptions.Add(userSubcription);
                context.SaveChanges();
                return(true);
            }
            catch
            {
                // ignored
            }
            return(false);
        }
示例#13
0
        public async Task <IActionResult> UserRegistration(UserViewModel userVm)
        {
            if (UserInfoNotNullOrEmpty(userVm))
            {
                if (userVm.Password == userVm.ConfirmPassword)
                {
                    var credentialExist = await userDataStore.CheckIfUsernameAndPasswordExist(userVm.Username, userVm.Password);

                    if (!credentialExist)
                    {
                        //Las credenciales de entrada del usuario
                        var userLogin = new Login()
                        {
                            LoginId  = Guid.NewGuid(),
                            Password = userVm.Password,
                            Username = userVm.Username
                        };

                        //Creamos el usuario
                        var newUser = new User()
                        {
                            UserId    = Guid.NewGuid(),
                            Email     = userVm.Email,
                            LoginId   = userLogin.LoginId,
                            Name      = userVm.Name,
                            UserLogin = userLogin,
                            Address   = userVm.Address
                        };


                        //Obtenemos datos de empleados necesarios para el registro en stripe
                        var optionsCustomers = new UserDTO
                        {
                            Name    = userVm.Name,
                            Email   = userVm.Email,
                            Phone   = userVm.Phone,
                            Address = userVm.Address,
                        };


                        //Creamos un nuevo usuario en stripe
                        var customerToken = await StripeServiceDS.CreateStripeCustomer(optionsCustomers);

                        //Le  insertamos la tarjeta al nuevo usuario de stripe
                        var cardservicetokenId = await StripeServiceDS.InsertStripeCardToCustomer(PaymentCard, customerToken);

                        //Creamos la subcripcion al usuario

                        var subcriptiontoken = await StripeServiceDS.CreateACustomerSubcription(customerToken);

                        //Verificamos que la informacion este correcta

                        if (!string.IsNullOrEmpty(subcriptiontoken))
                        {
                            //Le damos el id del nuevo customer de la cuenta de stripe.
                            newUser.StripeUserId = customerToken;



                            //Lo agregamos a la base de datos.
                            var addedUser = await userDataStore.AddItemAsync(newUser);

                            //Verificamos si el usuario se inserto a nuestra base de datos
                            if (addedUser)
                            {
                                //Verificamos si el token de la tarjeta insertada es correcta.
                                if (!string.IsNullOrEmpty(cardservicetokenId))
                                {
                                    //Agregamos la tarjeta a nuestra base de datos.
                                    var cardadded = cardDataStore.AddItemAsync(new PaymentCard()
                                    {
                                        UserId        = newUser.UserId,
                                        StripeCardId  = cardservicetokenId,
                                        CardNumber    = PaymentCard.CardNumber,
                                        Cvc           = PaymentCard.Cvc,
                                        Month         = PaymentCard.Month,
                                        Year          = PaymentCard.Year,
                                        HolderName    = PaymentCard.HolderName,
                                        PaymentCardId = Guid.NewGuid()
                                    });
                                }

                                //Creamos el lincense
                                var newStoreLicense = new StoreLicense()
                                {
                                    LicenseId           = Guid.NewGuid(),
                                    StartDate           = DateTime.Today,
                                    LicenseHolderUserId = newUser.UserId
                                };

                                //Lo insertamos a nuestra base de datos
                                var storelicenceresult = await storeLicenseDataStore.AddItemAsync(newStoreLicense);

                                //Verificamos el resultado
                                if (storelicenceresult)
                                {
                                    var subcription = new Subcription()
                                    {
                                        IsDisable           = false,
                                        StripeCustomerId    = customerToken,
                                        StripeSubCriptionID = subcriptiontoken,
                                        StoreLicense        = newStoreLicense.LicenseId
                                    };

                                    var result = SubcriptionDataStore.AddItemAsync(subcription);

                                    //Enviamos el email con el codio de la nueva licensia.
                                    SendStoreLicenceEmailCode(newUser.Email, newStoreLicense.LicenseId.ToString());
                                }
                                //Verificamos que los credenciales esten correctos.
                                var resultCredentials = userDataStore.CheckUserCredential(userLogin.Username, userLogin.Password);

                                //Validamos que el resultado no sea vacio
                                if (resultCredentials != null)
                                {
                                    //Le damos los credenciales al LogUser
                                    LogUser.LoginUser = resultCredentials;
                                }

                                //Luego de todo completado de manera correcta nos vamos a registrar una tienda.
                                return(RedirectToAction("RegisterStore", "Store"));
                            }
                        }
                        else
                        {
                            return(View());
                        }
                    }
                    else
                    {
                        ViewBag.ErrorMsg = "The creditals already exists.";
                        return(View());
                    }
                }
                else
                {
                    ViewBag.ErrorMsg = "The password and confirm pasword are different.";
                    return(View());
                }
            }


            return(View());
        }