Example #1
0
        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);
        }
Example #2
0
 public async Task <ActionResult <ResponseResult <LoginResonse> > > Register([FromBody] RegisterationDto dto)
 {
     return(await _repo.Register(dto));
 }