示例#1
0
        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);
        }
示例#2
0
        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));
 }