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); }