در بیشتر مواردی که در قسمت ادمین سایت میگذرد، مثل ریاضیات که شامل چهار عمل اصلی است، افزودن، ویرایش، حذف، و انتخاب نیز، همین وظیفه را در عملیاتهای کار با داده، انجام میدهند. البته در این بین اعتبارسنجی را نباید فراموش کرد:
برای مثال میتوان از یک کلاس مشترک برای این کار که از Page ارثبری کرده است، استفاده و بصورت یک کلاس abstract وظیفه پیاده سازی را به صفحه مورد نظر محول کرد. برای نمونه کلاس ساده زیر را در نظر بگیرید:
و برای روال گردانی هم مطمئنا این متدها باید به ترتیب یکسان در همه صفحات مورد استفاده قرار گیرد، پس لازم است حالتهای صفحه به این کلاس پاس شود تا بر اساس حالت صفحه، متدها بترتیب صدا زده شوند:
که در همین کلاس میتوان متدی برای این کار در نظر گرفت:
ادامه دارد
0. Validation 1. Insert 2. Edit 3. Delete 4. Select
public abstract class PageStateMachine : Page { ... protected abstract ... Save(); protected abstract ... Select(); protected abstract ... Delete(); protected abstract ... Validation(); ...
public enum PageState { Save = 0, Select = 2, Delete = 8, Cancel = 16 }
public void Go(PageState pageState) { switch (pageState) { case PageState.Save: { var error = Validation(); Message = error.HasError ? error.Message : Save().Message; if (!error.HasError) { ClearControls(); RefreshList(); } break; } case PageState.Select: { Message = Select().Message; break; } break; case PageState.Delete: { Message = Delete().Message; ClearControls(); RefreshList(); break; } case PageState.Cancel: { Message = string.Empty; ClearControls(); break; } } }