خوب قسمت سوم 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 انجام میشه