مطالب
بخش سوم - استفاده و شخصی سازی Mapper توکار Gridify
در بخش اول، با کتابخانه Gridify آشنا شدیم و در بخش دوم، متدهای الحاقی آن را بررسی کردیم؛ در این بخش به بررسی GridifyMapper میپردازیم.

GridifyMapper : 
کتابخانه Gridify به صورت خودکار از یک Mapper توکار برای برقراری ارتباط بین نام فیلد (string) وارد شده و پراپرتی که قرار است شرط‌ها بر روی آن اعمال شود، استفاده میکند. به همین جهت اگر در فیلتر خود عبارتی مانند"Name==Ali,Age>32" داشته باشید، در کلاس مقصد به دنبال پراپرتی‌های Name و Age گشته و شرط را بر روی آن‌ها اعمال میکند.
با شخصی سازی این Mapper توکار میتوانیم کنترل بیشتری بر روی رفتار gridify داشته باشیم. به طور خلاصه مزایای شخصی سازی Mapper موارد زیر میباشند:
  • کنترل فیلدهایی که قصد داریم توسط Gridify پشتیبانی شوند
  • تغییر نام فیلد در رشته string برای جستجو
  • تغییر مقدار وارد شده در جستجو، قبل از اعمال فیلترینگ توسط Mapper Convertor
  • اضافه کردن پشتیبانی از پراپرتی‌های کلاس‌های فرزند (Child Classes)
  • پشتیبانی از DTO آبجکت‌ها با پراپرتی‌های متفاوت
ساخت Mapper سفارشی:
var customMappings = new GridifyMapper<Person>();

ساخت Mapper سفارشی حساس به حروف کوچک و بزرگ
به صورت پیش فرض GridifyMapper به حروف کوچک و بزرک حساس نیست. این رفتار را میتوان با ارسال true به Constructor آن، تغییر داد.
var customMappings = new GridifyMapper<Person>(true);

برای استفاده از یک Mapper سفارشی میتوانیم آن را به عنوان آرگومان دوم، به متدهای الحاقی Gridify ارسال کنیم.
var result = _dbContext.Persons.Gridify(filter , customMappings);

افزودن یک Map جدید
برای افزودن یک Map سفارشی میتوان از متد AddMap استفاده کرد. به طور مثال در مثال زیر، ما کلمه name را به پراپرتی FullName مپ کرده‌ایم. به همین جهت میتوان برای جستجو در پراپرتی FullName، از چنین فیلتری استفاده کرد: name ==Ali.
customMappings.AddMap("name", q => q.FullName );

متد GenerateMappings
کلاس GridifyMapper متدی به نام GenerateMappings دارد که به صورت توکار از آن برای تولید Map‌ها با توجه به نام پراپرتی‌های کلاس مقصد استفاده میکند. استفاده از این متد، بسیار کاربردی است؛ چرا که فرض کنید قصد دارید تمام پراپرتی‌های موجود در کلاس‌تان را توسط Gridify پشتیبانی کنید، به‌غیر از یک مورد مانند Password. در چنین حالتی میتوان با استفاده از این متد، همه Mapping‌ها را ایجاد کرده و سپس تنها Password را از لیست حذف نمایید (متد RemoveMap):
var customMappings = new GridifyMapper<Person>()
                         .GenerateMappings()
                         .RemoveMap("Password");

Custom Convertor
درصورت نیاز به اعمال تغییرات در مقدار ورودی جستجوها قبل از انجام فیلترینگ، میتوانید از این ویژگی استفاده نمایید. به طور مثال ما قصد داریم همیشه مقادیر ارسالی name را با حروف کوچک، در دیتابیس جستجو کنیم. آرگومان سوم متد AddMap امکان تغییر مقادیر ورودی را به ما میدهد:
var customMappings = new GridifyMapper<Person>()
                     .AddMap("name" , q=> q.FullName , q => q.ToLower() )
همینطور درصورت نیاز برای جستجوی مقدار null هم میتوان از این امکان استفاده کرد. مثال : "date==null" 
var gm = new GridifyMapper<Person>().GenerateMappings();
gm.AddMap("date", g => g.BrithDate , q => q == "null" ? null : q);
اشتراک‌ها
مصاحبه کامل با خالق ++C

Full Interview With the Creator of C++

By popular demand, and a request from the man himself, we’ve decided to release the full interview with esteemed computer scientist Bjarne Stroustrup (aka the creator of C++). We cover a bunch of topics so check the chapters to find what interests you the most! Filmed last year. Enjoy and happy trails!

00:00-02:42 Getting into programming
02:42-03:26 Programming being versatile
03:26-06:07 Industry changes
06:07-10:20 Inventing and maintaining C++
10:20-12:02 Key to making a successful language
12:02-16:04 Greatest lessons
16:14-20:06 Moving to the US
20:06-23:20 Advice to devs 

مصاحبه کامل با خالق ++C
اشتراک‌ها
کتابخانه ای جهت مرتب سازی کدهای html

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

کتابخانه ای جهت مرتب سازی کدهای html
اشتراک‌ها
سایتی جهت تولید لورم ایپسوم lorem ipssum

اگر بسیاری از دیزاین‌ها و یا قالب‌ها را دیده باشید می‌بینید که با متن‌های تصادفی پر شده اند که به این متن ها لورم ایپسوم lorem ipssum گویند، اگر دیزاینی دارید یا دمویی که داخل آن متنی باید باشد میتوانید تولید متن را به این سایت بسپارید.

سایتی جهت تولید لورم ایپسوم lorem ipssum
نظرات مطالب
تزریق وابستگی‌ها در ASP.NET Core - بخش 4 - طول حیات سرویس ها یا Service Lifetime
- متنی را که ارسال کردید، مربوط به میان‌افزارها است. اطلاعات بیشتر
- علت انتخاب طول عمر پیش‌فرض DbContext به صورت Scoped، مرتبط است با پیاده سازی الگوی واحد کار.
نظرات مطالب
استفاده از Froala WYSIWYG Editor در ASP.NET
سلام 
اگه داخل ادیتور متنی نوشته نشه مقدار پیش فرضش 
"<p><br></p>"
هست که موقع اعتبار سنجی معتبره.
تو تنظیماتش هم گزینه ای برای خالی کردن ادیتور وجود نداره. 
نظرات مطالب
اجرای وظایف زمان بندی شده با Quartz.NET - قسمت دوم
در یک فایل متنی ساده ثبت کنید، متد application_start چندبار در طول روز فراخوانی شده یا حتی در طول یک ساعت (هر بار که این متد فراخوانی می‌شود، جایی آن‌را ثبت کنید). استفاده از ELMAH هم برای اینکار مفید است. ممکن است برنامه بیش از حد ری‌استارت می‌شود.