public async Task <IActionResult> PutLessor(int id, Lessor lessor)
        {
            if (id != lessor.LessorID)
            {
                return(BadRequest());
            }

            _context.Entry(lessor).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!LessorExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <ActionResult <Lessor> > PostLessor(Lessor lessor)
        {
            _context.Lessors.Add(lessor);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetLessor", new { id = lessor.LessorID }, lessor));
        }
        public async Task <IActionResult> PutLessor([FromRoute] int id, [FromBody] Lessor Lessor)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != Lessor.ID)
            {
                return(BadRequest());
            }

            _context.Entry(Lessor).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!Exists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <IActionResult> PostLessor([FromBody] Lessor Lessor)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Lessors.Add(Lessor);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetLessors", new { id = Lessor.ID }, Lessor));
        }
예제 #5
0
        public IActionResult Update(string id, [FromBody] Lessor lessorIn)
        {
            var lessor = _lessorService.Get(id);

            if (lessor == null)
            {
                return(NotFound());
            }

            _lessorService.Update(id, lessorIn);

            return(NoContent());
        }
예제 #6
0
        public async Task <Lessor> RegisterAsLessor(Lessor user, string password)
        {
            byte[] passwordHash, passwordSalt;
            CreatePasswordHash(password, out passwordHash, out passwordSalt);

            user.PasswordHash = passwordHash;
            user.PasswordSalt = passwordSalt;

            await _dataContext.Lessors.AddAsync(user);

            await _dataContext.SaveChangesAsync();

            return(user);
        }
예제 #7
0
        public int RenterMachine(int renterId, int machineId, DateTime starTime, DateTime endTime)
        {
            if (renterId <= 0 || machineId <= 0)
            {
                throw new ArgumentException("renterId is less then 1 or machineId is less then 1 in musicStoreService in BuySong", "renterId or machineId");
            }

            Customer renter = _renterRepository.GetItem(renterId);

            if (renter == null)
            {
                throw new Exception("Renter is null");
            }

            CloudResource machine = _machineRepository.GetItem(machineId);

            if (machine == null)
            {
                throw new Exception("Machine is null");
            }

            if (machine.Lessor == null)
            {
                throw new Exception("Lessor of machine is null");
            }

            Lessor lessor = machine.Lessor;

            if (renter.Money < machine.Price)
            {
                throw new Exception($"Renter has not enough money for rent {machine.Name} machine");
            }

            string activationCode    = "9873";
            var    renteredMachine   = new RenteredResource(renter, machine, starTime, endTime, machine.Price, activationCode);
            var    renteredMachineId = _renteredMachineRepository.Create(renteredMachine);

            renter.Money -= machine.Price;
            lessor.Money += machine.Price;

            _renterRepository.Update(renter);
            _lessorRepository.Update(lessor);

            return(renteredMachineId);
        }
예제 #8
0
        public async Task <IActionResult> RegisterAsLessor(UserForRegisterDto userForRegisterDto)
        {
            //validate request

            userForRegisterDto.Username = userForRegisterDto.Username.ToLower();

            if (await _authRepository.LessorExists(userForRegisterDto.Username))
            {
                return(BadRequest("Username alrady exists"));
            }

            var userToCreate = new Lessor()
            {
                UserName = userForRegisterDto.Username
            };

            var createdUser = await _authRepository.RegisterAsLessor(userToCreate, userForRegisterDto.Password);

            return(StatusCode(201));
        }
예제 #9
0
        public bool ChangeLessorAccount(Lessor user)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user), "user is null");
            }

            var dbLessor = _renterRepository.GetItem(user.Id);

            user.PasswordHash = dbLessor.PasswordHash;
            user.PasswordSalt = dbLessor.PasswordHash;

            var result = _lessorRepository.Update(user);

            if (result <= 0)
            {
                return(false);
            }

            return(true);
        }
예제 #10
0
 public IActionResult ChangeLessorAccount(Lessor lessor)
 {
     if (lessor == null)
     {
         return(StatusCode(400));
     }
     try
     {
         var result = _userAccountService.ChangeLessorAccount(lessor);
         if (result)
         {
             return(Ok());
         }
     }
     catch (ArgumentNullException)
     {
         return(BadRequest(nameof(lessor)));
     }
     catch (Exception)
     {
         return(StatusCode(500));
     }
     return(StatusCode(500));
 }
예제 #11
0
 public void Update(string id, Lessor lessorIn)
 {
     _lessors.ReplaceOneAsync(lessor => lessor.lessorId == id, lessorIn);
 }
예제 #12
0
 public Lessor Create(Lessor lessor)
 {
     _lessors.InsertOne(lessor);
     return(lessor);
 }
예제 #13
0
        public ActionResult <Lessor> Create(Lessor lessor)
        {
            _lessorService.Create(lessor);

            return(lessor);
        }