コード例 #1
0
        public IHttpActionResult PutCurrentPawzeUser(PawzeUsersModel user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            PawzeUser dbPawzeUser = _pawzeUserRepository.GetFirstOrDefault(u => u.UserName == User.Identity.Name);

            dbPawzeUser.Update(user);

            _pawzeUserRepository.Update(dbPawzeUser);

            try
            {
                _unitOfWork.Commit();
            }
            catch (Exception)
            {
                if (!PawzeUserExists(user.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
コード例 #2
0
        public void Cancel(PawzeUser pawzeUser, Subscription pawzeSubscription)
        {
            var subscriptionService         = new Stripe.StripeSubscriptionService(APIKey);
            StripeSubscription subscription = subscriptionService.Cancel(pawzeUser.StripeCustomerId, pawzeSubscription.StripeSubscriptionId);

            pawzeSubscription.StripeSubscriptionId = null;

            _subscriptionRepository.Update(pawzeSubscription);

            _unitOfWork.Commit();
        }
コード例 #3
0
        public IHttpActionResult GetPawzeUser(int id)
        {
            PawzeUser dbPawzeUser = _pawzeUserRepository.GetById(id);

            if (dbPawzeUser == null)
            {
                return(NotFound());
            }

            return(Ok(Mapper.Map <PawzeUsersModel>(dbPawzeUser)));
        }
コード例 #4
0
        public IHttpActionResult DeletePawzeUser(int id)
        {
            PawzeUser user = _pawzeUserRepository.GetById(id);

            if (user == null)
            {
                return(NotFound());
            }

            _pawzeUserRepository.Delete(user);
            _unitOfWork.Commit();

            return(Ok(Mapper.Map <PawzeUsersModel>(user)));
        }
コード例 #5
0
        // Assigned staff role
        public async Task <IdentityResult> RegisterStaff(RegistrationModel model)
        {
            // create a user
            var pawzeUser = new PawzeUser
            {
                UserName = model.EmailAddress,
                Email    = model.EmailAddress
            };

            // save the user
            var result = await _userManager.CreateAsync(pawzeUser, model.Password);

            await _userManager.AddToRoleAsync(pawzeUser.Id, "Staff");

            return(result);
        }
コード例 #6
0
        public IHttpActionResult PostPawzeUser(PawzeUsersModel user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var dbPawzeUser = new PawzeUser();

            _pawzeUserRepository.Add(dbPawzeUser);

            _unitOfWork.Commit();

            user.Id = dbPawzeUser.Id;

            return(CreatedAtRoute("DefaultApi", new { id = user.Id }, user));
        }
コード例 #7
0
        public async Task <IdentityResult> RegisterCustomer(RegistrationModel model)
        {
            // create a user
            var pawzeUser = new PawzeUser
            {
                UserName  = model.EmailAddress,
                Email     = model.EmailAddress,
                FirstName = model.FirstName,
                LastName  = model.LastName,
                Address1  = model.Address1,
                Address2  = model.Address2,
                City      = model.City,
                State     = model.State,
                PostCode  = model.PostCode
            };

            // save the user
            var result = await _userManager.CreateAsync(pawzeUser, model.Password);

            await _userManager.AddToRoleAsync(pawzeUser.Id, "Customer");

            return(result);
        }
コード例 #8
0
        /// <summary>
        /// Before calling this method - make sure you have saved the box to the database
        /// </summary>
        public void Create(PawzeUser pawzeUser, Box box, string token)
        {
            if (string.IsNullOrEmpty(pawzeUser.StripeCustomerId))
            {
                var customerService = new StripeCustomerService(APIKey);

                var customer = customerService.Create(new StripeCustomerCreateOptions
                {
                    Email = pawzeUser.Email
                });

                pawzeUser.StripeCustomerId = customer.Id;
            }

            var subscriptionService = new Stripe.StripeSubscriptionService(APIKey);

            StripeSubscription subscription = subscriptionService.Create(pawzeUser.StripeCustomerId, "box", new StripeSubscriptionCreateOptions
            {
                Card = new StripeCreditCardOptions
                {
                    TokenId = token
                }
            });

            var pawzeSubscription = new Subscription
            {
                PawzeUserId          = pawzeUser.Id,
                StartDate            = DateTime.Now,
                StripeSubscriptionId = subscription.Id
            };

            pawzeSubscription.Boxes.Add(box);

            _subscriptionRepository.Add(pawzeSubscription);

            _unitOfWork.Commit();
        }
コード例 #9
0
        public IHttpActionResult PutPawzeUser(string id, PawzeUsersModel user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != user.Id)
            {
                return(BadRequest());
            }

            PawzeUser dbPawzeUser = _pawzeUserRepository.GetById(id);

            dbPawzeUser.Update(user);

            _pawzeUserRepository.Update(dbPawzeUser);

            try
            {
                _unitOfWork.Commit();
            }
            catch (Exception)
            {
                if (!PawzeUserExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }