Code Duplication    Length = 28-30 lines in 6 locations

src/Eccube/Repository/ClassNameRepository.php 2 locations

@@ 58-87 (lines=30) @@
55
     * @param  \Eccube\Entity\ClassName $ClassName
56
     * @return boolean 成功した場合 true
57
     */
58
    public function up(\Eccube\Entity\ClassName $ClassName)
59
    {
60
        $em = $this->getEntityManager();
61
        $em->getConnection()->beginTransaction();
62
        try {
63
            $rank = $ClassName->getRank();
64
65
            //
66
            $ClassName2 = $this->findOneBy(array('rank' => $rank + 1));
67
            if (!$ClassName2) {
68
                throw new \Exception();
69
            }
70
            $ClassName2->setRank($rank);
71
            $em->persist($ClassName);
72
73
            // ClassName更新
74
            $ClassName->setRank($rank + 1);
75
76
            $em->persist($ClassName);
77
            $em->flush();
78
79
            $em->getConnection()->commit();
80
        } catch (\Exception $e) {
81
            $em->getConnection()->rollback();
82
83
            return false;
84
        }
85
86
        return true;
87
    }
88
89
    /**
90
     * 規格の順位を1下げる.
@@ 95-124 (lines=30) @@
92
     * @param \Eccube\Entity\ClassName $ClassName
93
     * @return boolean 成功した場合 true
94
     */
95
    public function down(\Eccube\Entity\ClassName $ClassName)
96
    {
97
        $em = $this->getEntityManager();
98
        $em->getConnection()->beginTransaction();
99
        try {
100
            $rank = $ClassName->getRank();
101
102
            //
103
            $ClassName2 = $this->findOneBy(array('rank' => $rank - 1));
104
            if (!$ClassName2) {
105
                throw new \Exception();
106
            }
107
            $ClassName2->setRank($rank);
108
            $em->persist($ClassName);
109
110
            // ClassName更新
111
            $ClassName->setRank($rank - 1);
112
113
            $em->persist($ClassName);
114
            $em->flush();
115
116
            $em->getConnection()->commit();
117
        } catch (\Exception $e) {
118
            $em->getConnection()->rollback();
119
120
            return false;
121
        }
122
123
        return true;
124
    }
125
126
    /**
127
     * 規格を保存する.

src/Eccube/Repository/NewsRepository.php 2 locations

@@ 44-72 (lines=29) @@
41
     * @param  \Eccube\Entity\News $News
42
     * @return boolean 成功した場合 true
43
     */
44
    public function up(\Eccube\Entity\News $News)
45
    {
46
        $em = $this->getEntityManager();
47
        $em->getConnection()->beginTransaction();
48
        try {
49
            $rank = $News->getRank();
50
51
            $News2 = $this->findOneBy(array('rank' => $rank + 1));
52
            if (!$News2) {
53
                throw new \Exception();
54
            }
55
            $News2->setRank($rank);
56
            $em->persist($News2);
57
58
            // News更新
59
            $News->setRank($rank + 1);
60
61
            $em->persist($News);
62
            $em->flush();
63
64
            $em->getConnection()->commit();
65
        } catch (\Exception $e) {
66
            $em->getConnection()->rollback();
67
68
            return false;
69
        }
70
71
        return true;
72
    }
73
74
    /**
75
     * News の順位を1下げる
@@ 80-107 (lines=28) @@
77
     * @param  \Eccube\Entity\News $News
78
     * @return boolean 成功した場合 true
79
     */
80
    public function down(\Eccube\Entity\News $News)
81
    {
82
        $em = $this->getEntityManager();
83
        $em->getConnection()->beginTransaction();
84
        try {
85
            $rank = $News->getRank();
86
            $News2 = $this->findOneBy(array('rank' => $rank - 1));
87
            if (!$News2) {
88
                throw new \Exception();
89
            }
90
            $News2->setRank($rank);
91
            $em->persist($News2);
92
93
            // News更新
94
            $News->setRank($rank - 1);
95
96
            $em->persist($News);
97
            $em->flush();
98
99
            $em->getConnection()->commit();
100
        } catch (\Exception $e) {
101
            $em->getConnection()->rollback();
102
103
            return false;
104
        }
105
106
        return true;
107
    }
108
109
    /**
110
     * News を保存する.

src/Eccube/Repository/MemberRepository.php 2 locations

@@ 136-164 (lines=29) @@
133
     *
134
     * @return void
135
     */
136
    public function up(\Eccube\Entity\Member $Member)
137
    {
138
        $em = $this->getEntityManager();
139
        $em->getConnection()->beginTransaction();
140
        try {
141
            $rank = $Member->getRank();
142
143
            $Member2 = $this->findOneBy(array('rank' => $rank + 1));
144
            if (!$Member2) {
145
                throw new \Exception();
146
            }
147
            $Member2->setRank($rank);
148
            $em->persist($Member2);
149
150
            // Member更新
151
            $Member->setRank($rank + 1);
152
153
            $em->persist($Member);
154
            $em->flush();
155
156
            $em->getConnection()->commit();
157
        } catch (\Exception $e) {
158
            $em->getConnection()->rollback();
159
160
            return false;
161
        }
162
163
        return true;
164
    }
165
166
    /**
167
     * @param  \Eccube\Entity\Member $Member
@@ 170-199 (lines=30) @@
167
     * @param  \Eccube\Entity\Member $Member
168
     * @return bool
169
     */
170
    public function down(\Eccube\Entity\Member $Member)
171
    {
172
        $em = $this->getEntityManager();
173
        $em->getConnection()->beginTransaction();
174
        try {
175
            $rank = $Member->getRank();
176
177
            //
178
            $Member2 = $this->findOneBy(array('rank' => $rank - 1));
179
            if (!$Member2) {
180
                throw new \Exception();
181
            }
182
            $Member2->setRank($rank);
183
            $em->persist($Member2);
184
185
            // Member更新
186
            $Member->setRank($rank - 1);
187
188
            $em->persist($Member);
189
            $em->flush();
190
191
            $em->getConnection()->commit();
192
        } catch (\Exception $e) {
193
            $em->getConnection()->rollback();
194
195
            return false;
196
        }
197
198
        return true;
199
    }
200
201
    /**
202
     * @param  \Eccube\Entity\Member $Member