public async Task <ResponseResult <LoginResonse> > Register(RegisterationDto dto) { ResponseResult <LoginResonse> result = new ResponseResult <LoginResonse>(); List <User> users = new List <User>(); users = _dbContext.Users.ToList(); if (String.IsNullOrEmpty(dto.Name)) { result.Data = null; result.Errors = new List <string> { "Name is required" }; result.Status = StatusType.Failed; } else if (String.IsNullOrEmpty(dto.Password)) { result.Data = null; result.Errors = new List <string> { "Password is required" }; result.Status = StatusType.Failed; } else if (dto.Type < 0) { result.Data = null; result.Errors = new List <string> { "Select User type" }; result.Status = StatusType.Failed; } else if (users != null && users.Count > 0 && users.Any(u => u.Name.ToLower() == dto.Name.ToLower())) { result.Data = null; result.Errors = new List <string> { "Name already used" }; result.Status = StatusType.Failed; } else { try { var isSaved = false; User user = new User(); string encryptedPassword = EncryptPassword(dto.Password); user.Name = dto.Name; user.Password = encryptedPassword; user.Type = dto.Type; _dbContext.Users.Add(user); isSaved = await _dbContext.SaveChangesAsync() > 0; if (isSaved) { User savedUser = _dbContext.Users.Where(u => u.Name.ToLower() == dto.Name.ToLower()).FirstOrDefault(); result.Data = new LoginResonse { Id = savedUser.Id, Name = savedUser.Name, Type = savedUser.Type }; result.Errors = null; result.Status = StatusType.Success; } else { result.Data = null; result.Errors = new List <string> { "Something went wrong, please contact the developer" }; result.Status = StatusType.Failed; } } catch (Exception ex) { result.Data = null; result.Errors = new List <string> { "Something went wrong, please contact the developer" }; result.Status = StatusType.Failed; } } return(result); }
public async Task <ActionResult <ResponseResult <LoginResonse> > > Register([FromBody] RegisterationDto dto) { return(await _repo.Register(dto)); }