"يجوز للمستخدم فعل X هل المستخدم يمتلك الكائن Y": تنفيذ المنطق في التحقق من صحة النموذج أو منطق وحدة التحكم؟
-
27-10-2019 - |
سؤال
ضع في اعتبارك ، على سبيل المثال ، المنطق "لا يجوز للمستخدم تعديل أو حذف سوى التعليق الذي كتبه المستخدم".
ستكرر إجراءات وحدة التحكم الخاصة بي منطق التحقق مما إذا كان المستخدم المسجل الدخول حاليًا يمكنه التأثير على التعليق.مثال Genacodicetagpre
بالطبع ، يمكنني تجميع هذا المنطق في طريقة بحيث لا أنسخ / ألصق هذا المقتطف ؛ومع ذلك ، فإن إخراج هذا الرمز من وحدة التحكم ووضعه في ValidationAttribute يجعل عملي أصغر وأسهل في كتابة الاختبارات له.مثال Genacodicetagpre
هل التحقق من النموذج هو الأداة المناسبة لهذه الوظيفة؟أحب إخراج هذا القلق من عمل وحدة التحكم ؛ولكن في هذه الحالة ، قد يزيد الأمر تعقيدًا.هذا صحيح بشكل خاص عندما تفكر في أن هذا الإجراء جزء من واجهة برمجة تطبيقات RESTful ويحتاج إلى إرجاع رمز حالة HTTP مختلف بناءً على أخطاء التحقق من الصحة في ModelState.
هل توجد "أفضل الممارسات" في هذه الحالة؟
المحلول
شخصيًا ، أعتقد أنه يبدو رائعًا ، لكنك تنجرف في التعليقات التوضيحية.أعتقد أن هذا لا ينتمي إلى طبقة العرض التقديمي الخاص بك ويجب معالجته بواسطة طبقة الخدمة الخاصة بك.
سأحصل على شيء على غرار: Genacodicetagpre