/// <summary> /// Prepare paged email account list model /// </summary> /// <param name="searchModel">Email account search model</param> /// <returns>Email account list model</returns> public virtual async Task <EmailAccountListModel> PrepareEmailAccountListModelAsync(EmailAccountSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //get email accounts var emailAccounts = (await _emailAccountService.GetAllEmailAccountsAsync()).ToPagedList(searchModel); //prepare grid model var model = new EmailAccountListModel().PrepareToGrid(searchModel, emailAccounts, () => { return(emailAccounts.Select(emailAccount => { //fill in model values from the entity var emailAccountModel = emailAccount.ToModel <EmailAccountModel>(); //fill in additional values (not existing in the entity) emailAccountModel.IsDefaultEmailAccount = emailAccount.Id == _emailAccountSettings.DefaultEmailAccountId; return emailAccountModel; })); }); return(model); }