public static void BulkInsert <TEntity>(this IDbConnection dbConnection, List <TEntity> data, int timeout = 30, bool openConnection = true, bool closeConnection = true) { var datatable = DataTableHelper.ConvertToDatatable(data); SqlBulkCopy bulkCopy = new SqlBulkCopy ( (SqlConnection)dbConnection, SqlBulkCopyOptions.TableLock | SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions.UseInternalTransaction, null ); bulkCopy.DestinationTableName = datatable.TableName; bulkCopy.BulkCopyTimeout = timeout; if (openConnection) { dbConnection.Open(); } bulkCopy.WriteToServer(datatable); if (closeConnection) { dbConnection.Close(); } }
private void btnAddUser_Click(object sender, EventArgs e) { if (this.iGridEXGroup.CurrentRow != null) { var group = (SecurityGroupDto)this.iGridEXGroup.CurrentRow.DataRow; SecurityUserPresenter presenter = new SecurityUserPresenter(); var users = presenter.GetAll().UserDtoList; var tbl = DataTableHelper.ConvertToDatatable <UserDto>(users); ILov lovActionOrder; LovFields lfActionOrder; lfActionOrder = new LovFields(); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((UserDto m) => m.FirstName), "نام", 100, true); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((UserDto m) => m.LastName), "نام خانوادگی", 100, true); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((UserDto m) => m.PersonelCode), "کد پرسنلی", 100, true); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((UserDto m) => m.NationalNo), "کد ملی", 100, true); lovActionOrder = new ILov(this.btnAddUser, "ليست کاربران", tbl, lfActionOrder); var row = lovActionOrder.ShowDialog() as DataRow; if (row != null) { var userId = row.Field <long>(AssemblyReflector.GetMemberName((UserDto m) => m.UserId)); var selectedUser = users.Where(it => it.UserId == userId).FirstOrDefault(); string message = string.Format("آیا از انتساب گروه {0} به {1} مطمئن هستید؟", group.DisplayName, selectedUser.FullName); if (ISE.Framework.Client.Win.Viewer.MessageViewer.ShowAlert(message) != DialogResult.OK) { return; } view.AssignUser(group, selectedUser); } } }
private void btnAddRole_Click(object sender, EventArgs e) { if (this.iGridEXGroup.CurrentRow != null) { var group = (SecurityGroupDto)this.iGridEXGroup.CurrentRow.DataRow; RolePresenter presenter = new RolePresenter(); var roles = presenter.GetAll().RoleDtoList; var tbl = DataTableHelper.ConvertToDatatable <RoleDto>(roles); ILov lovActionOrder; LovFields lfActionOrder; lfActionOrder = new LovFields(); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((RoleDto m) => m.RoleName), "نام", 100, true); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((RoleDto m) => m.AppDomainName), "نام حوزه", 100, true); lovActionOrder = new ILov(this.btnAddRole, "ليست نقش ها", tbl, lfActionOrder); var row = lovActionOrder.ShowDialog() as DataRow; if (row != null) { var roleId = row.Field <int>(AssemblyReflector.GetMemberName((RoleDto m) => m.RoleId)); var selectedRole = roles.Where(it => it.RoleId == roleId).FirstOrDefault(); string message = string.Format("آیا از انتساب گروه {0} به نفش {1} مطمئن هستید؟", group.DisplayName, selectedRole.RoleName); if (ISE.Framework.Client.Win.Viewer.MessageViewer.ShowAlert(message) != DialogResult.OK) { return; } view.AssignRole(group, selectedRole); } } }
private void btnAddRole_Click(object sender, EventArgs e) { if (this.gridUsers.CurrentRow != null) { var user = (UserDto)this.gridUsers.CurrentRow.DataRow; RolePresenter presenter = new RolePresenter(); var roleList = presenter.GetAll().RoleDtoList; var tbl = DataTableHelper.ConvertToDatatable <RoleDto>(roleList); ILov lovActionOrder; LovFields lfActionOrder; lfActionOrder = new LovFields(); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((RoleDto m) => m.CondidateRoleName), "عنوان نقش", 100, true); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((RoleDto m) => m.AppDomainName), "حوزه", 100, true); lovActionOrder = new ILov(this.btnAddRole, "ليست نقش ها", tbl, lfActionOrder); var row = lovActionOrder.ShowDialog() as DataRow; if (row != null) { var roleId = row.Field <int>(AssemblyReflector.GetMemberName((RoleDto m) => m.RoleId)); var selectedRole = roleList.Where(it => it.RoleId == roleId).FirstOrDefault(); string message = string.Format("آیا از انتساب نقش {0} به {1} مطمئن هستید؟", selectedRole.CondidateRoleName, user.FullName); if (ISE.Framework.Client.Win.Viewer.MessageViewer.ShowAlert(message) != DialogResult.OK) { return; } view.AssignToRoles(user, selectedRole); } } }
private void btnAddGrp_Click(object sender, EventArgs e) { if (this.gridUsers.CurrentRow != null) { var user = (UserDto)this.gridUsers.CurrentRow.DataRow; SecurityGroupPresenter presenter = new SecurityGroupPresenter(); var group = presenter.GetAll().SecurityGroupDtoList; var tbl = DataTableHelper.ConvertToDatatable <SecurityGroupDto>(group); ILov lovActionOrder; LovFields lfActionOrder; lfActionOrder = new LovFields(); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((SecurityGroupDto m) => m.DisplayName), "عنوان گروه", 100, true); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((SecurityGroupDto m) => m.AppDomainName), "حوزه", 100, true); lovActionOrder = new ILov(this.btnAddGrp, "ليست نقش ها", tbl, lfActionOrder); var row = lovActionOrder.ShowDialog() as DataRow; if (row != null) { var groupId = row.Field <int>(AssemblyReflector.GetMemberName((SecurityGroupDto m) => m.SecurityGroupId)); var selectedGroup = group.Where(it => it.SecurityGroupId == groupId).FirstOrDefault(); string message = string.Format("آیا از انتساب گروه {0} به {1} مطمئن هستید؟", selectedGroup.DisplayName, user.FullName); if (ISE.Framework.Client.Win.Viewer.MessageViewer.ShowAlert(message) != DialogResult.OK) { return; } view.AssignToGroups(user, selectedGroup); } } }
private void btnCompany_Click(object sender, EventArgs e) { var result = view.LoadCompanies(); var tbl = DataTableHelper.ConvertToDatatable <CompanyDto>(result); ILov lovActionOrder; LovFields lfActionOrder; lfActionOrder = new LovFields(); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((CompanyDto m) => m.Name), "نام شرکت", 200, true); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((CompanyDto m) => m.NationalNo), "کد شناسایی ملی", 100, true); lovActionOrder = new ILov(this.btnCompany, "ليست شرکت ها", tbl, lfActionOrder); var row = lovActionOrder.ShowDialog() as DataRow; if (row != null) { var companId = row.Field <int>(AssemblyReflector.GetMemberName((CompanyDto m) => m.CompanyId)); var selectedCompany = result.Where(it => it.CompanyId == companId).FirstOrDefault(); if (selectedCompany != null) { txtCompany.Text = selectedCompany.Name; txtCompany.Tag = selectedCompany; } } }
private void btnAddGrp_Click(object sender, EventArgs e) { if (this.iGridEX1.CurrentRow != null) { var role = (RoleDto)this.iGridEX1.CurrentRow.DataRow; SecurityGroupPresenter presenter = new SecurityGroupPresenter(); var groups = presenter.GetAll().SecurityGroupDtoList; var tbl = DataTableHelper.ConvertToDatatable <SecurityGroupDto>(groups); ILov lovActionOrder; LovFields lfActionOrder; lfActionOrder = new LovFields(); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((SecurityGroupDto m) => m.GroupName), "نام", 100, true); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((SecurityGroupDto m) => m.AppDomainName), "نام خانوادگی", 100, true); lfActionOrder.AddItem(AssemblyReflector.GetMemberName((SecurityGroupDto m) => m.DisplayName), "نام نمایشی", 100, true); lovActionOrder = new ILov(this.btnAddGrp, "ليست گروه ها", tbl, lfActionOrder); var row = lovActionOrder.ShowDialog() as DataRow; if (row != null) { var grpId = row.Field <int>(AssemblyReflector.GetMemberName((SecurityGroupDto m) => m.SecurityGroupId)); var selectedGroup = groups.Where(it => it.SecurityGroupId == grpId).FirstOrDefault(); string message = string.Format("آیا از عضویت نقش {0} در {1} مطمئن هستید؟", role.RoleName, selectedGroup.DisplayName); if (ISE.Framework.Client.Win.Viewer.MessageViewer.ShowAlert(message) != DialogResult.OK) { return; } view.AssignToGroup(role, selectedGroup); } } }
public static void BulkInsertOrUpdate <TEntity>(this IDbConnection dbConnection, IEnumerable <TEntity> data, int timeout = 30, bool openConnection = true, bool closeConnection = true) { DataTable dataTable = DataTableHelper.ConvertToDatatable(data.ToList()); var sqlBulkEntityConfiguration = CacheHelper.GetConfiguration <TEntity>(); var tempTableName = sqlBulkEntityConfiguration.FullTempTableName; SqlConnection conn = (SqlConnection)dbConnection; using (SqlCommand command = new SqlCommand(string.Empty, conn)) { try { if (openConnection) { conn.Open(); } command.CommandText = TableHelper.GenerateLocalTempTableScript <TEntity>(); command.ExecuteNonQuery(); SqlBulkCopy bulkCopy = new SqlBulkCopy ( (SqlConnection)dbConnection, SqlBulkCopyOptions.TableLock | SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions.UseInternalTransaction, null ); bulkCopy.BulkCopyTimeout = timeout; bulkCopy.DestinationTableName = tempTableName; bulkCopy.WriteToServer(dataTable); bulkCopy.Close(); string setUpdate = TableHelper.GenerateSetUpdate <TEntity>(); string onJoin = TableHelper.GenerateOnJoin <TEntity>(); string valuesUpdate = TableHelper.GenerateValuesUpdate <TEntity>(); string columnsInsert = TableHelper.GenerateColumnsInsert <TEntity>(); command.CommandTimeout = timeout; command.CommandText = $@"MERGE INTO {dataTable.TableName} WITH(HOLDLOCK) USING {tempTableName} {onJoin} WHEN MATCHED THEN UPDATE SET {setUpdate} WHEN NOT MATCHED BY TARGET THEN INSERT({columnsInsert}) values({valuesUpdate}); DROP TABLE {tempTableName};"; command.ExecuteNonQuery(); } finally { if (closeConnection && dbConnection.State == ConnectionState.Open) { conn.Close(); } } } }