Exemple #1
0
        public async Task <ResponseDTO> EditAdmin(Admin existingAdmin, EditAdministrationDTO editAdminDTO)
        {
            if (editAdminDTO.Password != null)
            {
                string password = BCrypt.Net.BCrypt.HashPassword(editAdminDTO.Password);
                editAdminDTO.Password = password;
            }
            context.Entry(existingAdmin).CurrentValues.SetValues(editAdminDTO);
            int count = await context.SaveChangesAsync();

            if (count > 0)
            {
                cache.Set(existingAdmin.Id, existingAdmin, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(5)));
            }
            return(new ResponseDTO()
            {
                Message = "Информация пользователя изменена успешно", Status = true
            });
        }
        public async Task <IActionResult> EditAdmin(Guid Id, [FromBody] EditAdministrationDTO adminDTO)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }

                Admin existingAdmin = await adminsCrudService.CheckAdminExist(Id);

                if (existingAdmin == null)
                {
                    return(NotFound(new ResponseDTO()
                    {
                        Message = "Данный пользователь не найден", Status = false
                    }));
                }

                ResponseDTO check = await adminsCrudService.EditAdmin(existingAdmin, adminDTO);

                logger.LogInformation($"Данные админа: {existingAdmin.Login} были изменены");
                return(Ok(new { check }));
            }
            catch (ObjectNotFoundException ex)
            {
                logger.LogError(ex.Message);
                return(StatusCode(404, new ResponseDTO()
                {
                    Message = "Данный пользователь не найден", Status = false
                }));
            }
            catch (Exception ex)
            {
                logger.LogError(ex.Message);
                return(StatusCode(500, new ResponseDTO()
                {
                    Status = false
                }));
            }
        }