/// <summary> /// Async register customer /// </summary> /// <param name="customer">Csutomer entity</param> /// <param name="password">Customer password</param> /// <returns>Registrated customer</returns> public async Task <Customers> Register(Customers customer, string password) { byte[] passwordHash; byte[] passwordSalt; AuthHelpers.CreatePasswordHash(password, out passwordHash, out passwordSalt); customer.CustomerPassword = passwordHash; customer.CustomerSalt = passwordSalt; using (var transaction = _surveyOnlineContext.Database.BeginTransaction()) { try { await _surveyOnlineContext.AddAsync(customer); await _surveyOnlineContext.SaveChangesAsync(); transaction.Commit(); } catch (Exception) { transaction.Rollback(); } } return(customer); }