Ejemplo n.º 1
0
        public async Task <List <SearchedPersonLanguage> > Handle(SearchPersonLanguageQuery request, CancellationToken cancellationToken)
        {
            PersonCommon common = new PersonCommon(_context);
            List <SearchedPersonLanguage> result = new List <SearchedPersonLanguage>();

            result = await common.SearchPersonLanguages(request, cancellationToken);

            return(result);
        }
Ejemplo n.º 2
0
        public async Task <List <SearchedPersonLanguage> > Handle(SavePersonLanguageCommand request, CancellationToken cancellationToken)
        {
            List <SearchedPersonLanguage> result = new List <SearchedPersonLanguage>();
            PersonCommon common = new PersonCommon(_context);

            if (request.Id == null || request.Id == default(decimal))
            {
                int CurrentUserId = await _currentUser.GetUserId();

                using (var transaction = _context.Database.BeginTransaction())
                {
                    try
                    {
                        using (_context)
                        {
                            PersonLanguage personLanguage = new PersonLanguage()
                            {
                                PersonId               = request.PersonId,
                                LanguageId             = request.LanguageId,
                                ReadingExpertise       = request.ReadingExpertise,
                                UnderstandingExpertise = request.UnderstandingExpertise,
                                WritingExpertise       = request.WritingExpertise,
                                SpeakingExpertise      = request.SpeakingExpertise,
                                ReferenceNo            = request.ReferenceNo,
                                CreatedOn              = request.CreatedOn,
                                CreatedBy              = request.CreatedBy
                            };
                            _context.PersonLanguage.Add(personLanguage);
                            await _context.SaveChangesAsync(CurrentUserId, cancellationToken);

                            result = await common.SearchPersonLanguages(new Queries.SearchPersonLanguageQuery()
                            {
                                Id = personLanguage.Id
                            }, cancellationToken);

                            transaction.Commit();
                        }
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw new Exception();
                    }
                }
            }
            else
            {
                using (_context)
                {
                    PersonLanguage toUpdateRecord = await(from pl in _context.PersonLanguage
                                                          where pl.Id == request.Id
                                                          select pl).SingleOrDefaultAsync();

                    toUpdateRecord.LanguageId             = request.LanguageId;
                    toUpdateRecord.ReadingExpertise       = request.ReadingExpertise;
                    toUpdateRecord.UnderstandingExpertise = request.UnderstandingExpertise;
                    toUpdateRecord.WritingExpertise       = request.WritingExpertise;
                    toUpdateRecord.SpeakingExpertise      = request.SpeakingExpertise;



                    await _context.SaveChangesAsync(cancellationToken);

                    //result = await _context.PersonLanguage.Where(pl => pl.Id == toUpdateRecord.Id).ToListAsync(cancellationToken);

                    result = await common.SearchPersonLanguages(new Queries.SearchPersonLanguageQuery()
                    {
                        Id = toUpdateRecord.Id
                    }, cancellationToken);
                }
            }

            return(result);
        }