public async Task <bool> PerformSaveAndUpdateOperationAsync(UserModelingDetails userModelingDetails) { try { using (var conn = await Connection.OpenConnectionAsync()) { using (var tran = conn.BeginTransaction()) { try { conn.Execute( SpNames.UserModeling.ClearDetail, param: new { userModelingDetails.UserModeling.UserId }, transaction: tran, commandType: CommandType.StoredProcedure); /* @UserId UNIQUEIDENTIFIER, @ExpCode INT, @WebSite NVARCHAR(350), @AgentNeedCode INT, @Experiance NVARCHAR(2000) */ var param = new DynamicParameters(); param.Add("@UserId", userModelingDetails.UserModeling.UserId, DbType.Guid, ParameterDirection.Input); param.Add("@ExpCode", userModelingDetails.UserModeling.ExpCode, DbType.Int32, ParameterDirection.Input); param.Add("@WebSite", userModelingDetails.UserModeling.WebSite, DbType.String, ParameterDirection.Input); param.Add("@AgentNeedCode", userModelingDetails.UserModeling.AgentNeedCode, DbType.Int32, ParameterDirection.Input); param.Add("@Experiance", userModelingDetails.UserModeling.Experiance, DbType.String, ParameterDirection.Input); await conn.ExecuteAsync(SpNames.UserModeling.SaveUpdate, param : param, transaction : tran, commandType : CommandType.StoredProcedure); // Job Group Save if (userModelingDetails.ModelingRoles.Any()) { var jobGroupTask = userModelingDetails.ModelingRoles.Select(async x => { var jobGroupParam = new { userModelingDetails.UserModeling.UserId, JobCode = x.Code }; return(await conn.ExecuteAsync(SpNames.UserModeling.UserModelingRolesSave, param: jobGroupParam, transaction: tran, commandType: CommandType.StoredProcedure)); }); var updatedResult = await Task.WhenAll(jobGroupTask); } tran.Commit(); return(true); } catch (Exception ex) { tran.Rollback(); throw ex; } } } } catch (Exception ex) { throw ex; } }
public async Task <bool> SaveUserModelingDetailsAsync(UserModelingModel userModelingModel) { if (userModelingModel.IsNotNull()) { var userModelingDetails = new UserModelingDetails { UserModeling = _mapper.Map <UserModeling>(userModelingModel), ModelingRoles = _mapper.Map <List <JobSubGroup> >(userModelingModel.ModelingRoles).Where(x => x.SelectedCode != 0) }; userModelingDetails.UserModeling.UserId = UserContext.Current.UserId; return(await _userModelingRepository.PerformSaveAndUpdateOperationAsync(userModelingDetails)); } return(false); }