خوب قسمت سوم auto mapper خوب وقتی که از base استفاده میکنیم namespace و اسم پروژه رو برامون مینویسه

خوب در نظر بگیرید که ورودی action یک dto هستش که اون باید تبدیل بشه به command و بعد اون تبدیل بشه به model و بعد تبدیل بشه به viewmodel و بعد return بشه

خوب اینجا اومدیم پراپرتی های person رو برابر person view model قرار میدیم

خوب در عکس بالا اومدیم تنظیمات auto mapper رو تنظیماتش رو درست میکنیم دلیل استفاده از automapper اینه که اگر ما یه پراپرتی به person اضافه کردیم و یادمون رفت به person view model اضافه کنیم یا همین مورد در مورد کم کردنش هم هست

توی عکس بالا چیزی که تعریف کردیم اینه توی config بیا یه مپ ایجاد کن از person به person view model

خوب از همون config که ایجاد کردیم میایم اینجا استفاده میکنیم و میگیم که حالا بیا مپ رو ایجاد کن با config . Create mapper و بعد داریمم میگیم که اون شی که به عنوان source بهش دادیم رو بیاد و مپ کنه به person view model و این کار در پشت با استفاده از تکنیک های reflection انجام میشود

خوب حالا اینجا جاشون رو برعکس کردیم و بعد به این ارور پایین خوردیم

خوب اینجا اومدیم هم از person view model به person و هم برعکسش عملیات مپ کردن رو انجام دادیم

خوب حالا میدونیم که در person پارامتر display full name وجود نداره

خوب ما میخوایم بعد از مپ شدن تکلیف display full name تعریف شود

خوب برای این کار وقتی که داریم person رو به person view model تعریف کنیم میای از for member استفاده میکنیم و بعد هم با استفاده از map from استفاده میکنیم و بعد میگیم اسم کامل طرف رو در کنسول بنویسن

خوب دو تا استراتژی برای استفاده از auto mapper هستش یا همه رو توی یک کلاس بنویسیم یا به ازای هر کلاس که میخوایم ازش استفاده کنیم بیایم اون رو بنویسیم

خوب اینجا در ابتدا وقتی که service رو میزنیم بعدش چون که add auto mapper یک extension method هستش باید اون بالا using اش رو بزنیم

حالا اونجا که نوشته شده startup به این شکل کار میکنه میره کل پروژه رو میگرده و که هر کدوم از کلاس هایی که از auto mapper profile ارث بری کرده رو پیدا میکنه و mapping هایی که داخلشون در constructor نوشتیم رو اجرا میکنه

اینطوری ازش استفاده میکنیم

خوب اینکته هستش که زمانی که میخواد این کنترلر ساخته بشه میاد و di انجام میشه