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/MemberRepository.php 2 locations

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

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 を保存する.