public async ValueTask <List <Lead> > SearchLead(LeadSearchModel dataModel) { DynamicParameters parameters = new DynamicParameters(new { dataModel.Id, dataModel.IdOperator, dataModel.IdEnd, dataModel.FirstName, dataModel.FirstNameOperator, dataModel.LastName, dataModel.LastNameOperator, dataModel.Patronymic, dataModel.PatronymicOperator, dataModel.BirthDate, dataModel.BirthDateOperator, dataModel.BirthDateDateEnd, dataModel.Phone, dataModel.PhoneOperator, dataModel.Email, dataModel.EmailOperator, dataModel.Login, dataModel.LoginOperator, dataModel.CityId, dataModel.CitiesValues, dataModel.RegistrationDate, dataModel.RegistrationDateOperator, dataModel.RegistrationDateEnd, dataModel.IsDeletedInclude, dataModel.AccountId }); var leadDictionary = new Dictionary <long, Lead>(); var result = await connection.QueryAsync <Lead, City, Account, Currency, Lead>( SpName.LeadSearch, (l, c, a, cur) => { if (!leadDictionary.TryGetValue((long)l.Id, out Lead lead)) { lead = l; lead.Accounts = new List <Account>(); leadDictionary.Add((long)lead.Id, lead); } lead.City = c; if (a != null) { lead.Accounts.Add(a); a.Currency = cur; } return(lead); }, parameters, transaction : transaction, commandType : CommandType.StoredProcedure, splitOn : "Id"); return(result.Distinct().ToList()); }
public async ValueTask <RequestResult <List <Lead> > > SearchLead(LeadSearchModel dataModel) { var result = new RequestResult <List <Lead> >(); try { result.RequestData = await _leadStorage.SearchLead(dataModel); result.IsOkay = true; } catch (Exception ex) { result.ExMessage = ex.Message; } return(result); }
public async Task<IHttpActionResult> SearchLead(LeadSearchModel leadSearchModel) { var results = await _searchService.SearchLead(leadSearchModel); return Ok(new { data = results }); }