public bool Save(Pot entity) { Check.IsNotNull(entity, "Pot should be provided"); var saved = false; entity.ModificationDate = TimeProvider.Now(); _logger.Info("Start saving pot"); try { // id var id = GetNewId(); if (id <= 0) { _logger.Info("Unable to retrieve new id to save a pot"); return(false); } using (var con = new DatabaseConnection(DatabaseType.PostgreSql, GetConnectionString())) { using (var cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = InsertQuery; cmd.AddIntParameter(":pIDT", id); cmd.AddStringParameter(":pORG", entity.Organizer); cmd.AddStringParameter(":pPOTMOD", ModelEnumConverter.PotModeToString(entity.Mode)); cmd.AddDoubleParameter(":pCURMNT", entity.CurrentAmount); cmd.AddDoubleParameter(":pTGTMNT", entity.TargetAmount); cmd.AddIntParameter(":pTRPIDT", entity.TripId); cmd.AddStringParameter(":pNAM", entity.Name); cmd.AddDateParameter(":pSTRDAT", entity.StartDate); cmd.AddDateParameter(":pENDDAT", entity.EndDate); cmd.AddDateParameter(":pVALDAT", entity.ValidityDate); cmd.AddStringParameter(":pDSC", entity.Description); cmd.AddStringParameter(":pINDCANCEL", ConverterHelper.BoolToYesNoString(entity.IsCancelled)); cmd.AddStringParameter(":pCANCELRSN", entity.CancellationReason); cmd.AddDateParameter(":pCANCELDAT", entity.CancellationDate); cmd.AddDateTimeParameter(":pDATEFT", entity.ModificationDate); saved = cmd.ExecuteNonQuery() > 0; _logger.Info("End saving pot " + (saved ? "Success" : "Error")); if (saved) { entity.Id = id; } } } } catch (Exception ex) { _logger.Error("Error while trying to save pot with query : " + InsertQuery, ex); throw new ImportExportException("Error occured during database access " + ex.Message, ex); } return(saved); }
public bool Update(Pot entity) { var updated = false; Check.IsNotNull(entity, "Pot must provided for update"); entity.ModificationDate = TimeProvider.Now(); _logger.Info("Start updating pot"); try { using (var con = new DatabaseConnection(DatabaseType.PostgreSql, GetConnectionString())) { using (var cmd = con.CreateCommand()) { cmd.CommandType = CommandType.Text; cmd.CommandText = UpdateQuery; cmd.AddIntParameter(":pIDT", entity.Id); cmd.AddStringParameter(":pORG", entity.Organizer); cmd.AddStringParameter(":pPOTMOD", ModelEnumConverter.PotModeToString(entity.Mode)); cmd.AddDoubleParameter(":pCURMNT", entity.CurrentAmount); cmd.AddDoubleParameter(":pTGTMNT", entity.TargetAmount); cmd.AddStringParameter(":pNAM", entity.Name); cmd.AddDateParameter(":pSTRDAT", entity.StartDate); cmd.AddDateParameter(":pENDDAT", entity.EndDate); cmd.AddDateParameter(":pVALDAT", entity.ValidityDate); cmd.AddStringParameter(":pDSC", entity.Description); cmd.AddStringParameter(":pINDCANCEL", ConverterHelper.BoolToYesNoString(entity.IsCancelled)); cmd.AddStringParameter(":pCANCELRSN", entity.CancellationReason); cmd.AddDateParameter(":pCANCELDAT", entity.CancellationDate); cmd.AddDateTimeParameter(":pDATEFT", entity.ModificationDate); updated = cmd.ExecuteNonQuery() > 0; _logger.Info("End updating pot : " + (updated ? "Success" : "Error")); } } } catch (Exception ex) { _logger.Error("Error while trying to update pot with query : " + UpdateQuery, ex); throw new ImportExportException("Error occured during database access " + ex.Message, ex); } return(updated); }
public void PotModeToString_ShouldReturnCorrectStringValue(PotMode mode, string expected) { Assert.AreEqual(expected, ModelEnumConverter.PotModeToString(mode)); }