Skip to content

Employee Model - Complete Field Reference

This page provides complete documentation of all properties within the Employee model.

Note: Employee is a master entity representing a real estate broker/agent and is stored in its own collection. This entity is referenced by ID from Estate and Department models.

Note: For employee-specific classes like EmployeePosition, see the Employee Classes documentation. For shared classes like Address and Image, see the Shared Classes documentation.

Employee Class

The main class representing a real estate agent or broker.

Core Identification & System

Property Type Description Example
Id string Unique identifier for this employee. "3006722"
Origin string? The source system the data originated from. "Vitec"
LastModifiedOrigin DateTime? When this employee record was last updated in the origin system. 2025-10-28T14:39:00Z
LastModifiedLocal DateTime? When this employee record was last updated locally in Destinet. 2025-10-28T15:30:00Z
CustomData Dictionary<string, object>? System-specific metadata. { "VitecEmployeeNo": "A1024" }

Contact and Personal Details

Property Type Description Example
Name string Employee's full name. "Karianne Westby Jensen"
Title string Employee's job title or role. "Senior Broker", "Fagansvarlig"
Email string? Employee's primary email address. "karianne@proaktiv.no"
MobilePhone string? Employee's mobile phone number. "47 70 02 14"
WorkPhone string? Employee's office/landline phone number. "51 12 34 56"
Description string? Biography/detailed description of the employee (Norwegian: Legg til beskrivelse). Full text description of experience and background.
Qualifications string? Employee's qualifications and certifications (Norwegian: Kompetanse). "Bachelor i Eiendomsmegling"

Media

Property Type Description
PhotoUrl string? URL to employee's primary profile photo.
VideoUrl string? URL to employee's video presentation (Norwegian: Video link).
Images ImageCollection? Additional images for the employee (signature, secondary photos).

Status and Specialization

Property Type Description Example
Order int? Display order/sequence number for this employee. 1
IsProjectBroker bool? Whether this employee specializes in project sales (Norwegian: Prosjektmegler). true / false
IsRentalBroker bool? Whether this employee specializes in rental properties (Norwegian: Utleiemegler). true / false
IsActive bool? Whether this employee is currently active. true / false

Department References and Statistics

Property Type Description Example
DepartmentIds List<string>? References to the departments/offices this employee belongs to. ["3005093", "3005094"]
SoldProperties List<string>? List of addresses/properties this employee has sold (Norwegian: Solgte Adresser). ["Storgata 10", "Skovveien 2"]

Supporting Classes (Shared)

For complete documentation of shared classes, see the Shared Classes section.

These classes are reusable across multiple model types (Estate, Department, Employee, Project, etc.). They are documented in detail in their own pages.

  • Image - Generic image class for all entities

Complete Usage Example

using Destinet.RealEstate.Models;
using System;
using System.Collections.Generic;

var employee = new Employee
{
    // Identification & System
    Id = "3006722",
    Origin = "Vitec",
    LastModifiedOrigin = DateTime.Parse("2025-10-28T14:39:00Z"),
    LastModifiedLocal = DateTime.Parse("2025-10-28T15:30:00Z"),

    // Personal Details
    Name = "Jonas Haugen",
    Title = "Managing Director, Senior Broker",
    Email = "jonas.haugen@megler.no",
    MobilePhone = "900 12 345",
    Phone = "22 10 50 00",
    Description = "Jonas has over 15 years of experience in the Oslo real estate market, specializing in high-end residential properties and new build projects.",
    Qualifications = "Master of Science in Business (NHH), Certified Real Estate Broker",

    // Media
    PhotoUrl = "https://cdn.megler.no/jonas/profile.jpg",
    VideoUrl = "https://youtube.com/watch?v=employee-jonas-promo",

    // Status and Specialization
    Order = 1,
    IsProjectBroker = true,
    IsRentalBroker = false,
    IsActive = true,

    // References and Statistics
    DepartmentIds = new List<string> { "3005093", "3005094" }, // Belongs to two offices
    SoldProperties = new List<string>
    {
        "Karl Johans gate 10, Oslo",
        "Frognerveien 20, Oslo",
        "Skovveien 5, Oslo"
    },

    // System Metadata
    CustomData = new Dictionary<string, object>
    {
        { "InternalId", "JH2004" },
        { "VitecRole", "Megler" }
    }
};

// Add Images
employee.Images = new ImageCollection();
employee.Images.Add(new Image
{
    Id = "IMG-1001",
    OriginalUrl = "https://cdn.megler.no/jonas/signature.png",
    Filename = "signature.png",
    FileExtension = "png",
    ExternalProviderUrl = "https://cloud.storage/employee/sig.png",
    Caption = "Employee's digital signature",
    AltText = "Jonas Haugen digital signature",
    Category = "Signature",
    Order = 1,
    Width = 500,
    Height = 100,
    LastModifiedOrigin = DateTime.Parse("2025-10-25"),
    LastModifiedLocal = DateTime.Parse("2025-10-25T10:30:00Z")
});

employee.Images.Add(new Image
{
    Id = "IMG-1002",
    OriginalUrl = "https://cdn.megler.no/jonas/awards.jpg",
    Filename = "awards-photo.jpg",
    FileExtension = "jpg",
    ExternalProviderUrl = "https://cloud.storage/employee/awards.jpg",
    Caption = "Jonas receiving 'Broker of the Year' award",
    AltText = "Jonas Haugen receiving industry award",
    Category = "Award Photo",
    Order = 2,
    Width = 1000,
    Height = 600,
    LastModifiedOrigin = DateTime.Parse("2025-10-25"),
    LastModifiedLocal = DateTime.Parse("2025-10-25T10:30:00Z")
});

Working with Employee Data

Example: Finding Employees by Department

// Get all employees in a specific department
var departmentEmployees = employees.Where(e =>
    e.DepartmentIds != null &&
    e.DepartmentIds.Contains("3005093")
);

// Get active employees only
var activeEmployees = employees.Where(e => e.IsActive);

// Get project specialists
var projectBrokers = employees.Where(e => e.IsProjectBroker);

// Get rental specialists
var rentalBrokers = employees.Where(e => e.IsRentalBroker);
// Get all estates where this employee is a broker
var employeeEstates = estates.Where(e =>
    e.BrokersIdWithRoles != null &&
    e.BrokersIdWithRoles.Any(b => b.EmployeeId == employee.Id)
);

// Get all departments this employee belongs to
var employeeDepartments = departments.Where(d =>
    employee.DepartmentIds.Contains(d.Id)
);

// Check if employee is a managing director
var isDepartmentMD = departments.Any(d =>
    d.ManagingDirectorIds != null &&
    d.ManagingDirectorIds.Contains(employee.Id)
);

Relationship to Other Models

Employee → Department (Many-to-Many)

Employees can belong to multiple departments:

employee.DepartmentIds = new List<string> { "3005093", "3005094" };

Departments also reference key employees:

department.ManagingDirectorIds = new List<string> { "3006722" };
department.ResponsibleBrokerIds = new List<string> { "3006723" };
department.DepartmentManagerIds = new List<string> { "3006724" };

Employee → Estate (Many-to-Many via BrokerWithRole)

Estates reference employees through the BrokerWithRole class:

estate.BrokersIdWithRoles.Add(new BrokerWithRole
{
    EmployeeId = "3006722",
    BrokerRole = 1  // Primary broker
});

Employee → Project (via Project references)

Projects can reference employees as contact persons:

project.ContactPersonId = "3006722";
project.AdditionalAgentIds = new List<string> { "3006723", "3006724" };

Download

Main Employee Class:

Employee-Specific Classes: