فلش‌کارت‌های آموزشی پیاده‌سازی الگوهای Command Pattern in WPF

بهترین دوره آموزش Command Pattern در WPF تسلط بر Command Pattern در WPF: مسیری نو به سوی کدنویسی حرفه‌ای آیا از پیچیدگی مدیریت تعاملات در برنامه‌های WPF خود خسته شده‌اید؟ آیا به دنبال راهی برای سازمان...

انتخاب پلن

انتخاب پلن برای ادامه خرید الزامی است.

پرداخت اقساطی
در صورت خرید اقساطی هر قسط: 74,988 تومان
۴ قسط ماهانه. بدون سود، چک و ضامن.
پرداخت اقساطی با دیجی‌پی پرداخت اقساطی با ترب‌پی

🎓 دوره آموزشی جامع

📚 اطلاعات دوره

عنوان دوره: پیاده‌سازی الگوهای Command Pattern in WPF

موضوع کلی: برنامه نویسی

موضوع میانی: WPF (Windows Presentation Foundation)

📋 سرفصل‌های دوره (100 موضوع)

  • 1. مبانی WPF و Command Pattern
  • 2. معرفی WPF و اکوسیستم .NET
  • 3. آشنایی با XAML و ساختار آن
  • 4. مفاهیم پایه‌ای کنترل‌ها و Layoutها در WPF
  • 5. دیتا بایندینگ (Data Binding) در WPF
  • 6. استایل‌ها و تم‌ها (Styles & Themes) در WPF
  • 7. آشنایی با مفهوم Command Pattern و مزایای آن
  • 8. مقایسه Command Pattern با رویکردهای دیگر
  • 9. پیاده‌سازی ICommand Interface در .NET
  • 10. درک مفهوم RoutedCommand در WPF
  • 11. پیاده‌سازی ساده Command Pattern
  • 12. ایجاد یک Command ساده و بایند کردن آن به یک Button
  • 13. نحوه استفاده از CommandParameter
  • 14. ایجاد یک Command با قابلیت فعال/غیرفعال شدن (CanExecute)
  • 15. پیاده‌سازی CanExecuteChanged و تاثیر آن
  • 16. استفاده از RelayCommand برای ساده‌سازی پیاده‌سازی
  • 17. تست کردن Commandهای ساده
  • 18. پیاده‌سازی Command Pattern با استفاده از MVVM
  • 19. مقدمه‌ای بر معماری MVVM (Model-View-ViewModel)
  • 20. ایجاد Model، View و ViewModel
  • 21. دیتا بایندینگ بین View و ViewModel
  • 22. پیاده‌سازی Commandها در ViewModel
  • 23. استفاده از RelayCommand در ViewModel
  • 24. مدیریت State برنامه با ViewModel و Commandها
  • 25. نحوه استفاده از Dependency Injection برای Commandها
  • 26. الگوهای پیشرفته Command Pattern
  • 27. ایجاد Commandهای Composite
  • 28. پیاده‌سازی Commandهای Undo/Redo
  • 29. استفاده از Commandهای Asynchronous
  • 30. مدیریت Exceptionها در Commandها
  • 31. ایجاد Commandهای Parameterized
  • 32. استفاده از Commandهای Generic
  • 33. Command Binding و Event Triggers
  • 34. آشنایی با Event Triggers در WPF
  • 35. بایند کردن Commandها به Eventها
  • 36. استفاده از EventToCommand در MVVM Light
  • 37. استفاده از Behaviorها برای بایند کردن Commandها به Eventها
  • 38. ایجاد Behaviors سفارشی برای Command Binding
  • 39. استفاده از InvokeCommandAction در System.Windows.Interactivity
  • 40. Command Scoping و ContextMenuها
  • 41. نحوه مدیریت Command Scope
  • 42. بایند کردن Commandها به ContextMenuها
  • 43. استفاده از Command ها در DataGridها
  • 44. ایجاد CommandBinding برای رویدادهای DataGrid
  • 45. مدیریت Commandها در یک TreeView
  • 46. Command و Navigation
  • 47. پیاده‌سازی Navigation با استفاده از Command Pattern
  • 48. ایجاد Commandها برای تغییر View
  • 49. استفاده از Frame و Page برای Navigation
  • 50. استفاده از NavigationService در MVVM
  • 51. مدیریت History Navigation با Commandها
  • 52. استفاده از Dialog Service و Commandها
  • 53. تست واحد (Unit Testing) Commandها
  • 54. نحوه تست کردن Commandهای پیاده‌سازی شده
  • 55. استفاده از Mock objectها برای تست کردن Commandها
  • 56. تست کردن CanExecuteChanged
  • 57. تست کردن سناریوهای مختلف Commandها
  • 58. استفاده از فریم ورک‌های تست (MSTest, NUnit, xUnit)
  • 59. بهترین روش‌ها در Command Pattern
  • 60. استفاده از Commandها برای جداسازی Logic
  • 61. مدیریت وابستگی‌ها با Commandها
  • 62. بهینه‌سازی Commandها برای کارایی
  • 63. استفاده از Commandها در پروژه‌های بزرگ
  • 64. مستندسازی Commandها
  • 65. استفاده از Commandها برای قابلیت توسعه
  • 66. استفاده از Command ها در User Control ها
  • 67. Command ها در custom control ها
  • 68. ایجاد Command Library سفارشی
  • 69. سناریوهای واقعی Command Pattern
  • 70. پیاده‌سازی یک ویرایشگر متن ساده با Command Pattern
  • 71. پیاده‌سازی یک برنامه نقاشی ساده با Command Pattern
  • 72. پیاده‌سازی یک برنامه ماشین حساب با Command Pattern
  • 73. پیاده‌سازی مدیریت کاربران با Command Pattern
  • 74. پیاده‌سازی یک سیستم سفارش غذا با Command Pattern
  • 75. پیاده سازی یک dashboard مدیریتی با command pattern
  • 76. آشنایی با ابزارها و کتابخانه‌های Command Pattern
  • 77. MVVM Light Toolkit
  • 78. Caliburn.Micro
  • 79. Prism
  • 80. Reactive Extensions (Rx)
  • 81. Catel
  • 82. Stylet
  • 83. Command Patterns در معماری نرم‌افزار
  • 84. Command Pattern در Clean Architecture
  • 85. Command Pattern در CQRS (Command Query Responsibility Segregation)
  • 86. Command Pattern در Domain Driven Design (DDD)
  • 87. مباحث تکمیلی Command Pattern
  • 88. استفاده از Commandها با WPF Animation
  • 89. Command ها و Threading (UI thread vs Background thread)
  • 90. بررسی performance Command ها
  • 91. Debugging Command ها
  • 92. مثال‌های پیشرفته Command Pattern
  • 93. پیاده سازی یک command پیچیده با چندین Dependency
  • 94. ایجاد یک command که با یک API خارجی کار می کند
  • 95. ایجاد یک command که با یک پایگاه داده کار می کند
  • 96. Command Pattern و امنیت
  • 97. جلوگیری از دسترسی غیرمجاز به Commandها
  • 98. اعتبارسنجی Commandها
  • 99. Command Pattern و Accessibility
  • 100. اطمینان از دسترسی آسان به Commandها برای کاربران معلول
بهترین دوره آموزش Command Pattern در WPF

تسلط بر Command Pattern در WPF: مسیری نو به سوی کدنویسی حرفه‌ای

آیا از پیچیدگی مدیریت تعاملات در برنامه‌های WPF خود خسته شده‌اید؟ آیا به دنبال راهی برای سازماندهی بهتر کدهای خود و افزایش قابلیت نگهداری و توسعه‌پذیری برنامه‌هایتان هستید؟ دوره آموزشی "پیاده‌سازی الگوهای Command Pattern in WPF" دقیقا همان چیزی است که نیاز دارید!

با پیوستن به این دوره، شما نه تنها با یکی از قدرتمندترین الگوهای طراحی در دنیای برنامه نویسی آشنا خواهید شد، بلکه نحوه پیاده‌سازی عملی و موثر آن را در محیط WPF به صورت کامل فرا خواهید گرفت. این دوره گامی اساسی برای ارتقاء مهارت‌های شما و ورود به سطحی جدید از حرفه‌ای‌گری در توسعه نرم‌افزار است.

درباره دوره:

دوره "پیاده‌سازی الگوهای Command Pattern in WPF" یک برنامه آموزشی جامع است که به شما کمک می‌کند تا الگوهای طراحی Command Pattern را در چارچوب WPF به صورت عملی و کاربردی فرا بگیرید. این دوره با تمرکز بر حل مشکلات رایج در مدیریت تعاملات کاربر و منطق برنامه، راهکارهایی قدرتمند برای ساخت نرم‌افزارهای مقیاس‌پذیر، قابل تست و با قابلیت نگهداری بالا ارائه می‌دهد. شما با مفاهیم اصلی، مزایا و نحوه پیاده‌سازی این الگو در سناریوهای مختلف WPF آشنا خواهید شد.

چرا Command Pattern در WPF مهم است؟

در دنیای توسعه نرم‌افزار، نوشتن کدی تمیز، قابل نگهداری و توسعه‌پذیر یک چالش همیشگی است. الگوهای طراحی، راه‌حل‌های اثبات شده‌ای برای این چالش‌ها ارائه می‌دهند. Command Pattern یکی از این الگوهای حیاتی است که به ویژه در برنامه‌های دارای رابط کاربری گرافیکی مانند WPF، نقش کلیدی ایفا می‌کند. این الگو به شما امکان می‌دهد تا درخواست‌ها (دستورات) را به صورت اشیاء مستقل کپسوله کنید. این رویکرد، انعطاف‌پذیری بی‌نظیری را در مدیریت عملیات، پیاده‌سازی Undo/Redo، زمان‌بندی دستورات و حتی استفاده در مکانیزم‌های پیام‌رسانی فراهم می‌آورد.

با فراگیری Command Pattern در WPF، شما قادر خواهید بود تا وابستگی بین کلاس‌های بخش رابط کاربری و منطق کسب و کار را به شدت کاهش دهید. این امر نه تنها خوانایی کد شما را بهبود می‌بخشد، بلکه تست‌پذیری را نیز آسان‌تر می‌کند. تصور کنید که بتوانید به سادگی عملیات‌های مختلف برنامه خود را مدیریت کنید، قابلیت Undo/Redo را بدون دردسر پیاده‌سازی کنید یا حتی عملیات‌های پیچیده را در صف اجرا قرار دهید. اینجاست که قدرت Command Pattern خود را نشان می‌دهد.

موضوعات کلیدی که در این دوره خواهید آموخت:

  • مفاهیم بنیادین Command Pattern و ضرورت استفاده از آن
  • تفاوت Command Pattern با سایر الگوهای مشابه
  • پیاده‌سازی کلاس‌های Command و Invoker در WPF
  • استفاده از Command Pattern در کنترل‌های WPF (مانند Button، MenuItem و...)
  • مدیریت Undo/Redo با Command Pattern
  • ترکیب Command Pattern با MVVM (Model-View-ViewModel)
  • ارتباط Command Pattern با ICommand در WPF
  • ایجاد Commandهای قابل استفاده مجدد
  • مدیریت وضعیت فعال/غیرفعال بودن دستورات (CanExecute)
  • استفاده از Command Pattern در سناریوهای پیشرفته
  • بهینه‌سازی و Refactoring کد با Command Pattern
  • نکات کلیدی برای پیاده‌سازی موفق Command Pattern در پروژه‌های واقعی

این دوره برای چه کسانی مناسب است؟

دوره "پیاده‌سازی الگوهای Command Pattern in WPF" برای طیف وسیعی از توسعه‌دهندگان نرم‌افزار که با WPF کار می‌کنند، ایده‌آل است:

  • برنامه‌نویسان WPF: اگر به دنبال ارتقاء کیفیت و ساختار برنامه‌های WPF خود هستید، این دوره برای شما طراحی شده است.
  • توسعه‌دهندگان C#/.NET: افرادی که با زبان C# و چارچوب .NET کار می‌کنند و می‌خواهند دانش خود را در زمینه الگوهای طراحی افزایش دهند.
  • معماران نرم‌افزار: کسانی که مسئولیت طراحی ساختار برنامه‌ها را بر عهده دارند و به دنبال بهترین روش‌ها برای سازماندهی کد هستند.
  • دانشجویان و علاقه‌مندان به برنامه نویسی: دانشجویانی که می‌خواهند مفاهیم پیشرفته برنامه نویسی را به صورت عملی فرا گیرند و رزومه خود را قوی‌تر کنند.
  • توسعه‌دهندگان UI/UX: افرادی که با قسمت رابط کاربری برنامه‌ها سروکار دارند و می‌خواهند تعاملات کاربر را به شکلی تمیز و استاندارد مدیریت کنند.

