BLL.Dao.TimelapseDao.Insert C# (CSharp) Method

Insert() public static method

public static Insert ( Timelapse timelapse ) : int
timelapse BLL.Entities.Timelapse
return int
        public static int Insert(Timelapse timelapse)
        {
            string query = @"INSERT INTO [dbo].[Timelapses] " +
                           "([UserId],[CameraId],[OauthToken],[Code],[Title],[Status],[Privacy],[FromDT],[ToDT],[DateAlways],[TimeAlways],[ServerIP],[TzId],[TimeZone],[SnapsInterval],[ModifiedDT],[EnableMD],[MDThreshold],[ExcludeDark],[DarkThreshold],[FPS],[IsRecording],[IsDeleted],[CreatedDT],[WatermarkImage],[WatermarkPosition],[TimelapsePath]) " +
                           "VALUES " +
                           "(@UserId,@CameraId,@OauthToken,@Code,@Title,@Status,@Privacy,@FromDT,@ToDT,@DateAlways,@TimeAlways,@ServerIP,@TzId,@TimeZone,@SnapsInterval,@ModifiedDT,@EnableMD,@MDThreshold,@ExcludeDark,@DarkThreshold, @FPS,@IsRecording,@IsDeleted,@CreatedDT,@WatermarkImage,@WatermarkPosition,@TimelapsePath) " +
                           "SELECT CAST(scope_identity() AS int)";
            try
            {
                var p1 = new SqlParameter("@CameraId", timelapse.CameraId);
                var p2 = new SqlParameter("@UserId", timelapse.UserId);
                var p3 = new SqlParameter("@Code", timelapse.Code);
                var p4 = new SqlParameter("@Title", timelapse.Title);
                var p5 = new SqlParameter("@Status", timelapse.Status);
                var p6 = new SqlParameter("@Privacy", timelapse.Privacy);
                var p7 = new SqlParameter("@FromDT", (timelapse.FromDT == null ? Utils.SQLMinDate : timelapse.FromDT));
                var p8 = new SqlParameter("@ToDT", (timelapse.ToDT == null ? Utils.SQLMaxDate : timelapse.ToDT));
                var p9 = new SqlParameter("@ServerIP", timelapse.ServerIP);
                var p10 = new SqlParameter("@EnableMD", timelapse.EnableMD);
                var p11 = new SqlParameter("@MDThreshold", timelapse.MDThreshold);
                var p12 = new SqlParameter("@ExcludeDark", timelapse.ExcludeDark);
                var p13 = new SqlParameter("@DarkThreshold", timelapse.DarkThreshold);
                var p14 = new SqlParameter("@IsRecording", timelapse.IsRecording);
                var p15 = new SqlParameter("@IsDeleted", timelapse.IsDeleted);
                var p16 = new SqlParameter("@ModifiedDT", Utils.ConvertFromUtc(DateTime.UtcNow, timelapse.TimeZone));
                var p17 = new SqlParameter("@SnapsInterval", timelapse.SnapsInterval);
                var p18 = new SqlParameter("@TimeZone", timelapse.TimeZone);
                var p19 = new SqlParameter("@DateAlways", timelapse.DateAlways);
                var p20 = new SqlParameter("@TimeAlways", timelapse.TimeAlways);
                var p21 = new SqlParameter("@CreatedDT", Utils.ConvertFromUtc(DateTime.UtcNow, timelapse.TimeZone));
                var p22 = new SqlParameter("@TzId", timelapse.TzId);
                var p23 = new SqlParameter("@FPS", timelapse.FPS);
                var p24 = new SqlParameter("@OauthToken", timelapse.OauthToken);
                var p25 = new SqlParameter("@WatermarkImage", (timelapse.WatermarkImage.Equals("-")? "" : timelapse.WatermarkImage));
                var p26 = new SqlParameter("@WatermarkPosition", timelapse.WatermarkPosition);
                var p27 = new SqlParameter("@TimelapsePath", timelapse.TimelapsePath);

                var list = new[] { p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27};
                var cmd = new SqlCommand { CommandText = query, CommandType = CommandType.Text };
                cmd.Parameters.AddRange(list);
                Connection.OpenConnection();
                cmd.Connection = Connection.DbConnection;
                int result = (int)cmd.ExecuteScalar();
                Connection.CloseConnection();
                cmd.Dispose();
                return result;
            }
            catch (Exception ex)
            {
                Utils.FileLog("TimelapseDao Insert(Timelapse timelapse) " + ex.Message);
                return 0;
            }
            finally
            { Connection.CloseConnection(); }
        }