Example #1
0
        public Result <RewardPackage> CreateRewardPackage(CreateRewardPackageOptions options)
        {
            if (options == null)
            {
                return(Result <RewardPackage> .Failed(StatusCode.BadRequest, "Please fill in the form"));
            }

            options.Title       = options.Title?.Trim();
            options.Description = options.Description?.Trim();

            if (string.IsNullOrWhiteSpace(options.Title))
            {
                return(Result <RewardPackage> .Failed(StatusCode.BadRequest, "Please enter a Title"));
            }

            if (options.Quantity < 0)
            {
                return(Result <RewardPackage> .Failed(StatusCode.BadRequest, "Please enter a valid Quantity"));
            }

            if (options.MinAmount <= 0 || options.MinAmount == null)
            {
                return(Result <RewardPackage> .Failed(StatusCode.BadRequest, "Please enter a valid Amount"));
            }

            var reward = new RewardPackage
            {
                Title       = options.Title,
                Description = options.Description,
                MinAmount   = options.MinAmount,
                Quantity    = options.Quantity
            };

            return(Result <RewardPackage> .Succeed(reward));
        }
Example #2
0
        public RewardPackage UpdateRewardPackage(RewardPackage packageToUpdate, UpdateRewardPackageOptions options)
        {
            options.Title       = options.Title?.Trim();
            options.Description = options.Description?.Trim();

            if (!string.IsNullOrWhiteSpace(options.Title))
            {
                packageToUpdate.Title = options.Title;
            }

            if (!string.IsNullOrWhiteSpace(options.Description))
            {
                packageToUpdate.Description = options.Description;
            }

            if (options.Quantity != null)
            {
                packageToUpdate.Quantity = options.Quantity;
            }

            if (options.MinAmount != null || options.MinAmount <= 0)
            {
                packageToUpdate.MinAmount = options.MinAmount.Value;
            }

            return(packageToUpdate);
        }
        public RewardPackageOption CreateRewardPackage(RewardPackageOption rewardPackageOption)
        {
            RewardPackage rewardPackage = GetRewardPackageFromRewardPackageOption(rewardPackageOption);

            dbContext.RewardPackages.Add(rewardPackage);
            dbContext.SaveChanges();
            rewardPackageOption.Id = rewardPackage.Id;
            return(rewardPackageOption);
        }
Example #4
0
 private static RewardPackageOption GetRewardPackageOptionsFromRewardPackage(RewardPackage rewardPackage)
 {
     return(new RewardPackageOption
     {
         Reward = rewardPackage.Reward,
         Price = rewardPackage.Price,
         Id = rewardPackage.Id,
         ProjectId = rewardPackage.Project.Id
     });
 }
        public RewardPackageOption UpdateRewardPackage(int id, RewardPackageOption rewardPackageOption)
        {
            RewardPackage rewardPackage = dbContext.RewardPackages.Find(id);

            rewardPackage.Reward = rewardPackageOption.Reward;
            rewardPackage.Price  = rewardPackageOption.Price;
            dbContext.SaveChanges();

            return(rewardPackageOption);
        }
        public RewardPackageOption FindRewardPackageById(int id)
        {
            RewardPackage rewardPackage = dbContext.RewardPackages.Where(o => o.Id == id).Include(o => o.Project).SingleOrDefault();

            if (rewardPackage == null)
            {
                return(null);
            }
            return(GetRewardPackageOptionsFromRewardPackage(rewardPackage));
        }
        public bool DeleteRewardPackage(int id)
        {
            RewardPackage rp = dbContext.RewardPackages.Find(id);

            if (rp == null)
            {
                return(false);
            }
            dbContext.RewardPackages.Remove(rp);
            dbContext.SaveChanges();
            return(true);
        }
