ما میخواهیم در یک سیستم انبارداری، بر اساس دو مکانیزم ورود و خروج، کالاهای داخل انبار را بر اساس زمان ورود کالا به انبار مدیریت کنیم. در این انبار شما چندین قفسه و دربرگیرنده کالا `InventoryWrapper` دارید که کالاها `Product` را در آن قرار میدهید `Add`.
ما هر قفسه را بصورت یک آرایه قابل پیمایش دیدهایم که رابط `IEnumerable` را پیادهسازی کرده و کالاها را در خود جای داده است.
برای پیمایش کالاهای داخل قفسه هم دو رویکرد پیمایش *LIFO* و *FIFO* را مد نظر قرار داده ایم.
شما ابتدا باید ساختار کلاس دربرگیرنده کالاها را تکمیل کنید، و بعد از آن رویکردهای پیمایش `Enumerator` را برای استراتژیهای عنوان شده پیادهسازی نمایید.
در انتها، قفسه شما باید بتواند اطلاعات داخل خود را به صورت یک فایل `XML` ذخیره نموده و در صورت لزوم بازیابی نماید.
# راهنمایی
+ در استراتژی *FIFO*، محصولاتی که **زودتر** از بقیه وارد قفسه شدهاند، ابتدا پیمایش میشوند.
+ در استراتژی *LIFO*، محصولاتی که **دیرتر** از بقیه وارد قفسه شدهاند، ابتدا پیمایش میشوند.
# نکات
+ برای دانلود فایل پروژه بر روی [این لینک](/problemset/assignments/4367/download_problem_initial_project/197316/) کلیک کنید
+ ساختار تعریف شده نیاز به اضافه کردن هیچ کلاس یا نوع جدیدی ندارد. شما میتوانید خود یک نمونه پیاده در کلاس `program.cs` داشته باشید، اما تستکیسهای نوشته شده با عملکرد کلاسها و توابع شما کدها را میسنجند.