چرا باید این دوره را بگذرانیم؟

گذراندن این دوره مزایای بی‌شماری برای شما به همراه خواهد داشت:

  • کدنویسی حرفه‌ای‌تر: یاد می‌گیرید چگونه کدهایی بنویسید که خوانا، قابل نگهداری و با ساختار استاندارد باشند.
  • افزایش بهره‌وری: با پیاده‌سازی صحیح Command Pattern، زمان لازم برای توسعه و رفع اشکال را به طرز چشمگیری کاهش می‌دهید.
  • حل مشکلات پیچیده: راهکارهای عملی برای مدیریت تعاملات پیچیده، Undo/Redo و سایر ویژگی‌های پیشرفته خواهید آموخت.
  • قابلیت نگهداری بالاتر: برنامه‌های شما به دلیل ساختار منظم و وابستگی‌های کمتر، آسان‌تر قابل نگهداری و به‌روزرسانی خواهند بود.
  • تست‌پذیری بهتر: با جداسازی منطق دستورات، تست کردن بخش‌های مختلف برنامه بسیار آسان‌تر می‌شود.
  • تسلط بر یک الگوی کلیدی: Command Pattern یکی از الگوهای پرکاربرد در توسعه نرم‌افزار است و تسلط بر آن، اعتبار شما را به عنوان یک توسعه‌دهنده حرفه‌ای افزایش می‌دهد.
  • آمادگی برای بازار کار: مهارت‌های آموخته شده در این دوره، شما را برای موقعیت‌های شغلی بهتر و پروژه‌های پیچیده‌تر آماده می‌سازد.

سرفصل‌های جامع دوره (100 سرفصل آماده برای ورود به دنیای Command Pattern):

این دوره با پوشش کامل و عمیق مفاهیم Command Pattern در WPF، شما را گام به گام در مسیر یادگیری هدایت می‌کند. ما بیش از 100 سرفصل کلیدی را پوشش خواهیم داد که شامل موارد زیر است (لیست کامل در دوره ارائه خواهد شد):

  • مقدمه و مفاهیم پایه:
  • شناخت مشکلات رایج در مدیریت تعاملات UI
  • معرفی الگوهای طراحی و اهمیت آن‌ها
  • تعریف Command Pattern و اجزای اصلی آن (Command, Invoker, Receiver)
  • مزایای استفاده از Command Pattern
  • تفاوت Command Pattern با Observer و Strategy Pattern
  • پیاده‌سازی عملی در WPF:
  • ایجاد اولین کلاس Command
  • ساختاردهی Invoker و ارتباط آن با Command
  • تعریف Receiver و اجرای منطق کسب و کار
  • استفاده از Command در Button و MenuItem
  • مدیریت پارامترهای Command
  • پیشرفته‌ها و کاربردهای خاص:
  • پیاده‌سازی Undo/Redo با Command Pattern
  • مدیریت Undo/Redo برای چند عملیات
  • استفاده از Command Pattern در ViewModel (MVVM)
  • معرفی و استفاده از Interface ICommand در WPF
  • ساخت Custom ICommand
  • استفاده از RelayCommand یا DelegateCommand
  • مدیریت CanExecute برای فعال/غیرفعال کردن دستورات
  • پیاده‌سازی Command برای Drag and Drop
  • استفاده از Command در Context Menu
  • مدیریت Command در DataGrid و سایر کنترل‌های تکرار شونده
  • بهینه‌سازی و نکات حرفه‌ای:
  • Refactoring کد موجود با Command Pattern
  • کلاس‌های Command قابل استفاده مجدد
  • مدیریت خطا در Command ها
  • بهینه‌سازی عملکرد Command ها
  • ساخت Command Queue
  • استفاده از Command Pattern در سناریوهای Real-time
  • نکات و ترفندهای حرفه‌ای برای پیاده‌سازی موفق
  • پروژه‌های عملی و مثال‌های کاربردی
  • و ده‌ها سرفصل کلیدی دیگر...

آماده‌اید تا سطح برنامه نویسی WPF خود را متحول کنید؟

