public IActionResult GetDealerByReference(string countryCode, string dealerId)
{
if (string.IsNullOrEmpty(countryCode))
return BadRequest("country code cannot be empty");
if (string.IsNullOrEmpty(dealerId))
return BadRequest("dealerId cannot be empty");
string toBeReplaced = "'INSPIRA', 'OTHER', ";
// this is of type System.Linq.IQueryable
var webDealerItemRestrictions = _repository.CacheJdeDealerItemRestriction.FindAll();
// this is of type System.Linq.IQueryable
var webDealerAddresses = _repository.CacheJdeDealerAddress.FindAll();
//left join webDealerAddresses with webDealerItemRestrictions
var result = (from addresses in webDealerAddresses.Where(x => x.DealerID == dealerId && x.CountryCode == countryCode)
from restrictions in webDealerItemRestrictions
.Where(x => addresses.DealerID == x.DealerID)
.DefaultIfEmpty()
select new { addresses, restrictions }).FirstOrDefault();
if (result == null) return NotFound("Not Found");
var webDealer = new WebDealers()
{
Code = result.restrictions.Code,
Address1 = result.addresses.Address1,
Address2 = result.addresses.Address2,
AreaCode = result.addresses.AreaCode,
Brands = result.addresses.BrandListing.Replace(toBeReplaced, ""),
CountryCode = result.addresses.CountryCode,
DealerName = result.addresses.DealerName,
EmailAddress = result.addresses.EMailaddress,
PhoneNumber = result.addresses.PhoneNumber
};
return Ok(JsonConvert.SerializeObject(new List<WebDealers>() { webDealer }));
}
No comments:
Post a Comment