public async Task <IActionResult> OnPostSearch([FromBody] SearchPersonLanguageQuery command) { try { List <SearchedPersonLanguage> dbResult = new List <SearchedPersonLanguage>(); dbResult = await Mediator.Send(command); return(new JsonResult(new UIResult() { Data = new { list = dbResult }, Status = UIStatus.Success, Text = string.Empty, Description = string.Empty })); } catch (Exception ex) { return(new JsonResult(new UIResult() { Data = null, Status = UIStatus.Failure, Text = CustomMessages.InternalSystemException, Description = ex.Message + " \n StackTrace : " + ex.StackTrace })); } }
public async Task <List <SearchedPersonLanguage> > SearchPersonLanguages(SearchPersonLanguageQuery request, CancellationToken cancellationToken) { List <SearchedPersonLanguage> result = new List <SearchedPersonLanguage>(); if (request.Id != null) { result = await(from pl in _context.PersonLanguage join l in _context.Language on pl.LanguageId equals l.Id into plL from resultplL in plL.DefaultIfEmpty() join ex in _context.Expertise on pl.ReadingExpertise equals ex.Id into plRex from resultplRex in plRex.DefaultIfEmpty() join ex in _context.Expertise on pl.WritingExpertise equals ex.Id into plWex from resultplWex in plWex.DefaultIfEmpty() join ex in _context.Expertise on pl.ReadingExpertise equals ex.Id into plUex from resultplUex in plUex.DefaultIfEmpty() join ex in _context.Expertise on pl.ReadingExpertise equals ex.Id into plSpeakingEx from resultplplSpeakingEx in plSpeakingEx.DefaultIfEmpty() where pl.Id == request.Id select new SearchedPersonLanguage { Id = pl.Id, PersonId = pl.PersonId, LanguageId = pl.LanguageId, ReadingExpertise = pl.ReadingExpertise, UnderstandingExpertise = pl.UnderstandingExpertise, WritingExpertise = pl.WritingExpertise, SpeakingExpertise = pl.SpeakingExpertise, LanguageText = resultplL.Name, ReadingExpertiseText = resultplRex.Name, UnderstandingExpertiseText = resultplUex.Name, SpeakingExpertiseText = resultplplSpeakingEx.Name, WritingExpertiseText = resultplWex.Name }).ToListAsync(); } else if (request.PersonId != null) { result = await(from pl in _context.PersonLanguage join l in _context.Language on pl.LanguageId equals l.Id into plL from resultplL in plL.DefaultIfEmpty() join ex in _context.Expertise on pl.ReadingExpertise equals ex.Id into plRex from resultplRex in plRex.DefaultIfEmpty() join ex in _context.Expertise on pl.WritingExpertise equals ex.Id into plWex from resultplWex in plWex.DefaultIfEmpty() join ex in _context.Expertise on pl.ReadingExpertise equals ex.Id into plUex from resultplUex in plUex.DefaultIfEmpty() join ex in _context.Expertise on pl.ReadingExpertise equals ex.Id into plSpeakingEx from resultplplSpeakingEx in plSpeakingEx.DefaultIfEmpty() where pl.PersonId == request.PersonId select new SearchedPersonLanguage { Id = pl.Id, PersonId = pl.PersonId, LanguageId = pl.LanguageId, ReadingExpertise = pl.ReadingExpertise, UnderstandingExpertise = pl.UnderstandingExpertise, WritingExpertise = pl.WritingExpertise, SpeakingExpertise = pl.SpeakingExpertise, LanguageText = resultplL.Name, ReadingExpertiseText = resultplRex.Name, UnderstandingExpertiseText = resultplUex.Name, SpeakingExpertiseText = resultplplSpeakingEx.Name, WritingExpertiseText = resultplWex.Name }).ToListAsync(); } return(result); }