public void addStoreRole(StoreRole sr) { //SqlConnection connection = Connector.getInstance().getSQLConnection(); lock (connection) { if (ownerTrans == null) { connection.Open(); } SqlTransaction transaction; if (ownerTrans != null) { transaction = ownerTrans; } else { transaction = connection.BeginTransaction(); } try { string sql = "INSERT INTO [dbo].[StoreRoles] (storeId, appointedBy,userName,isOwner,editProduct,editDiscount,editPolicy)" + " VALUES (@storeId, @appointedBy, @userName,@isOwner,@editProduct,@editDiscount,@editPolicy)"; int storeId = sr.getStore().getStoreID(); string appointedBy = null; if (sr.getAppointedBy() != null) { appointedBy = sr.getAppointedBy().getUsername(); } string userName = sr.getUser().getUsername(); int isOwner = sr.getIsOwner(); int editProduct = 1; int editDiscount = 1; int editPolicy = 1; if (isOwner == 0) { editProduct = sr.GetPermissions().getPermission("editProduct"); editDiscount = sr.GetPermissions().getPermission("editDiscount"); editPolicy = sr.GetPermissions().getPermission("editPolicy"); } connection.Execute(sql, new { storeId, appointedBy, userName, isOwner, editProduct, editDiscount, editPolicy }, transaction); storeRole.AddFirst(sr); if (ownerTrans == null) { transaction.Commit(); transaction.Dispose(); connection.Close(); } } catch (Exception e) { if (ownerTrans == null) { transaction.Dispose(); connection.Close(); } SystemLogger.getErrorLog().Error("Connection error in function add role in DB Store while adding " + sr.getUser().getUsername()); throw new ConnectionException(); } } }