public async Task <IHttpActionResult> RejectAccount([FromBody] long id)
        {
            if (unitOfWork.AccountsForApprove.Find(a => a.Id == id).Count() == 0)
            {
                return(BadRequest("Bad request. Id don't exists."));
            }

            AccountForApprove accountForApprove = unitOfWork.AccountsForApprove.Find(a => a.Id == id).First();

            RAIdentityUser user = await UserManager.FindByIdAsync(accountForApprove.UserId);

            SMTPService.SendMail("Account rejected", "Your account is rejected, upload new document image.", user.Email);

            ImageHelper.DeleteImage(user.DocumentImage);

            user.DocumentImage = "";

            IdentityResult updateUserResult = await UserManager.UpdateAsync(user);

            if (!updateUserResult.Succeeded)
            {
                return(GetErrorResult(updateUserResult));
            }

            try
            {
                lock (lockObjectForAccounts)
                {
                    unitOfWork.AccountsForApprove.Remove(accountForApprove);
                    unitOfWork.Complete();
                }
            }
            catch (DBConcurrencyException)
            {
                return(NotFound());
            }

            return(Ok("Account Successfully rejected."));
        }
        public async Task <IHttpActionResult> ApproveAccount([FromBody] long id)
        {
            if (unitOfWork.AccountsForApprove.Find(a => a.Id == id).Count() == 0)
            {
                return(BadRequest("Bad request. Id don't exists."));
            }

            AccountForApprove accountForApprove = unitOfWork.AccountsForApprove.Find(a => a.Id == id).First();

            RAIdentityUser user = await UserManager.FindByIdAsync(accountForApprove.UserId);

            user.IsApproved = true;

            SMTPService.SendMail("Account approved", "Your account is approved, now you can rent vehicle.", user.Email);

            IdentityResult updateUserResult = await UserManager.UpdateAsync(user);

            if (!updateUserResult.Succeeded)
            {
                return(GetErrorResult(updateUserResult));
            }

            try
            {
                lock (lockObjectForAccounts)
                {
                    unitOfWork.AccountsForApprove.Remove(accountForApprove);
                    unitOfWork.Complete();
                }
            }
            catch (DBConcurrencyException)
            {
                return(NotFound());
            }

            return(Ok("Account Successfully approved."));
        }