Example #1
0
        public async Task <IActionResult> Rent([FromBody] RentRequestModel rent)
        {
            var userId = HttpContext.Items[ClaimTypes.NameIdentifier].ToString();
            var res    = await _RentMan.RentBook(rent.BookId, userId);

            if (res.Status == false)
            {
                return(BadRequest(res));
            }
            return(Ok(res));
        }
        public string PostRent(RentRequestModel rentRequest)
        {
            lock (locker)
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState).ToString());
                }

                Rent r = new Rent();
                r.Start               = rentRequest.Start;
                r.End                 = rentRequest.End;
                r.Vehicle             = unitOfWork.Vehicles.Get(rentRequest.VehicleId);
                r.BranchOffice        = unitOfWork.BranchOffices.Get(rentRequest.BranchOfficeId);
                r.Vehicle.Unavailable = true;
                r.Deleted             = false;
                // Izvuci iz heada jwt i uzmi koji je user
                string jwt          = Request.Headers.Authorization.Parameter.ToString();
                var    decodedToken = unitOfWork.AppUserRepository.DecodeJwt(jwt);

                string  userEmail = decodedToken.Claims.First(claim => claim.Type == "unique_name").Value;
                AppUser appUser   = unitOfWork.AppUserRepository.GetAll().Where(u => u.Email == userEmail).FirstOrDefault();


                try
                {
                    unitOfWork.Rents.Add(r);
                    appUser.Rents.Add(r);
                    unitOfWork.Complete();
                }
                catch (Exception)
                {
                    return(InternalServerError().ToString());
                }


                return("Ok");
            }
        }