public async Task <Object> AddNewDiscountGroup(DiscountGroupInfo group) { string userId = User.Claims.First(c => c.Type == "UserID").Value; var user = await _dataBase.Users.FindAsync(userId); if (user == null) { return(Unauthorized()); } if (user.Role != "sys") { return(Unauthorized()); } var rent = _dataBase.Rentacars.Include(r => r.DiscountGroups).First(r => r.Id == int.Parse(group.ServiceId)); if (rent == null) { return(BadRequest("No rentacar found")); } if (rent.DiscountGroups.ToList().Find(g => g.MinPoints == group.MinPoints && g.DiscountPercentage == group.DiscountPercentage) != null) { return(BadRequest("Can't have groups with same Minimum points and Percengate values!")); } if (rent.DiscountGroups.ToList().Find(g => g.GroupName == group.GroupName) != null) { return(BadRequest("Group with same name exist!")); } var disc = new DiscountGroup() { DiscountPercentage = group.DiscountPercentage, GroupName = group.GroupName, MinPoints = group.MinPoints }; rent.DiscountGroups.Add(disc); _dataBase.SaveChanges(); var ret = rent.DiscountGroups.ToList(); ret.Sort(new DiscountGroupListSort()); return(Ok(ret)); }
public async Task <Object> ModifyDiscountGroup(DiscountGroupInfo group) { string userId = User.Claims.First(c => c.Type == "UserID").Value; var user = await _dataBase.Users.FindAsync(userId); if (user == null) { return(Unauthorized()); } if (user.Role != "sys") { return(Unauthorized()); } var rent = _dataBase.Rentacars.Include(r => r.DiscountGroups).First(r => r.Id == int.Parse(group.ServiceId)); if (rent == null) { return(BadRequest("No rentacar found")); } var discGr = rent.DiscountGroups.ToList().Find(g => g.Id == group.Id); if (discGr == null) { return(BadRequest("Group doesn't exist!")); } discGr.GroupName = group.GroupName; discGr.MinPoints = group.MinPoints; discGr.DiscountPercentage = group.DiscountPercentage; _dataBase.SaveChanges(); var ret = rent.DiscountGroups.ToList(); ret.Sort(new DiscountGroupListSort()); return(Ok(ret)); }