Esempio n. 1
0
        public async Task <IActionResult> GetDriver(int id)
        {
            Driver record = await repo.GetById(id);

            if (record == null)
            {
                LoggerExtensions.LogException(id, logger, ControllerContext, null, null);
                return(StatusCode(404, new {
                    response = ApiMessages.RecordNotFound()
                }));
            }
            return(StatusCode(200, record));
        }
Esempio n. 2
0
        public async Task <IActionResult> DeleteDriver([FromRoute] int id)
        {
            Driver record = await repo.GetById(id);

            if (record == null)
            {
                LoggerExtensions.LogException(id, logger, ControllerContext, null, null);
                return(StatusCode(404, new {
                    response = ApiMessages.RecordNotFound()
                }));
            }
            try {
                repo.Delete(record);
                return(StatusCode(200, new {
                    response = ApiMessages.RecordDeleted()
                }));
            } catch (DbUpdateException exception) {
                LoggerExtensions.LogException(0, logger, ControllerContext, record, exception);
                return(StatusCode(491, new {
                    response = ApiMessages.RecordInUse()
                }));
            }
        }
Esempio n. 3
0
        public async Task <IActionResult> PutUser([FromRoute] string id, [FromBody] UserViewModel vm)
        {
            if (id == vm.Id && ModelState.IsValid)
            {
                AppUser record = await userManager.FindByIdAsync(id);

                if (record != null)
                {
                    await UpdateUser(record, vm);
                    await UpdateRole(record);

                    return(StatusCode(200, new { response = ApiMessages.RecordUpdated() }));
                }
                LoggerExtensions.LogException(id, logger, ControllerContext, null, null);
                return(StatusCode(404, new {
                    response = ApiMessages.RecordNotFound()
                }));
            }
            LoggerExtensions.LogException(0, logger, ControllerContext, vm, null);
            return(StatusCode(400, new {
                response = ApiMessages.InvalidModel()
            }));
        }
Esempio n. 4
0
        public async Task <IActionResult> GetUser(string id)
        {
            AppUser record = await userManager.FindByIdAsync(id);

            if (record == null)
            {
                LoggerExtensions.LogException(id, logger, ControllerContext, null, null);
                return(StatusCode(404, new {
                    response = ApiMessages.RecordNotFound()
                }));
            }
            UserViewModel vm = new UserViewModel {
                Id              = record.Id,
                UserName        = record.UserName,
                DisplayName     = record.DisplayName,
                Email           = record.Email,
                IsAdmin         = record.IsAdmin,
                IsActive        = record.IsActive,
                OneTimePassword = record.OneTimePassword
            };

            return(StatusCode(200, vm));
        }
Esempio n. 5
0
        public async Task <IActionResult> DeleteUser(string id)
        {
            AppUser record = await userManager.FindByIdAsync(id);

            if (record == null)
            {
                LoggerExtensions.LogException(id, logger, ControllerContext, null, null);
                return(StatusCode(404, new {
                    response = ApiMessages.RecordNotFound()
                }));
            }
            try {
                IdentityResult result = await userManager.DeleteAsync(record);

                return(StatusCode(200, new {
                    response = ApiMessages.RecordDeleted()
                }));
            } catch (DbUpdateException exception) {
                LoggerExtensions.LogException(0, logger, ControllerContext, record, exception);
                return(StatusCode(491, new {
                    response = ApiMessages.RecordInUse()
                }));
            }
        }
        public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.FindByIdAsync(vm.UserId);

                if (user != null)
                {
                    var result = await userManager.ChangePasswordAsync(user, vm.CurrentPassword, vm.Password);

                    if (result.Succeeded)
                    {
                        await signInManager.RefreshSignInAsync(user);

                        await this.UpdateIsOneTimePasswordChanged(user);

                        return(StatusCode(200, new { response = ApiMessages.PasswordChanged() }));
                    }
                    return(StatusCode(494, new { response = result.Errors.Select(x => x.Description) }));
                }
                return(StatusCode(404, new { response = ApiMessages.RecordNotFound() }));
            }
            return(StatusCode(400, new { response = ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage) }));
        }
        public async Task <IActionResult> ResetPassword([FromBody] ResetPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.FindByEmailAsync(model.Email);

                if (user != null)
                {
                    var result = await userManager.ResetPasswordAsync(user, Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(model.Token)), model.Password);

                    if (result.Succeeded)
                    {
                        await signInManager.RefreshSignInAsync(user);

                        await this.UpdateIsOneTimePasswordChanged(user);

                        return(StatusCode(200, new { response = ApiMessages.PasswordReset() }));
                    }
                    return(StatusCode(494, new { response = result.Errors.Select(x => x.Description) }));
                }
                return(StatusCode(404, new { response = ApiMessages.RecordNotFound() }));
            }
            return(StatusCode(400, new { response = ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage) }));
        }