با سرمایه‌گذاری بر روی این دوره، نه تنها دانش فنی خود را افزایش می‌دهید، بلکه ابزارهایی قدرتمند برای ساخت نرم‌افزارهای حرفه‌ای‌تر و با کیفیت‌تر به دست می‌آورید. این دوره یک سرمایه‌گذاری مطمئن بر روی آینده شغلی و مهارت‌های شماست.

همین حالا ثبت نام کنید و فصل جدیدی از برنامه نویسی تمیز و حرفه‌ای را در WPF آغاز کنید!

ثبت نام در دوره
SMART LEARNING PLATFORM
از مطالعه تا یادگیری ماندگار
فراتر از یک مجموعه فلش‌کارت؛ تجربه‌ای تعاملی برای یادگیری، تمرین، مرور هوشمند و مشاهده مسیر پیشرفت شما، همراه با امکان دریافت گواهی پایان دوره در دوره‌های واجد شرایط.
مرور فاصله‌دار آمار یادگیری گواهی دوزبانه
یادگیری را به یک مسیر قابل پیگیری تبدیل کنید
با ورود به سامانه آموزشی، محتوای دوره را به‌صورت مرحله‌ای دنبال کنید، فلش‌کارت‌ها را مرور کنید، دانش خود را با پرسش‌ها و آزمون‌ها بسنجید و روند پیشرفتتان را در طول مسیر ببینید.
⟳
مرور فاصله‌دار هوشمند
با مرور زمان‌دار، کارت‌های تازه و کارت‌های سررسیدشده را بر اساس برنامه مرور دنبال کنید. ارزیابی پاسخ‌ها به زمان‌بندی مرورهای بعدی کمک می‌کند تا تمرین متناسب‌تری داشته باشید.
◉
مشاهده مسیر پیشرفت
میزان مشاهده فلش‌کارت‌ها، فعالیت‌های مرور، عملکرد آزمون‌ها و آمار یادگیری را بررسی کنید و تصویر روشن‌تری از مسیر آموزشی خود داشته باشید.
▤
یادگیری مرحله‌به‌مرحله
فصل‌ها و بخش‌های آموزشی را به ترتیب دنبال کنید، مطالب دیده‌نشده را پیدا کنید و بدون سردرگمی به ادامه مسیر برگردید.
✓
تمرین و سنجش آموخته‌ها
با نکته‌های آموزشی، پرسش و پاسخ، کوییزها و آزمون‌های پایان فصل، دانسته‌های خود را تمرین کنید و بخش‌هایی را که به توجه بیشتری نیاز دارند بشناسید.
SMART REVIEW
هر بار، مرور هدفمندتر
لازم نیست هر روز از ابتدا درباره اینکه چه چیزی را مرور کنید تصمیم بگیرید. سامانه، صف مرور روزانه را بر اساس کارت‌های تازه و موعد مرور کارت‌ها آماده می‌کند. شما پاسخ را ارزیابی می‌کنید و برنامه مرور با توجه به آن تنظیم می‌شود.
دوباره
برای کارت‌هایی که به تمرین زودتر نیاز دارند.
سخت
برای پاسخ‌هایی که با دشواری به یاد آمده‌اند.
خوب
برای پاسخ‌هایی که به‌درستی به یاد آورده‌اید.
آسان
برای کارت‌هایی که پاسخ آن‌ها را به‌آسانی می‌دانید.
برنامه مرور بر اساس ارزیابی شما تنظیم می‌شود؛ مرور منظم می‌تواند به تثبیت آموخته‌ها کمک کند، اما به‌تنهایی تضمین‌کننده تسلط کامل نیست.
محتوا را به شیوه‌های مختلف تمرین کنید
ساختار دوره‌ها متناسب با موضوع آموزشی طراحی شده است و ممکن است انواع مختلفی از محتوا را در بر بگیرد.
نکته‌های ساده
برای مرور سریع مفاهیم اصلی و نکات کلیدی.
نکته‌های رسمی
برای تمرین تعاریف، اصطلاحات و بیان دقیق علمی.
کوییز
برای سنجش درک مطلب و بررسی گزینه صحیح.
پرسش و پاسخ
برای تمرین یادآوری و سنجش میزان تسلط بر مطالب.
محتوای هر دوره بر اساس ساختار و امکانات فعال همان دوره ارائه می‌شود.
LEARN ANYWHERE
همراه شما روی مرورگر
برای استفاده از نسخه تحت وب، کافی است با حساب کاربری خود وارد سامانه شوید. بدون نیاز به نصب یک برنامه اختصاصی، می‌توانید از مرورگر سازگار روی گوشی، تبلت یا رایانه به دوره‌های در دسترس خود مراجعه کنید.
گوشی هوشمند
برای مطالعه در زمان‌های کوتاه
تبلت و لپ‌تاپ
برای مطالعه و مرور راحت‌تر
حساب کاربری شخصی
برای دسترسی به دوره‌های مجاز شما
COURSE COMPLETION CERTIFICATE
گواهی پایان دوره؛ ثبت دستاورد شما
در دوره‌هایی که امکان دریافت گواهی برای آن‌ها فعال است، می‌توانید پس از تکمیل شرایط آموزشی، درخواست گواهی پایان دوره ثبت کنید.
شرایط درخواست گواهی
✓ داشتن دسترسی دارای قابلیت گواهی برای دوره مربوطه.
✓ تکمیل اطلاعات لازم در پروفایل، شامل کد ملی معتبر، عکس پرسنلی و نام و نام خانوادگی انگلیسی.
✓ مشاهده تمام فلش‌کارت‌های فعال دوره.
✓ قبولی در آزمون‌های پایان فصل، در صورت وجود آزمون برای فصل‌ها.
فارسی و انگلیسی
پس از تأیید و انتشار، نسخه‌های فارسی و انگلیسی گواهی در دسترس قرار می‌گیرند.
استعلام آنلاین
گواهی منتشرشده دارای QR Code و لینک اختصاصی برای بررسی آنلاین اعتبار آن است.
دانلود و چاپ
پس از انتشار گواهی، امکان دریافت نسخه PDF فارسی و انگلیسی و چاپ آن فراهم است.
توجه: ثبت درخواست به معنای صدور قطعی نیست. درخواست گواهی پس از بررسی و تأیید ادمین منتشر می‌شود. این گواهی، گواهی پایان دوره آموزشی است و به‌خودی‌خود معادل مدرک دانشگاهی یا مدرک رسمی مورد تأیید نهادهای دولتی نیست.
یادگیری را شروع کنید؛ پیشرفت را دنبال کنید
با تمرین منظم، مرور هدفمند و پیگیری مسیر آموزشی خود، قدم‌به‌قدم دانش و مهارت‌هایتان را گسترش دهید.
هر کارت، یک قدم به جلو
امکانات محتوایی، مرور و گواهی بر اساس سطح دسترسی و تنظیمات هر دوره متفاوت است.
نگاهی به محیط سامانه