Example #8
0
        private RewardPackageOption AddRewardPackageToTransaction(int rewardPackageId)
        {
            RewardPackage       rewardPackage       = dbContext.RewardPackages.Where(o => o.Id == rewardPackageId).Include(o => o.Project).SingleOrDefault();
            RewardPackageOption rewardPackageOption = new RewardPackageOption
            {
                Id          = rewardPackage.Id,
                Price       = rewardPackage.Price,
                Reward      = rewardPackage.Reward,
                ProjectId   = rewardPackage.Project.Id,
                ProjectName = rewardPackage.Project.Title
            };

            return(rewardPackageOption);
        }
Example #9
0
        public TransactionOption CreateTransaction(int backerId, int rewardPackageOptionId)
        {
            if (backerId == 0)
            {
                return(null);
            }
            Backer backer = dbContext.Backers.Find(backerId);

            if (backer == null)
            {
                return(null);
            }
            RewardPackage rewardPackage = dbContext.RewardPackages.Where(o => o.Id == rewardPackageOptionId).Include(o => o.Project).SingleOrDefault();

            if (rewardPackage == null)
            {
                return(null);
            }
            Transaction transaction = new Transaction {
                Backer = backer, RewardPackage = rewardPackage, Amount = rewardPackage.Price
            };

            dbContext.Transactions.Add(transaction);
            dbContext.SaveChanges();
            TransactionOption transactionOption = new TransactionOption
            {
                BackerName    = backer.LastName + " " + backer.FirstName + " ",
                TransactionId = transaction.Id,
                BackerId      = backer.Id,
                Amount        = transaction.Amount,
                ProjectName   = transaction.RewardPackage.Project.Title,
                RewardPackage = AddRewardPackageToTransaction(rewardPackageOptionId)
            };

            return(UpdateCurrentBudget(transactionOption));
        }
Example #10
0
        public bool DeleteRewardPackage(RewardPackage rewardPackage)
        {
            _context.Remove(rewardPackage);

            return(_context.SaveChanges() > 0);
        }
Example #11
0
        public Result <RewardPackage> CreateRewardPackage(
            CreateRewardPackageOptions options)
        {
            if (options == null)
            {
                return(Result <RewardPackage> .ActionFailed(
                           StatusCode.BadRequest, "Null options"));
            }

            if (string.IsNullOrWhiteSpace(options.Description))
            {
                return(Result <RewardPackage> .ActionFailed(
                           StatusCode.BadRequest, "Null options"));
            }

            if (string.IsNullOrWhiteSpace(options.Name))
            {
                return(Result <RewardPackage> .ActionFailed(
                           StatusCode.BadRequest, "Null options"));
            }

            if (options.Amount == null || options.Amount <= 0)
            {
                return(Result <RewardPackage> .ActionFailed(
                           StatusCode.BadRequest, "Invalid Amount"));
            }

            var project = context_
                          .Set <Project>()
                          .Where(p => p.ProjectId == options.ProjectId)
                          .SingleOrDefault();

            if (project == null)
            {
                return(Result <RewardPackage> .ActionFailed(
                           StatusCode.BadRequest, "Invalid ProjectId"));
            }

            var rewardPackage = new RewardPackage()
            {
                Amount      = options.Amount,
                Description = options.Description,
                Name        = options.Name
            };

            foreach (var option in options.RewardOptions)
            {
                if (option == null)
                {
                    continue;
                }

                var createdReward = rewardService_.AddRewardToList(option);

                if (createdReward != null)
                {
                    rewardPackage.Rewards.Add(createdReward.Data);
                }
                else
                {
                    return(Result <RewardPackage> .ActionFailed(
                               StatusCode.BadRequest, "Invalid Rewards given"));
                }
            }

            project.RewardPackages.Add(rewardPackage);
            context_.Add(rewardPackage);

            var rows = 0;

            try
            {
                rows = context_.SaveChanges();
            }
            catch (Exception ex)
            {
                return(Result <RewardPackage> .ActionFailed(
                           StatusCode.InternalServerError, ex.ToString()));
            }

            if (rows <= 0)
            {
                return(Result <RewardPackage> .ActionFailed(
                           StatusCode.InternalServerError,
                           "Reward Package could not be created"));
            }

            return(Result <RewardPackage> .ActionSuccessful(rewardPackage));
        }