public ApiResponse <PersonGarageDto> EditPersonProfile(PersonDto person)
        {
            if (person == null)
            {
                return(new ApiResponse <PersonGarageDto>(responseStatusCode: RestStatusCode.NotFound));
            }

            var personRepo = _uow.PersonRepository.GetById(person.Id);

            var garageId = personRepo.GarageContextId;

            if (personRepo == null)
            {
                return(new ApiResponse <PersonGarageDto>(responseStatusCode: RestStatusCode.NotFound));
            }

            using (_uow.BeginTransaction())
            {
                person.MergeObjects(personRepo);
                personRepo.GarageContextId = garageId;
                _uow.PersonRepository.Update(personRepo);
                _uow.CommitTransaction();
            }

            var garage = _uow.GarageRepository.GetAll().FirstOrDefault();

            if (garage == null)
            {
                return new ApiResponse <PersonGarageDto> {
                           ResponseStatusCode = RestStatusCode.LoginFail
                }
            }
            ;

            var gts = garage.ToApi <GarageDto>();

            var pts = new PersonGarageDto()
            {
                Email       = personRepo.Email,
                LastName    = personRepo.LastName,
                Id          = personRepo.Id,
                Name        = personRepo.Name,
                PhoneNumber = personRepo.PhoneNumber,
                Garage      = gts,
                PersonType  = personRepo.PersonType
            };


            pts.Garage = gts;

            return(new ApiResponse <PersonGarageDto>
            {
                ResponseResult = pts,
                ResponseStatusCode = RestStatusCode.OK
            });
        }
        public ApiResponse <PersonGarageDto> GetPerson(long id)
        {
            var user = _uow.UserRepository.GetById(id, false);

            if (user == null)
            {
                return new ApiResponse <PersonGarageDto> {
                           ResponseStatusCode = RestStatusCode.LoginFail
                }
            }
            ;

            var person = _uow.PersonRepository.GetById(user.PersonId, false);

            if (person == null || !person.Active)
            {
                return new ApiResponse <PersonGarageDto> {
                           ResponseStatusCode = RestStatusCode.LoginFail
                }
            }
            ;

            var garage = _uow.GarageRepository.GetAll(false).FirstOrDefault(x => x.Id == person.GarageContextId);

            if (garage == null)
            {
                return new ApiResponse <PersonGarageDto> {
                           ResponseStatusCode = RestStatusCode.LoginFail
                }
            }
            ;

            var gts = garage.ToApi <GarageDto>();

            var pts = new PersonGarageDto()
            {
                Email       = person.Email,
                LastName    = person.LastName,
                Id          = person.Id,
                Name        = person.Name,
                PhoneNumber = person.PhoneNumber,
                Garage      = gts,
                PersonType  = person.PersonType,
                Active      = person.Active
            };


            pts.Garage = gts;

            return(new ApiResponse <PersonGarageDto>
            {
                ResponseResult = pts,
                ResponseStatusCode = RestStatusCode.OK
            });
        }