Monday 19 October 2009

NHibernate - Entity property is an Interface - mapping

If you have a class that maps to a table and a property of the class is an association to another table (i.e. 1:M Property) you may get the following error if the property is defined as an interface type:

 

NHibernate An association from the table XYZ refers to an unmapped class

 

This occurs because NHibernate will not have a mapping file for the interface type and cannot instantiate it because it is an interface. To fix the problem you need to include in the mapping file the actual class the property represents.

e.g.

 

IAccount MainAccount;

 

may map to

 

<many-to-one name="MainAccount" column="MainAccountID" class="BankingCore.BusinessEntities.Account, BankingCore"/>

 

where BankingCore.BusinessEntities.Account is the actual class to be instantiated for the property.

Friday 4 September 2009

Released: Who is to blame visual studio / subversion utility

Released free utility application: Who is to blame which allows the user to paste in warnings and errors from Visual Studio then get a report via Subversions Blame program of who edited the line.

Released Crystal Reports user library for BM+ pick-list lookup

Today we released for free download a user-library for substituting BM+ pick-list values into Crystal Reports.

The library can be downloaded by following the u2lBMPick link from Fairmort.com/Products

Monday 24 August 2009

NHibernate HQL Query : could not resolve property

If you get

could not resolve property: ID: of

error for a HQL query and you know the property exists and is spelt correctly check that the query parameters are defined correctly.

Had this problem when query text was:

 

..... TaskStatus:=status ....

 

The problem is that the colon is the wrong side of the equals, should be

 

..... TaskStatus=:status ....

 

Error is easy typo to make but had to spot.

Friday 20 February 2009

Task Scheduler : XP & Win 2003

WIN2003: Ensure Console is not logged in if trying to run task via Remote Console -

Following information taken from MS knowledge base: http://support.microsoft.com/kb/308558

 

Checking the Task Status

Periodically check the status of scheduled tasks, because sometimes you may not be aware that a scheduled task did not run. Use the Detail view in the Scheduled Task window to see the following information about each task:
  • Schedule - The schedule for the task.
  • Next Run Time - The time and date that the task is next scheduled to run.
  • Last Run Time - The time and date the task was last run.
  • Status - The current status of the task.
  • Last Result - Code that indicates the result of the last run.
The Status column has the following status and description information:
  • Blank - The task is not running, or it ran and was successful.
  • Running - The task is currently running.
  • Missed - One or more attempts to run this task was missed.
  • Could not start - The most recent attempt to start the task did not work.
The Last Result column displays a completion code. You can obtain a full explanation of all Windows completion codes from MSDN, but the common codes for scheduled tasks are:
  • 0x0: The operation completed successfully.
  • 0x1: An incorrect function was called or an unknown function was called.
  • 0xa: The environment is incorrect.
If the result code has the "C0000XXX" format, the task did not complete successfully (the "C" indicates an error condition). The most common "C" error code is "0xC000013A: The application terminated as a result of a CTRL+C".
Also check the following data in the task's properties:
  • Make sure the check box that turns on the task has a check mark.
  • Check the path to the program and make sure that it is correct. Also check the program to see if it requires some command-line parameters that are missing.
For a full explanation of Windows completion codes, visit the following Web site:

http://msdn2.microsoft.com/en-us/library/aa364454.aspx (http://msdn2.microsoft.com/en-us/library/aa364454.aspx)

Back to the top

Checking the Scheduled Tasks Log
Scheduled tasks maintains a log file (Schedlgu.txt), in the c:\Windows folder. You can view the log from the Scheduled Tasks window by clicking View Log on the Advanced menu.
The log file size is 32 kilobytes (KB), and when the file reaches its maximum size, it automatically starts to record new information at the beginning of the log file and writes over the old log file information.

Back to the top

Checking the Task Scheduler Service
The Task Scheduler service must be running and properly configured to run tasks. If you had stopped scheduled tasks manually from the Scheduled Tasks window, the service stops and does not initialize the next time you start the computer. If the service is not configured to log on as the local system account, it may not start.
To check the settings for the service:
  1. Click Start, click Control Panel, and then double-click Administrative Tools.
  2. Click Computer Management.
  3. Expand Services and Applications, and then click Services.
  4. Right-click the Task Scheduler service, and then click Properties.
  5. On the General tab, make sure that the startup type is set to automatic, and that the service status is Started. If the service is not running, click Start.
  6. On the Log On tab, make sure that the local system account is selected, and that the Allow service to interact with desktop check box has a check mark.
  7. Click OK, and then quit Computer Management.

Wednesday 28 January 2009

Asp.Net to PDF export

Interesting article on exporting a GridView to PDF:

 

http://csharpdotnetfreak.blogspot.com/2008/12/export-gridview-to-pdf-using-itextsharp.html

 

Uses open-source project iTextSharp

Friday 16 January 2009

Asp.Net encrypt connection string in web config

Quick note on how to encrypt the Connection string in the web.config for future reference
Encrypt the Connection string :
aspnet_regiis -pef "ConnectionString" "c:\path\to\website"

Grant Access to IIS to the key
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT Authority\Network Service"

note aspnet_regiis is in the .net framework directory for the version of .net that you are using