public Result <bool> AddRewardPackage(int?projectId, int?userId, CreateRewardPackageOptions createRewardOptions) { if (createRewardOptions == null) { return(Result <bool> .Failed(StatusCode.BadRequest, "Please fill in the form")); } if (projectId == null || userId == null) { return(Result <bool> .Failed(StatusCode.BadRequest, "Project or User Not Specified")); } var project = GetProjectById(projectId); if (!project.Success) { return(Result <bool> .Failed(StatusCode.NotFound, "Project Not Found")); } if (Helpers.UserOwnsProject(_context, userId, projectId) == false) { return(Result <bool> .Failed(StatusCode.BadRequest, "Can Not Access A Project You Don't Own")); } if (project.Data.RewardPackages.Any(r => r.Title.ToLower().Equals(createRewardOptions.Title.ToLower()))) { return(Result <bool> .Failed(StatusCode.BadRequest, "A Reward Package with the same title already exists")); } var rewardResult = _rewardService.CreateRewardPackage(createRewardOptions); if (rewardResult.Success) { project.Data.RewardPackages.Add(rewardResult.Data); } else { return(Result <bool> .Failed(rewardResult.ErrorCode, rewardResult.ErrorText)); } var rows = 0; try { rows = _context.SaveChanges(); } catch (Exception ex) { return(Result <bool> .Failed(StatusCode.InternalServerError, ex.Message)); } return(rows <= 0 ? Result <bool> .Failed(StatusCode.InternalServerError, "Reward Package Could Not Be Created ") : Result <bool> .Succeed(true)); }
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)); }
public IActionResult Create([FromBody] CreateRewardPackageOptions options) { var result = rewardPackageService.CreateRewardPackage(options); if (!result.Success) { return(StatusCode((int)result.ErrorCode, result.ErrorText)); } return(Json(result.Data)); }
public IActionResult CreateRewardPackage([FromBody] RewardFormOptions options) { var rewardPackageOptions = new CreateRewardPackageOptions { Title = options.Title, Description = options.Description, MinAmount = options.MinAmount, Quantity = options.Quantity }; var result = _projectService.AddRewardPackage(options.ProjectId, Globals.UserId, rewardPackageOptions); if (!result.Success) { return(StatusCode((int)result.ErrorCode, result.ErrorText)); } return(Ok()); }
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)); }