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