public async Task <ActionResult <PlaceChecking_PlaceCheckingDTO> > Create([FromBody] PlaceChecking_PlaceCheckingDTO PlaceChecking_PlaceCheckingDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            if (!await HasPermission(PlaceChecking_PlaceCheckingDTO.Id))
            {
                return(Forbid());
            }

            PlaceChecking PlaceChecking = ConvertDTOToEntity(PlaceChecking_PlaceCheckingDTO);

            PlaceChecking = await PlaceCheckingService.Create(PlaceChecking);

            PlaceChecking_PlaceCheckingDTO = new PlaceChecking_PlaceCheckingDTO(PlaceChecking);
            if (PlaceChecking.IsValidated)
            {
                return(PlaceChecking_PlaceCheckingDTO);
            }
            else
            {
                return(BadRequest(PlaceChecking_PlaceCheckingDTO));
            }
        }
        public async Task <ActionResult <PlaceChecking_PlaceCheckingDTO> > Get([FromBody] PlaceChecking_PlaceCheckingDTO PlaceChecking_PlaceCheckingDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            if (!await HasPermission(PlaceChecking_PlaceCheckingDTO.Id))
            {
                return(Forbid());
            }

            PlaceChecking PlaceChecking = await PlaceCheckingService.Get(PlaceChecking_PlaceCheckingDTO.Id);

            return(new PlaceChecking_PlaceCheckingDTO(PlaceChecking));
        }
        private PlaceChecking ConvertDTOToEntity(PlaceChecking_PlaceCheckingDTO PlaceChecking_PlaceCheckingDTO)
        {
            PlaceChecking PlaceChecking = new PlaceChecking();

            PlaceChecking.Id                    = PlaceChecking_PlaceCheckingDTO.Id;
            PlaceChecking.AppUserId             = PlaceChecking_PlaceCheckingDTO.AppUserId;
            PlaceChecking.PlaceId               = PlaceChecking_PlaceCheckingDTO.PlaceId;
            PlaceChecking.PlaceCheckingStatusId = PlaceChecking_PlaceCheckingDTO.PlaceCheckingStatusId;
            PlaceChecking.CheckInAt             = PlaceChecking_PlaceCheckingDTO.CheckInAt;
            PlaceChecking.CheckOutAt            = PlaceChecking_PlaceCheckingDTO.CheckOutAt;
            PlaceChecking.AppUser               = PlaceChecking_PlaceCheckingDTO.AppUser == null ? null : new AppUser
            {
                Id          = PlaceChecking_PlaceCheckingDTO.AppUser.Id,
                Username    = PlaceChecking_PlaceCheckingDTO.AppUser.Username,
                Password    = PlaceChecking_PlaceCheckingDTO.AppUser.Password,
                DisplayName = PlaceChecking_PlaceCheckingDTO.AppUser.DisplayName,
                Email       = PlaceChecking_PlaceCheckingDTO.AppUser.Email,
                Phone       = PlaceChecking_PlaceCheckingDTO.AppUser.Phone,
            };
            PlaceChecking.Place = PlaceChecking_PlaceCheckingDTO.Place == null ? null : new Place
            {
                Id           = PlaceChecking_PlaceCheckingDTO.Place.Id,
                Name         = PlaceChecking_PlaceCheckingDTO.Place.Name,
                PlaceGroupId = PlaceChecking_PlaceCheckingDTO.Place.PlaceGroupId,
                Radius       = PlaceChecking_PlaceCheckingDTO.Place.Radius,
                Latitude     = PlaceChecking_PlaceCheckingDTO.Place.Latitude,
                Longtitude   = PlaceChecking_PlaceCheckingDTO.Place.Longtitude,
            };
            PlaceChecking.PlaceCheckingStatus = PlaceChecking_PlaceCheckingDTO.PlaceCheckingStatus == null ? null : new CheckingStatus
            {
                Id   = PlaceChecking_PlaceCheckingDTO.PlaceCheckingStatus.Id,
                Code = PlaceChecking_PlaceCheckingDTO.PlaceCheckingStatus.Code,
                Name = PlaceChecking_PlaceCheckingDTO.PlaceCheckingStatus.Name,
            };
            PlaceChecking.BaseLanguage = CurrentContext.Language;
            return(PlaceChecking);
        }