public void Save(IndicatorDropdownValue model, int userid) { bool transWasStarted = false; OleDbConnection connection = new OleDbConnection(DatabaseData.Instance.AccessConnectionString); using (connection) { connection.Open(); try { // START TRANS OleDbCommand command = new OleDbCommand("BEGIN TRANSACTION", connection); command.ExecuteNonQuery(); transWasStarted = true; if (model.Id > 0) command = new OleDbCommand(@"UPDATE IndicatorDropdownValues SET DropdownValue=@DropdownValue, IndicatorId=@IndicatorId, UpdatedById=@UpdatedById, UpdatedAt=@UpdatedAt, EntityType=@EntityType WHERE ID = @id", connection); else command = new OleDbCommand(@"INSERT INTO IndicatorDropdownValues (DropdownValue, IndicatorId, UpdatedById, UpdatedAt,EntityType, CreatedById, CreatedAt) VALUES (@DropdownValue, @IndicatorId, @UpdatedById, @UpdatedAt, @EntityType, @CreatedById, @CreatedAt)", connection); command.Parameters.Add(new OleDbParameter("@DropdownValue", model.DisplayName)); command.Parameters.Add(OleDbUtil.CreateNullableParam("@IndicatorId", model.IndicatorId)); command.Parameters.Add(new OleDbParameter("@UpdatedById", userid)); command.Parameters.Add(OleDbUtil.CreateDateTimeOleDbParameter("@UpdatedAt", DateTime.Now)); command.Parameters.Add(new OleDbParameter("@EntityType", (int)model.EntityType)); if (model.Id > 0) command.Parameters.Add(new OleDbParameter("@id", model.Id)); else { command.Parameters.Add(new OleDbParameter("@CreatedById", userid)); command.Parameters.Add(OleDbUtil.CreateDateTimeOleDbParameter("@CreatedAt", DateTime.Now)); } command.ExecuteNonQuery(); if (model.Id <= 0) { command = new OleDbCommand(@"SELECT Max(ID) FROM IndicatorDropdownValues", connection); model.Id = (int)command.ExecuteScalar(); } // COMMIT TRANS command = new OleDbCommand("COMMIT TRANSACTION", connection); command.ExecuteNonQuery(); transWasStarted = false; } catch (Exception) { if (transWasStarted) { try { OleDbCommand cmd = new OleDbCommand("ROLLBACK TRANSACTION", connection); cmd.ExecuteNonQuery(); } catch { } } throw; } } }
public void SaveEvalSubDistrict(IndicatorDropdownValue ez, int userId) { bool transWasStarted = false; OleDbConnection connection = new OleDbConnection(DatabaseData.Instance.AccessConnectionString); using (connection) { connection.Open(); try { // START TRANS OleDbCommand command = new OleDbCommand("BEGIN TRANSACTION", connection); command.ExecuteNonQuery(); transWasStarted = true; if (ez.Id > 0) command = new OleDbCommand(@"UPDATE EvalSubDistricts SET DisplayName=@DisplayName, UpdatedById=@UpdatedById, UpdatedAt=@UpdatedAt WHERE ID=@id", connection); else command = new OleDbCommand(@"INSERT INTO EvalSubDistricts (DisplayName, UpdatedById, UpdatedAt, CreatedById, CreatedAt) values (@DisplayName, @UpdatedById, @UpdatedAt, @CreatedById, @CreatedAt)", connection); command.Parameters.Add(OleDbUtil.CreateNullableParam("@DisplayName", ez.DisplayName)); command.Parameters.Add(new OleDbParameter("@UpdatedById", userId)); command.Parameters.Add(OleDbUtil.CreateDateTimeOleDbParameter("@UpdatedAt", DateTime.Now)); if (ez.Id > 0) command.Parameters.Add(new OleDbParameter("@id", ez.Id)); else { command.Parameters.Add(new OleDbParameter("@CreatedById", userId)); command.Parameters.Add(OleDbUtil.CreateDateTimeOleDbParameter("@CreatedAt", DateTime.Now)); } command.ExecuteNonQuery(); if (ez.Id <= 0) { command = new OleDbCommand(@"SELECT Max(ID) FROM EvalSubDistricts", connection); ez.Id = (int)command.ExecuteScalar(); } // COMMIT TRANS command = new OleDbCommand("COMMIT TRANSACTION", connection); command.ExecuteNonQuery(); transWasStarted = false; } catch (Exception) { if (transWasStarted) { try { OleDbCommand cmd = new OleDbCommand("ROLLBACK TRANSACTION", connection); cmd.ExecuteNonQuery(); } catch { } } throw; } } }