public static Common.Models.Opportunities.Opportunity Edit(
            Common.Models.Opportunities.Opportunity model,
            Common.Models.Account.Users modifier,
            IDbConnection conn   = null,
            bool closeConnection = true)
        {
            model.ModifiedBy = modifier;
            model.Modified   = DateTime.UtcNow;
            DBOs.Opportunities.Opportunity dbo = Mapper.Map <DBOs.Opportunities.Opportunity>(model);

            conn = DataHelper.OpenIfNeeded(conn);

            conn.Execute("UPDATE \"opportunity\" SET " +
                         "\"account_id\"=@AccountId, \"stage_id\"=@StageId, \"probability\"=@Probability, \"amount\"=@Amount, \"closed\"=@Closed, \"lead_id\"=@LeadId, \"matter_id\"=@MatterId, \"utc_modified\"=@UtcModified, \"modified_by_user_pid\"=@ModifiedByUserPId " +
                         "WHERE \"id\"=@Id", dbo);

            DataHelper.Close(conn, closeConnection);

            return(model);
        }
        public static Common.Models.Opportunities.Opportunity Close(
            Common.Models.Opportunities.Opportunity model,
            Common.Models.Account.Users modifier,
            IDbConnection conn   = null,
            bool closeConnection = true)
        {
            model.ModifiedBy = modifier;
            model.Modified   = DateTime.UtcNow;
            DBOs.Opportunities.Opportunity dbo = Mapper.Map <DBOs.Opportunities.Opportunity>(model);
            dbo.Closed = DateTime.UtcNow;

            conn = DataHelper.OpenIfNeeded(conn);

            conn.Execute("UPDATE \"opportunity\" SET " +
                         "\"closed\"=@Closed, \"utc_modified\"=@UtcModified, \"modified_by_user_pid\"=@ModifiedByUserPId " +
                         "WHERE \"id\"=@Id", dbo);

            DataHelper.Close(conn, closeConnection);

            return(model);
        }
        public static Common.Models.Opportunities.Opportunity Create(
            Common.Models.Opportunities.Opportunity model,
            Common.Models.Account.Users creator,
            IDbConnection conn   = null,
            bool closeConnection = true)
        {
            model.CreatedBy = model.ModifiedBy = creator;
            model.Created   = model.Modified = DateTime.UtcNow;
            DBOs.Opportunities.Opportunity dbo = Mapper.Map <DBOs.Opportunities.Opportunity>(model);

            conn = DataHelper.OpenIfNeeded(conn);

            if (conn.Execute("INSERT INTO \"opportunity\" (\"account_id\", \"stage_id\", \"probability\", \"amount\", \"closed\", \"lead_id\", \"matter_id\", \"utc_created\", \"utc_modified\", \"created_by_user_pid\", \"modified_by_user_pid\") " +
                             "VALUES (@AccountId, @StageId, @Probability, @Amount, @Closed, @LeadId, @MatterId, @UtcCreated, @UtcModified, @CreatedByUserPId, @ModifiedByUserPId)",
                             dbo) > 0)
            {
                model.Id = conn.Query <DBOs.Opportunities.Opportunity>("SELECT currval(pg_get_serial_sequence('opportunity', 'id')) AS \"id\"").Single().Id;
            }

            DataHelper.Close(conn, closeConnection);

            return(model);
        }