Пример #1
0
        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));
        }
Пример #2
0
        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));
        }