public IHttpActionResult GetProperty(int id)
        {
            loggedInUser = GetLoggedInUser();

            Entity.Models.Property propertyEntity = db.Properties.FirstOrDefault(p => p.CompanyId == loggedInUser.CompanyId && p.Id == id); //loggedInUser.Properties.FirstOrDefault(p => p.Id == id);
            if (propertyEntity == null)
            {
                return(NotFound());
            }

            if (propertyEntity.CompanyId != loggedInUser.CompanyId)
            {
                return(BadRequest("Requested property does not belong to same company as logged in user"));
            }

            // Fortunately, our we have a relationship be user and associated properties, so this is easy.
            var propertyDto = Mapper.Map <Entity.Models.Property, Dto.Models.Property>(propertyEntity);

            GenerateUserPhotoLinks(propertyDto.Users);

            var result = new PropertyValidator().Validate(propertyDto);

            if (!result.IsValid)
            {
                return(new ValidatorError("Error mapping property DTO from database", HttpStatusCode.InternalServerError, result, Request));
            }

            return(Ok(propertyDto));
        }
            protected override IEnumerable <User> ResolveCore(Entity.Models.Property property)
            {
                var userList = property.Users.Select(u => new User {
                    Id = u.Id, Fullname = u.Fullname, Username = u.Username
                });

                return(userList);
            }