Ejemplo n.º 1
0
        public async Task <List <SearchedPersonRelative> > Handle(SavePersonRelatives request, CancellationToken cancellationToken)
        {
            List <SearchedPersonRelative> result = new List <SearchedPersonRelative>();

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

                using (var transaction = _context.Database.BeginTransaction())
                {
                    try
                    {
                        using (_context)
                        {
                            Relative relative = new Relative()
                            {
                                RelationShipId  = request.RelationShipId,
                                FirstName       = request.FirstName,
                                LastName        = request.LastName,
                                FatherName      = request.FatherName,
                                GrandFatherName = request.GrandFatherName,
                                Profession      = request.Profession,
                                LocationId      = request.LocationId,
                                PersonId        = request.PersonId,
                                NidNo           = request.NidNo,
                                Address         = request.Address,
                                ContactInfo     = request.ContactInfo,
                                EmailAddress    = request.EmailAddress,
                                Village         = request.Village,
                                Remark          = request.Remark,

                                CreatedOn  = request.CreatedOn,
                                ModifiedBy = request.ModifiedBy,

                                ModifiedOn = request.ModifiedOn,
                                CreatedBy  = request.CreatedBy
                            };
                            _context.Relative.Add(relative);
                            await _context.SaveChangesAsync(CurrentUserId, cancellationToken);


                            PersonCommon common = new PersonCommon(_context);

                            // Return Saved Relative
                            result = await common.SearchPersonRelative(new Queries.SearchPersonRelativeQuery()
                            {
                                Id = relative.Id
                            }, cancellationToken);
                        }
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw new Exception();
                    }
                }
            }



            else
            {
                using (_context)
                {
                    Relative UpdateableRecord = await(from r in _context.Relative
                                                      where r.Id == request.Id
                                                      select r).FirstOrDefaultAsync(cancellationToken);



                    UpdateableRecord.FatherName      = request.FatherName;
                    UpdateableRecord.FirstName       = request.FirstName;
                    UpdateableRecord.LastName        = request.LastName;
                    UpdateableRecord.PersonId        = request.PersonId;
                    UpdateableRecord.GrandFatherName = request.GrandFatherName;
                    UpdateableRecord.RelationShipId  = request.RelationShipId;
                    UpdateableRecord.NidNo           = request.NidNo;
                    UpdateableRecord.Profession      = request.Profession;
                    UpdateableRecord.Address         = request.Address;
                    UpdateableRecord.ContactInfo     = request.ContactInfo;
                    UpdateableRecord.EmailAddress    = request.EmailAddress;
                    UpdateableRecord.Village         = request.Village;
                    UpdateableRecord.Remark          = request.Remark;
                    UpdateableRecord.ModifiedBy      = request.ModifiedBy;
                    UpdateableRecord.ModifiedOn      = request.ModifiedOn;

                    await _context.SaveChangesAsync(cancellationToken);

                    PersonCommon common = new PersonCommon(_context);
                    // Return Saved Relative
                    result = await common.SearchPersonRelative(new Queries.SearchPersonRelativeQuery()
                    {
                        Id = UpdateableRecord.Id
                    }, cancellationToken);
                }
            }


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

            return(await common.SearchPersonRelative(request, cancellationToken));
        }