Ejemplo n.º 1
0
        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();
                }
            }
        }