Example #1
0
        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());
        }
Example #2
0
        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
     });
 }