Hi Everyone,
I have the Stored Procedure as follows:
I want to perform three condition in my one stored procedure.
First Condition:Insert the New Record in Filelog Table
Second Condition:If Record is already exits in Filelog Table with same FileDate,FileType,CircleId and processed is 1 then return zero.
Third Condition:If CircleId is greater than equal to 14 then don't allowed to save the Record.
From these Three condition, my First condition and second condition is working .Third Condition is not working.Please Guide Me For the Same.
My Stored Procedure is as follows:
ALTER PROCEDURE [dbo].[K2_INSERTFILELOG]
@FILENAME VARCHAR(150),
@FILEPATH VARCHAR(MAX),
@FILETYPE int,
@FILEDATE datetime,
@CIRCLEID INT,
@TOTALROWS int,
@SUCCESSCOUNT int,
@FAILURECOUNT int,
@PROCESSED bit,
@ERROR varchar(MAX),
@VENDORID int,
@CREATEDBY INT = 1,
@CREATEDON DATETIME,
@DELETED BIT=0,
@FILELOGID bigINT OUT
AS
BEGIN
declare @Count int
select @Count = count(*) from K2FILELOG where FILETYPE = @FILETYPE and
FILEDATE = @FILEDATE and
CIRCLEID = @CIRCLEID and
Processed = 1
IF (@Count = 1)
BEGIN
set @FILELOGID = -1
return;
END
ELSE
BEGIN
INSERT INTO K2FILELOG
(FILEPATH, [FILENAME],FILETYPE,FILEDATE,CIRCLEID,TOTALROWS,SUCCESSCOUNT,FAILURECOUNT,PROCESSED,ERROR,VENDORID,CREATEDBY, CREATEDON, DELETED)
values (@FILEPATH ,@FILENAME,@FILETYPE,@FILEDATE,@CIRCLEID,@TOTALROWS,@SUCCESSCOUNT,@FAILURECOUNT,@PROCESSED,@ERROR ,@VENDORID,@CREATEDBY,@CREATEDON,@DELETED);
set @FILELOGID =@@identity
END
-- Third Condition
IF
@CIRCLEID >= 14 and
@PROCESSED = 1
BEGIN
SET @FILELOGID = (SELECT ID FROM K2FILELOG WITH (NOLOCK))
RETURN @FILELOGID
END
ELSE
BEGIN
INSERT INTO K2FILELOG
(FILEPATH, [FILENAME],FILETYPE,FILEDATE,CIRCLEID,TOTALROWS,SUCCESSCOUNT,FAILURECOUNT,PROCESSED,ERROR,VENDORID,CREATEDBY, CREATEDON, DELETED)
values (@FILEPATH ,@FILENAME,@FILETYPE,@FILEDATE,@CIRCLEID,@TOTALROWS,@SUCCESSCOUNT,@FAILURECOUNT,@PROCESSED,@ERROR ,@VENDORID,@CREATEDBY,@CREATEDON,@DELETED);
set @FILELOGID = @@identity;
END
END
In DataManager class I have Written the Code AS follows :
public int AddFileLogRecords(IEntityBase entityBase)
{
int rowsAffected = 0;
try
{
Logger.Write("Inside Kaizen2GDataManager.AddFileLogRecords()", LogType.Information);
IFileLog fileLog = entityBase as IFileLog;
CommonDataAccess.CreateStoredProcCommandWrapper(KaizenConstants.SPK2INSERTFILELOG);
CommonDataAccess.AddInParameter(KaizenConstants.FILEPATH, DbType.String, fileLog.FilePath);
CommonDataAccess.AddInParameter(KaizenConstants.FILENAME, DbType.String, fileLog.FileName);
CommonDataAccess.AddInParameter(KaizenConstants.FILETYPE, DbType.Int32, fileLog.FileType);
CommonDataAccess.AddInParameter(KaizenConstants.FILEDATE, DbType.DateTime, fileLog.FileDate);
CommonDataAccess.AddInParameter(KaizenConstants.CIRCLEID, DbType.Int32, fileLog.CircleId);
CommonDataAccess.AddInParameter(KaizenConstants.TOTALROWS, DbType.Int32, fileLog.TotalRows);
CommonDataAccess.AddInParameter(KaizenConstants.SUCCESSCOUNT, DbType.Int32, fileLog.SuccessCount);
CommonDataAccess.AddInParameter(KaizenConstants.FAILURECOUNT, DbType.Int32, fileLog.FailureCount);
CommonDataAccess.AddInParameter(KaizenConstants.ERROR, DbType.String, fileLog.ErrorMessage);
CommonDataAccess.AddInParameter(KaizenConstants.PROCESSED, DbType.Boolean, fileLog.Processed);
CommonDataAccess.AddInParameter(KaizenConstants.VENDORID, DbType.Int32, fileLog.VendorId);
CommonDataAccess.AddInParameter(KaizenConstants.CREATEDBY, DbType.Int32, 1);
CommonDataAccess.AddInParameter(KaizenConstants.CREATEDON, DbType.DateTime, DateTime.Now.ObjectToDBDateTime());
CommonDataAccess.AddInParameter(KaizenConstants.DELETED, DbType.Boolean, 0);
CommonDataAccess.AddInParameter(KaizenConstants.FILELOGID, DbType.Int32, fileLog.FileLogId);
rowsAffected = CommonDataAccess.ExceuteNonQuery();
Logger.Write("Exiting Kaizen2GDataManager.AddFileLogRecords()", LogType.Information);
}
catch (Exception exception)
{
throw exception;
}
return rowsAffected;
}