یادگیری هوشمند، قدم‌به‌قدم

با محیط سامانه آموزشی آشنا شوید و نمونه‌هایی از فضای یادگیری، فلش‌کارت‌ها و ابزارهای مرور و تمرین را مشاهده کنید.

تصویر نمونه اول از سامانه آموزشی و فلش‌کارت‌ها
محیط سامانه آموزشی
برای مشاهده تصویر در اندازه بزرگ‌تر کلیک کنید
تصویر نمونه دوم از سامانه آموزشی و فلش‌کارت‌ها
یادگیری و مرور مطالب
برای مشاهده تصویر در اندازه بزرگ‌تر کلیک کنید
تصویر نمونه سوم از سامانه آموزشی و فلش‌کارت‌ها
تجربه مطالعه تعاملی
برای مشاهده تصویر در اندازه بزرگ‌تر کلیک کنید
تصویر نمونه چهارم از سامانه آموزشی و فلش‌کارت‌ها
امکانات بیشتر سامانه
برای مشاهده تصویر در اندازه بزرگ‌تر کلیک کنید

یادگیری فراتر از مطالعه معمولی
با فلش‌کارت‌های آموزشی، مرور هدفمند و تمرین مستمر، مطالب را فعالانه یاد بگیرید و مسیر پیشرفت خود را دنبال کنید.

تگ‌ها: C# Command Command pattern design patterns Model-View-ViewModel MVVM Windows Presentation Foundation WPF WPF Command آموزش WPF الگوهای طراحی برنامه نویسی برنامه نویسی WPF پیاده سازی Command Pattern توسعه نرم افزار

نظرات

هنوز نظری ثبت نشده است.

وارد شوید تا نظر ثبت کنید.