public async Task <UserValidationStatus> ValidateCreateDuplicate(StaffMemberCreateParameters parameters) { var findEmployeeEmail = await _dbContext.Staff.AnyAsync(c => c.Email.Contains(parameters.Email)); var findEmployeeMobile = await _dbContext.Staff.AnyAsync(c => c.MobileNumber.Equals(parameters.MobileNumber)); if (findEmployeeEmail) { return(UserValidationStatus.EmailAlreadyExists); } else if (findEmployeeMobile) { return(UserValidationStatus.MobileAlreadyExists); } else { return(UserValidationStatus.Success); } }
public async Task <StaffMemberCreateResult> Create(StaffMemberCreateParameters parameters) { var validation = await _staffValidation.ValidateCreateDuplicate(parameters); if (validation != UserValidationStatus.Success) { return(null); } else { var result = await _dbContext.Staff.AddAsync(new StaffMember() { Name = parameters.Name, MobileNumber = parameters.MobileNumber, AreaCode = parameters.AreaCode, Email = parameters.Email, BirthDate = parameters.BirthDate.Date, Address = parameters.Address, Role = StaffMemberRole.Employee, Status = UserStatus.Inactive }); await _dbContext.SaveChangesAsync(); var staff = result.Entity; return(new StaffMemberCreateResult() { Id = staff.Id, Name = parameters.Name, MobileNumber = parameters.MobileNumber, AreaCode = parameters.AreaCode, Email = parameters.Email, Address = parameters.Address, Role = staff.Role, }); } }