Thursday, February 18, 2016

Tuesday, May 6, 2014

Inspecting EntityValidationErrors

try { context.[table name].Add([object]) // Could also be before try if you know the exception occurs in SaveChanges context.SaveChanges(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; }

Tuesday, December 17, 2013

Delete Dupes

WITH g AS (
 SELECT ROW_NUMBER() OVER(PARTITION BY city, state, zip ORDER BY city, STATE, zip) AS row
 FROM dbo.Geography) 
DELETE FROM g
WHERE row > 1;

Thursday, July 21, 2011

SQL Date Queries

SELECT DATEADD(dd,-(DAY(GETDATE())-1),GETDATE()) AS FirstDayOfCurrentMonth

DECLARE @mydate DATETIMESELECT @mydate = GETDATE()

SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)),@mydate),101) ,'Last Day of Previous Month'

UNION

SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)-1),@mydate),101) AS Date_Value,'First Day of Current Month' AS Date_Type

UNION

SELECT CONVERT(VARCHAR(25),@mydate,101) AS Date_Value, 'Today' AS Date_Type

UNION

SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))),DATEADD(mm,1,@mydate)),101) ,'Last Day of Current Month'

UNION

SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))-1),DATEADD(mm,1,@mydate)),101) ,'First Day of Next Month'


Reference: http://blog.sqlauthority.com/2007/05/13/sql-server-query-to-find-first-and-last-day-of-current-month/

Friday, February 11, 2011

Friday, August 6, 2010

Using log4net in ASP.NET for capturing exceptions to both email and a log file

Here is how I am using log4net to capture exceptions to both
a log file and an email:

1.
Created the following method:

private void
LogError(Exception ex)

{

ILog loggerFile = LogManager.GetLogger("File");



ILog loggerEmail = LogManager.GetLogger("EmailLog");


loggerFile.Error("Exception in " +
Request.RawUrl, ex);


loggerEmail.Error("Exception in "
+ Request.RawUrl, ex);


  1. }


    Call this method in the “catch” block
    passing the error object instance:

catch (Exception ex)



{



LogError(ex);



}





3.
Added the following in Global.asax:Application_Start():


void Application_Start(object sender, EventArgs
e)



{




// Code that runs on application startup




log4net.Config.XmlConfigurator.Configure();





}





4.
Added the following <section> in web.config:



<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net
"/>





5

Added
the following section to web.config:

<log4net>



<appender name="LogFileAppender" type="log4net.Appender.FileAppender">



<!-- Please make
shure the ..\\Logs directory exists!
-->



<param name="File" value="Logs\\MyLog4Net.log"/>



<layout type="log4net.Layout.PatternLayout">



<conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] -
%message%newline
"/>



</layout>



</appender>



<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">



<to value="someone@whatever.com"/&gt;



<from value="application@whatever.com"/&gt;



<subject value="My Application System Error (Log4Net)"/>



<Authentication value="Basic"></Authentication>



<Username value="user@whatever.com"></Username&gt;



<Password value="password"></Password>



<Port value="25"></Port>



<smtpHost value="SMTP.whatever.com"/>



<bufferSize value="512"/>



<lossy value="false"/>



<Priority value="High"></Priority>



<evaluator type="log4net.Core.LevelEvaluator">



<threshold value="WARN"/>



</evaluator>



<layout type="log4net.Layout.PatternLayout,log4net">



<conversionPattern value="%property{log4net:HostName} :: %level :: %message
%newlineLogger: %logger%newlineThread: %thread%newlineDate: %date%newlineNDC:
%property{NDC}%newline%newline
"/>



</layout>



</appender>



<logger name="File">



<level value="DEBUG"/>



<appender-ref ref="LogFileAppender"/>



</logger>



<logger name="EmailLog">



<level value="WARN"/>



<appender-ref ref="SmtpAppender"/>



</logger>



</log4net>







Friday, July 9, 2010

Find() in a Generic List

List = new List(id);

Foo myFoo = foos.Find(delegate(Foos e) { return e.PropertyName == "whatever"; });