var __extends = (this && this.__extends) || (function () {
    var extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
// Copyright (c) . All rights reserved.
// Licensed under the . See LICENSE file in the project root for full license information.
// This was autogenerated by zAppDev.
var DigicircMatchmaking;
(function (DigicircMatchmaking) {
    var ViewModels;
    (function (ViewModels) {
        var MasterPage;
        (function (MasterPage) {
            var MasterPageViewModel = /** @class */ (function (_super) {
                __extends(MasterPageViewModel, _super);
                function MasterPageViewModel() {
                    return _super.call(this) || this;
                }
                MasterPageViewModel._lightCast = function (instance) {
                    if (instance == null)
                        return;
                    return instance;
                };
                MasterPageViewModel._initializeFrom = function (original, ignoreReadOnlyProperties, context) {
                    if (ignoreReadOnlyProperties === void 0) { ignoreReadOnlyProperties = false; }
                    if (context === void 0) { context = new Joove.DTOHelper(); }
                    if (original == null)
                        return null;
                    // if (context.Has(original)) {
                    //    return context.Get(original);
                    // }
                    var result = new MasterPageViewModel();
                    if (context != null && context.fillDb == true) {
                        context.addToDb(original);
                    }
                    result._hydrateMasterPageViewModel(original, ignoreReadOnlyProperties, context);
                    // context.Add(original, result);
                    return result;
                };
                MasterPageViewModel.prototype._hydrateMasterPageViewModel = function (original, ignoreReadOnlyProperties, context) {
                    if (context === void 0) { context = new Joove.DTOHelper(); }
                    if (original == null)
                        return;
                    if (original._key !== undefined)
                        this._key = original._key;
                    if (original._clientKey !== undefined)
                        this._clientKey = original._clientKey;
                    if (original._originalTypeClassName !== undefined)
                        this._originalTypeClassName = original._originalTypeClassName;
                    if (original._typeHash !== undefined)
                        this._typeHash = original._typeHash;
                    if (original.Title !== undefined)
                        this.Title = original.Title;
                    this._reduceData = function (ignoreReadOnlyProperties) {
                        var reduced = MasterPageViewModel._initializeFrom(this, ignoreReadOnlyProperties);
                        MasterPageViewModel._deleteDropDownInitialValues(reduced);
                        return reduced;
                    };
                }; /* end _initializeFrom() */
                MasterPageViewModel.prototype._reduceData = function (ignoreReadOnlyProperties) {
                    var reduced = MasterPageViewModel._initializeFrom(this, ignoreReadOnlyProperties);
                    MasterPageViewModel._deleteDropDownInitialValues(reduced);
                    return reduced;
                };
                MasterPageViewModel._deleteDropDownInitialValues = function (reduced) {
                    if (reduced == null)
                        return;
                };
                return MasterPageViewModel;
            }(BaseClass.ViewModel));
            MasterPage.MasterPageViewModel = MasterPageViewModel;
        })(MasterPage = ViewModels.MasterPage || (ViewModels.MasterPage = {}));
    })(ViewModels = DigicircMatchmaking.ViewModels || (DigicircMatchmaking.ViewModels = {}));
})(DigicircMatchmaking || (DigicircMatchmaking = {}));
;
var __extends = (this && this.__extends) || (function () {
    var extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
// Copyright (c) . All rights reserved.
// Licensed under the . See LICENSE file in the project root for full license information.
// This was autogenerated by zAppDev.
var DigicircMatchmaking;
(function (DigicircMatchmaking) {
    var BO;
    (function (BO) {
        var Domain_LocalResourcesDefinition = /** @class */ (function () {
            function Domain_LocalResourcesDefinition() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Domain_LocalResourcesDefinition";
                this.Domain = DigicircMatchmaking.BO;
            }
            return Domain_LocalResourcesDefinition;
        }());
        BO.Domain_LocalResourcesDefinition = Domain_LocalResourcesDefinition;
        var GlobalResourcesDefinition = /** @class */ (function () {
            function GlobalResourcesDefinition() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.GlobalResourcesDefinition";
                this.Domain = DigicircMatchmaking.BO;
            }
            return GlobalResourcesDefinition;
        }());
        BO.GlobalResourcesDefinition = GlobalResourcesDefinition;
        var Address = /** @class */ (function () {
            function Address() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Address";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            Address.GetFullAddress = function ($this) {
                return Joove.Common.nullSafe(function () { return $this.StreetName; }, "") + " " + Joove.Common.safeNumber(Joove.Common.nullSafe(function () { return $this.Number; }, 0)) + ",<br />" + Joove.Common.nullSafe(function () { return $this.Town; }, "") + " " + Joove.Common.nullSafe(function () { return $this.Zip; }, "") + "<br />" + Joove.Common.nullSafe(function () { return $this.Country.Name; }, "");
            };
            Address.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            Address.setCountry = function ($this, value) {
                var oldValue = $this.Country;
                $this.Country = value;
                if (value != null) {
                }
            };
            return Address;
        }());
        BO.Address = Address;
        var Country = /** @class */ (function () {
            function Country() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Country";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            Country.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return Country;
        }());
        BO.Country = Country;
        var Geocoder = /** @class */ (function () {
            function Geocoder() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Geocoder";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.GeocoderKey = 0;
            }
            Geocoder.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.GeocoderKey == null || $this.GeocoderKey == 0;
            };
            return Geocoder;
        }());
        BO.Geocoder = Geocoder;
        var GeographicalArea = /** @class */ (function () {
            function GeographicalArea() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.GeographicalArea";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            GeographicalArea.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return GeographicalArea;
        }());
        BO.GeographicalArea = GeographicalArea;
        var Actor = /** @class */ (function () {
            function Actor() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Actor";
                this.Domain = DigicircMatchmaking.BO;
                this.Actors = [];
                this.Administrators = [];
                this.Sites = [];
                this.SectorTypes = [];
                this['_key'] = this.Id = 0;
            }
            Actor.GetActorNamesFromElasticResponse = function (response) {
                var actorNames = [];
                var actors = Joove.Common.nullSafe(function () { return response.Hits.Hits.linq.select(function (a) { return Joove.Common.nullSafe(function () { return a.Source.Name; }, ""); }).toArray(); }, null);
                var _loop_1 = function (_iname) {
                    name = actors[_iname];
                    var actorName = Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ActorNames(); }, null);
                    actorName.Name = name;
                    Joove.Common.nullSafe(function () { return actorNames.add(actorName); }, null);
                };
                var name;
                for (var _iname = 0; _iname < (actors == null ? 0 : actors.length); _iname++) {
                    _loop_1(_iname);
                }
                return actorNames;
            };
            Actor.GetGetCountOfClusterMembers = function ($this) {
                if ((Joove.Common.nullSafe(function () { return $this.EntityType.IsCluster; }, false))) {
                    return Joove.Common.nullSafe(function () { return $this.Actors.length; }, 0);
                }
                return 0;
            };
            Actor.GetShortDescription = function ($this) {
                var descLength = Joove.Common.nullSafe(function () { return $this.Description.length; }, 0);
                if ((CLMS.Framework.Number.LessThan(function () { return descLength; }, function () { return 250; }))) {
                    return Joove.Common.nullSafe(function () { return $this.Description; }, "");
                }
                return Joove.Common.nullSafe(function () { return $this.Description.substring(0, 250); }, "") + "...";
            };
            Actor.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            Actor.setAddress = function ($this, value) {
                var oldValue = $this.Address;
                $this.Address = value;
                if (value != null) {
                }
            };
            Actor.setAddedBy = function ($this, value) {
                var oldValue = $this.AddedBy;
                $this.AddedBy = value;
                if (value != null) {
                }
            };
            Actor.setCircularEconomyRequirements = function ($this, value) {
                var oldValue = $this.CircularEconomyRequirements;
                $this.CircularEconomyRequirements = value;
                if (value != null) {
                }
            };
            Actor.setCircularEconomyProviderReport = function ($this, value) {
                var oldValue = $this.CircularEconomyProviderReport;
                $this.CircularEconomyProviderReport = value;
                if (value != null) {
                }
            };
            Actor.setActorLogo = function ($this, value) {
                var oldValue = $this.ActorLogo;
                $this.ActorLogo = value;
                if (value != null) {
                }
            };
            Actor.setCluster = function ($this, value) {
                var oldValue = $this.Cluster;
                $this.Cluster = value;
                if (value != null) {
                    if (oldValue != null) {
                        DigicircMatchmaking.BO.Actor.removeActors(oldValue, $this);
                    }
                    DigicircMatchmaking.BO.Actor.addActors(value, $this);
                }
            };
            Actor.setActors = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Actors == null)
                    $this.Actors = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Actors.length > 0) {
                    DigicircMatchmaking.BO.Actor.removeActors($this, $this.Actors[0]);
                }
                DigicircMatchmaking.BO.Actor.addManyActors($this, copyItems);
            };
            Actor.addManyActors = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.Actor.addActors($this, items[i]);
                }
            };
            Actor.addActors = function ($this, item) {
                if ($this.Actors == null)
                    $this.Actors = [];
                if (item == null || $this.Actors.indexOf(item) > -1)
                    return;
                $this.Actors.push(item);
                if (item.Cluster != $this) {
                    DigicircMatchmaking.BO.Actor.setCluster(item, $this);
                }
            };
            Actor.addRangeActors = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.Actor.addActors($this, item); });
            };
            Actor.removeActors = function ($this, item) {
                if ($this == null || $this.Actors == null || $this.Actors.indexOf(item) === -1)
                    return;
                var _index = $this.Actors.indexOf(item);
                $this.Actors.splice(_index, 1);
                item.Cluster = null;
            };
            Actor.clearActors = function ($this) {
                $this.Actors = null;
            };
            Actor.setAdministrators = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Administrators == null)
                    $this.Administrators = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Administrators.length > 0) {
                    DigicircMatchmaking.BO.Actor.removeAdministrators($this, $this.Administrators[0]);
                }
                DigicircMatchmaking.BO.Actor.addManyAdministrators($this, copyItems);
            };
            Actor.addManyAdministrators = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.Actor.addAdministrators($this, items[i]);
                }
            };
            Actor.addAdministrators = function ($this, item) {
                if ($this.Administrators == null)
                    $this.Administrators = [];
                if (item == null || $this.Administrators.indexOf(item) > -1)
                    return;
                $this.Administrators.push(item);
            };
            Actor.addRangeAdministrators = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.Actor.addAdministrators($this, item); });
            };
            Actor.removeAdministrators = function ($this, item) {
                if ($this == null || $this.Administrators == null || $this.Administrators.indexOf(item) === -1)
                    return;
                var _index = $this.Administrators.indexOf(item);
                $this.Administrators.splice(_index, 1);
            };
            Actor.clearAdministrators = function ($this) {
                $this.Administrators = null;
            };
            Actor.setSites = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Sites == null)
                    $this.Sites = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Sites.length > 0) {
                    DigicircMatchmaking.BO.Actor.removeSites($this, $this.Sites[0]);
                }
                DigicircMatchmaking.BO.Actor.addManySites($this, copyItems);
            };
            Actor.addManySites = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.Actor.addSites($this, items[i]);
                }
            };
            Actor.addSites = function ($this, item) {
                if ($this.Sites == null)
                    $this.Sites = [];
                if (item == null || $this.Sites.indexOf(item) > -1)
                    return;
                $this.Sites.push(item);
            };
            Actor.addRangeSites = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.Actor.addSites($this, item); });
            };
            Actor.removeSites = function ($this, item) {
                if ($this == null || $this.Sites == null || $this.Sites.indexOf(item) === -1)
                    return;
                var _index = $this.Sites.indexOf(item);
                $this.Sites.splice(_index, 1);
            };
            Actor.clearSites = function ($this) {
                $this.Sites = null;
            };
            Actor.setEntityType = function ($this, value) {
                var oldValue = $this.EntityType;
                $this.EntityType = value;
                if (value != null) {
                }
            };
            Actor.setSectorTypes = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.SectorTypes == null)
                    $this.SectorTypes = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.SectorTypes.length > 0) {
                    DigicircMatchmaking.BO.Actor.removeSectorTypes($this, $this.SectorTypes[0]);
                }
                DigicircMatchmaking.BO.Actor.addManySectorTypes($this, copyItems);
            };
            Actor.addManySectorTypes = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.Actor.addSectorTypes($this, items[i]);
                }
            };
            Actor.addSectorTypes = function ($this, item) {
                if ($this.SectorTypes == null)
                    $this.SectorTypes = [];
                if (item == null || $this.SectorTypes.indexOf(item) > -1)
                    return;
                $this.SectorTypes.push(item);
                SectorType.addActor(item, $this);
            };
            Actor.addRangeSectorTypes = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.Actor.addSectorTypes($this, item); });
            };
            Actor.removeSectorTypes = function ($this, item) {
                if ($this == null || $this.SectorTypes == null || $this.SectorTypes.indexOf(item) === -1)
                    return;
                var _index = $this.SectorTypes.indexOf(item);
                $this.SectorTypes.splice(_index, 1);
                SectorType.removeActor(item, $this);
            };
            Actor.clearSectorTypes = function ($this) {
                $this.SectorTypes = null;
            };
            return Actor;
        }());
        BO.Actor = Actor;
        var DigitalExpertise;
        (function (DigitalExpertise) {
            DigitalExpertise[DigitalExpertise["None"] = 0] = "None";
            DigitalExpertise[DigitalExpertise["Average"] = 1] = "Average";
            DigitalExpertise[DigitalExpertise["Medium"] = 2] = "Medium";
            DigitalExpertise[DigitalExpertise["Sufficient"] = 3] = "Sufficient";
            DigitalExpertise[DigitalExpertise["High"] = 4] = "High";
        })(DigitalExpertise = BO.DigitalExpertise || (BO.DigitalExpertise = {}));
        var CircularEconomyReport = /** @class */ (function () {
            function CircularEconomyReport() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.CircularEconomyReport";
                this.Domain = DigicircMatchmaking.BO;
                this.DesiredThematicExpertises = [];
                this.DesiredGeographicalArea = [];
                this.Resources = [];
                this.DesiredResources = [];
                this['_key'] = this.Id = 0;
            }
            CircularEconomyReport.GetGetExperienceInCircularEconomy = function ($this) {
                return (Joove.Common.nullSafe(function () { return $this.ExperienceInCircularEconomy; }, false) ? "yes" : "no");
            };
            CircularEconomyReport.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            CircularEconomyReport.setDesiredThematicExpertises = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.DesiredThematicExpertises == null)
                    $this.DesiredThematicExpertises = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.DesiredThematicExpertises.length > 0) {
                    DigicircMatchmaking.BO.CircularEconomyReport.removeDesiredThematicExpertises($this, $this.DesiredThematicExpertises[0]);
                }
                DigicircMatchmaking.BO.CircularEconomyReport.addManyDesiredThematicExpertises($this, copyItems);
            };
            CircularEconomyReport.addManyDesiredThematicExpertises = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.CircularEconomyReport.addDesiredThematicExpertises($this, items[i]);
                }
            };
            CircularEconomyReport.addDesiredThematicExpertises = function ($this, item) {
                if ($this.DesiredThematicExpertises == null)
                    $this.DesiredThematicExpertises = [];
                if (item == null || $this.DesiredThematicExpertises.indexOf(item) > -1)
                    return;
                $this.DesiredThematicExpertises.push(item);
            };
            CircularEconomyReport.addRangeDesiredThematicExpertises = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.CircularEconomyReport.addDesiredThematicExpertises($this, item); });
            };
            CircularEconomyReport.removeDesiredThematicExpertises = function ($this, item) {
                if ($this == null || $this.DesiredThematicExpertises == null || $this.DesiredThematicExpertises.indexOf(item) === -1)
                    return;
                var _index = $this.DesiredThematicExpertises.indexOf(item);
                $this.DesiredThematicExpertises.splice(_index, 1);
            };
            CircularEconomyReport.clearDesiredThematicExpertises = function ($this) {
                $this.DesiredThematicExpertises = null;
            };
            CircularEconomyReport.setDesiredSMESector = function ($this, value) {
                var oldValue = $this.DesiredSMESector;
                $this.DesiredSMESector = value;
                if (value != null) {
                }
            };
            CircularEconomyReport.setDesiredGeographicalArea = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.DesiredGeographicalArea == null)
                    $this.DesiredGeographicalArea = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.DesiredGeographicalArea.length > 0) {
                    DigicircMatchmaking.BO.CircularEconomyReport.removeDesiredGeographicalArea($this, $this.DesiredGeographicalArea[0]);
                }
                DigicircMatchmaking.BO.CircularEconomyReport.addManyDesiredGeographicalArea($this, copyItems);
            };
            CircularEconomyReport.addManyDesiredGeographicalArea = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.CircularEconomyReport.addDesiredGeographicalArea($this, items[i]);
                }
            };
            CircularEconomyReport.addDesiredGeographicalArea = function ($this, item) {
                if ($this.DesiredGeographicalArea == null)
                    $this.DesiredGeographicalArea = [];
                if (item == null || $this.DesiredGeographicalArea.indexOf(item) > -1)
                    return;
                $this.DesiredGeographicalArea.push(item);
            };
            CircularEconomyReport.addRangeDesiredGeographicalArea = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.CircularEconomyReport.addDesiredGeographicalArea($this, item); });
            };
            CircularEconomyReport.removeDesiredGeographicalArea = function ($this, item) {
                if ($this == null || $this.DesiredGeographicalArea == null || $this.DesiredGeographicalArea.indexOf(item) === -1)
                    return;
                var _index = $this.DesiredGeographicalArea.indexOf(item);
                $this.DesiredGeographicalArea.splice(_index, 1);
            };
            CircularEconomyReport.clearDesiredGeographicalArea = function ($this) {
                $this.DesiredGeographicalArea = null;
            };
            CircularEconomyReport.setResources = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Resources == null)
                    $this.Resources = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Resources.length > 0) {
                    DigicircMatchmaking.BO.CircularEconomyReport.removeResources($this, $this.Resources[0]);
                }
                DigicircMatchmaking.BO.CircularEconomyReport.addManyResources($this, copyItems);
            };
            CircularEconomyReport.addManyResources = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.CircularEconomyReport.addResources($this, items[i]);
                }
            };
            CircularEconomyReport.addResources = function ($this, item) {
                if ($this.Resources == null)
                    $this.Resources = [];
                if (item == null || $this.Resources.indexOf(item) > -1)
                    return;
                $this.Resources.push(item);
            };
            CircularEconomyReport.addRangeResources = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.CircularEconomyReport.addResources($this, item); });
            };
            CircularEconomyReport.removeResources = function ($this, item) {
                if ($this == null || $this.Resources == null || $this.Resources.indexOf(item) === -1)
                    return;
                var _index = $this.Resources.indexOf(item);
                $this.Resources.splice(_index, 1);
            };
            CircularEconomyReport.clearResources = function ($this) {
                $this.Resources = null;
            };
            CircularEconomyReport.setDesiredResources = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.DesiredResources == null)
                    $this.DesiredResources = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.DesiredResources.length > 0) {
                    DigicircMatchmaking.BO.CircularEconomyReport.removeDesiredResources($this, $this.DesiredResources[0]);
                }
                DigicircMatchmaking.BO.CircularEconomyReport.addManyDesiredResources($this, copyItems);
            };
            CircularEconomyReport.addManyDesiredResources = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.CircularEconomyReport.addDesiredResources($this, items[i]);
                }
            };
            CircularEconomyReport.addDesiredResources = function ($this, item) {
                if ($this.DesiredResources == null)
                    $this.DesiredResources = [];
                if (item == null || $this.DesiredResources.indexOf(item) > -1)
                    return;
                $this.DesiredResources.push(item);
            };
            CircularEconomyReport.addRangeDesiredResources = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.CircularEconomyReport.addDesiredResources($this, item); });
            };
            CircularEconomyReport.removeDesiredResources = function ($this, item) {
                if ($this == null || $this.DesiredResources == null || $this.DesiredResources.indexOf(item) === -1)
                    return;
                var _index = $this.DesiredResources.indexOf(item);
                $this.DesiredResources.splice(_index, 1);
            };
            CircularEconomyReport.clearDesiredResources = function ($this) {
                $this.DesiredResources = null;
            };
            return CircularEconomyReport;
        }());
        BO.CircularEconomyReport = CircularEconomyReport;
        var CircularEconomyProviderReport = /** @class */ (function () {
            function CircularEconomyProviderReport() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.CircularEconomyProviderReport";
                this.Domain = DigicircMatchmaking.BO;
                this.PlaceOperates = [];
                this.ThematicExpertises = [];
                this.ServicesProvided = [];
                this.Expertises = [];
                this['_key'] = this.Id = 0;
            }
            CircularEconomyProviderReport.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            CircularEconomyProviderReport.setPlaceOperates = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.PlaceOperates == null)
                    $this.PlaceOperates = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.PlaceOperates.length > 0) {
                    DigicircMatchmaking.BO.CircularEconomyProviderReport.removePlaceOperates($this, $this.PlaceOperates[0]);
                }
                DigicircMatchmaking.BO.CircularEconomyProviderReport.addManyPlaceOperates($this, copyItems);
            };
            CircularEconomyProviderReport.addManyPlaceOperates = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.CircularEconomyProviderReport.addPlaceOperates($this, items[i]);
                }
            };
            CircularEconomyProviderReport.addPlaceOperates = function ($this, item) {
                if ($this.PlaceOperates == null)
                    $this.PlaceOperates = [];
                if (item == null || $this.PlaceOperates.indexOf(item) > -1)
                    return;
                $this.PlaceOperates.push(item);
            };
            CircularEconomyProviderReport.addRangePlaceOperates = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.CircularEconomyProviderReport.addPlaceOperates($this, item); });
            };
            CircularEconomyProviderReport.removePlaceOperates = function ($this, item) {
                if ($this == null || $this.PlaceOperates == null || $this.PlaceOperates.indexOf(item) === -1)
                    return;
                var _index = $this.PlaceOperates.indexOf(item);
                $this.PlaceOperates.splice(_index, 1);
            };
            CircularEconomyProviderReport.clearPlaceOperates = function ($this) {
                $this.PlaceOperates = null;
            };
            CircularEconomyProviderReport.setThematicExpertises = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.ThematicExpertises == null)
                    $this.ThematicExpertises = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.ThematicExpertises.length > 0) {
                    DigicircMatchmaking.BO.CircularEconomyProviderReport.removeThematicExpertises($this, $this.ThematicExpertises[0]);
                }
                DigicircMatchmaking.BO.CircularEconomyProviderReport.addManyThematicExpertises($this, copyItems);
            };
            CircularEconomyProviderReport.addManyThematicExpertises = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.CircularEconomyProviderReport.addThematicExpertises($this, items[i]);
                }
            };
            CircularEconomyProviderReport.addThematicExpertises = function ($this, item) {
                if ($this.ThematicExpertises == null)
                    $this.ThematicExpertises = [];
                if (item == null || $this.ThematicExpertises.indexOf(item) > -1)
                    return;
                $this.ThematicExpertises.push(item);
            };
            CircularEconomyProviderReport.addRangeThematicExpertises = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.CircularEconomyProviderReport.addThematicExpertises($this, item); });
            };
            CircularEconomyProviderReport.removeThematicExpertises = function ($this, item) {
                if ($this == null || $this.ThematicExpertises == null || $this.ThematicExpertises.indexOf(item) === -1)
                    return;
                var _index = $this.ThematicExpertises.indexOf(item);
                $this.ThematicExpertises.splice(_index, 1);
            };
            CircularEconomyProviderReport.clearThematicExpertises = function ($this) {
                $this.ThematicExpertises = null;
            };
            CircularEconomyProviderReport.setServicesProvided = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.ServicesProvided == null)
                    $this.ServicesProvided = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.ServicesProvided.length > 0) {
                    DigicircMatchmaking.BO.CircularEconomyProviderReport.removeServicesProvided($this, $this.ServicesProvided[0]);
                }
                DigicircMatchmaking.BO.CircularEconomyProviderReport.addManyServicesProvided($this, copyItems);
            };
            CircularEconomyProviderReport.addManyServicesProvided = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.CircularEconomyProviderReport.addServicesProvided($this, items[i]);
                }
            };
            CircularEconomyProviderReport.addServicesProvided = function ($this, item) {
                if ($this.ServicesProvided == null)
                    $this.ServicesProvided = [];
                if (item == null || $this.ServicesProvided.indexOf(item) > -1)
                    return;
                $this.ServicesProvided.push(item);
            };
            CircularEconomyProviderReport.addRangeServicesProvided = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.CircularEconomyProviderReport.addServicesProvided($this, item); });
            };
            CircularEconomyProviderReport.removeServicesProvided = function ($this, item) {
                if ($this == null || $this.ServicesProvided == null || $this.ServicesProvided.indexOf(item) === -1)
                    return;
                var _index = $this.ServicesProvided.indexOf(item);
                $this.ServicesProvided.splice(_index, 1);
            };
            CircularEconomyProviderReport.clearServicesProvided = function ($this) {
                $this.ServicesProvided = null;
            };
            CircularEconomyProviderReport.setExpertises = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Expertises == null)
                    $this.Expertises = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Expertises.length > 0) {
                    DigicircMatchmaking.BO.CircularEconomyProviderReport.removeExpertises($this, $this.Expertises[0]);
                }
                DigicircMatchmaking.BO.CircularEconomyProviderReport.addManyExpertises($this, copyItems);
            };
            CircularEconomyProviderReport.addManyExpertises = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.CircularEconomyProviderReport.addExpertises($this, items[i]);
                }
            };
            CircularEconomyProviderReport.addExpertises = function ($this, item) {
                if ($this.Expertises == null)
                    $this.Expertises = [];
                if (item == null || $this.Expertises.indexOf(item) > -1)
                    return;
                $this.Expertises.push(item);
            };
            CircularEconomyProviderReport.addRangeExpertises = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.CircularEconomyProviderReport.addExpertises($this, item); });
            };
            CircularEconomyProviderReport.removeExpertises = function ($this, item) {
                if ($this == null || $this.Expertises == null || $this.Expertises.indexOf(item) === -1)
                    return;
                var _index = $this.Expertises.indexOf(item);
                $this.Expertises.splice(_index, 1);
            };
            CircularEconomyProviderReport.clearExpertises = function ($this) {
                $this.Expertises = null;
            };
            return CircularEconomyProviderReport;
        }());
        BO.CircularEconomyProviderReport = CircularEconomyProviderReport;
        var BusinessFunction = /** @class */ (function () {
            function BusinessFunction() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.BusinessFunction";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            BusinessFunction.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return BusinessFunction;
        }());
        BO.BusinessFunction = BusinessFunction;
        var BusinessType = /** @class */ (function () {
            function BusinessType() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.BusinessType";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            BusinessType.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return BusinessType;
        }());
        BO.BusinessType = BusinessType;
        var Activities = /** @class */ (function () {
            function Activities() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Activities";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            Activities.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return Activities;
        }());
        BO.Activities = Activities;
        var GraphDebugResult = /** @class */ (function () {
            function GraphDebugResult() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.GraphDebugResult";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.GraphDebugResultKey = 0;
            }
            GraphDebugResult.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.GraphDebugResultKey == null || $this.GraphDebugResultKey == 0;
            };
            GraphDebugResult.setResult = function ($this, value) {
                var oldValue = $this.Result;
                $this.Result = value;
                if (value != null) {
                }
            };
            return GraphDebugResult;
        }());
        BO.GraphDebugResult = GraphDebugResult;
        var GraphBackendResponse = /** @class */ (function () {
            function GraphBackendResponse() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.GraphBackendResponse";
                this.Domain = DigicircMatchmaking.BO;
                this.Nodes = [];
                this.Links = [];
                this['_key'] = this.GraphBackendResponseKey = 0;
            }
            GraphBackendResponse.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.GraphBackendResponseKey == null || $this.GraphBackendResponseKey == 0;
            };
            GraphBackendResponse.setMetadata = function ($this, value) {
                var oldValue = $this.Metadata;
                $this.Metadata = value;
                if (value != null) {
                }
            };
            GraphBackendResponse.setNodes = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Nodes == null)
                    $this.Nodes = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Nodes.length > 0) {
                    DigicircMatchmaking.BO.GraphBackendResponse.removeNodes($this, $this.Nodes[0]);
                }
                DigicircMatchmaking.BO.GraphBackendResponse.addManyNodes($this, copyItems);
            };
            GraphBackendResponse.addManyNodes = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.GraphBackendResponse.addNodes($this, items[i]);
                }
            };
            GraphBackendResponse.addNodes = function ($this, item) {
                if ($this.Nodes == null)
                    $this.Nodes = [];
                if (item == null || $this.Nodes.indexOf(item) > -1)
                    return;
                $this.Nodes.push(item);
            };
            GraphBackendResponse.addRangeNodes = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.GraphBackendResponse.addNodes($this, item); });
            };
            GraphBackendResponse.removeNodes = function ($this, item) {
                if ($this == null || $this.Nodes == null || $this.Nodes.indexOf(item) === -1)
                    return;
                var _index = $this.Nodes.indexOf(item);
                $this.Nodes.splice(_index, 1);
            };
            GraphBackendResponse.clearNodes = function ($this) {
                $this.Nodes = null;
            };
            GraphBackendResponse.setLinks = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Links == null)
                    $this.Links = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Links.length > 0) {
                    DigicircMatchmaking.BO.GraphBackendResponse.removeLinks($this, $this.Links[0]);
                }
                DigicircMatchmaking.BO.GraphBackendResponse.addManyLinks($this, copyItems);
            };
            GraphBackendResponse.addManyLinks = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.GraphBackendResponse.addLinks($this, items[i]);
                }
            };
            GraphBackendResponse.addLinks = function ($this, item) {
                if ($this.Links == null)
                    $this.Links = [];
                if (item == null || $this.Links.indexOf(item) > -1)
                    return;
                $this.Links.push(item);
            };
            GraphBackendResponse.addRangeLinks = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.GraphBackendResponse.addLinks($this, item); });
            };
            GraphBackendResponse.removeLinks = function ($this, item) {
                if ($this == null || $this.Links == null || $this.Links.indexOf(item) === -1)
                    return;
                var _index = $this.Links.indexOf(item);
                $this.Links.splice(_index, 1);
            };
            GraphBackendResponse.clearLinks = function ($this) {
                $this.Links = null;
            };
            return GraphBackendResponse;
        }());
        BO.GraphBackendResponse = GraphBackendResponse;
        var Metadata = /** @class */ (function () {
            function Metadata() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Metadata";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.MetadataKey = 0;
            }
            Metadata.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.MetadataKey == null || $this.MetadataKey == 0;
            };
            return Metadata;
        }());
        BO.Metadata = Metadata;
        var Nodes = /** @class */ (function () {
            function Nodes() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Nodes";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.NodesKey = 0;
            }
            Nodes.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.NodesKey == null || $this.NodesKey == 0;
            };
            return Nodes;
        }());
        BO.Nodes = Nodes;
        var Links = /** @class */ (function () {
            function Links() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Links";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.LinksKey = 0;
            }
            Links.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.LinksKey == null || $this.LinksKey == 0;
            };
            return Links;
        }());
        BO.Links = Links;
        var GraphMetadata = /** @class */ (function () {
            function GraphMetadata() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.GraphMetadata";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.GraphMetadataKey = 0;
            }
            GraphMetadata.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.GraphMetadataKey == null || $this.GraphMetadataKey == 0;
            };
            return GraphMetadata;
        }());
        BO.GraphMetadata = GraphMetadata;
        var Query = /** @class */ (function () {
            function Query() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Query";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.QueryKey = 0;
            }
            Query.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.QueryKey == null || $this.QueryKey == 0;
            };
            return Query;
        }());
        BO.Query = Query;
        var QueryExtended = /** @class */ (function () {
            function QueryExtended() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.QueryExtended";
                this.Domain = DigicircMatchmaking.BO;
                this.Elements = [];
                this.Relations = [];
                this['_key'] = this.QueryExtendedKey = 0;
            }
            QueryExtended.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.QueryExtendedKey == null || $this.QueryExtendedKey == 0;
            };
            QueryExtended.setElements = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Elements == null)
                    $this.Elements = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Elements.length > 0) {
                    DigicircMatchmaking.BO.QueryExtended.removeElements($this, $this.Elements[0]);
                }
                DigicircMatchmaking.BO.QueryExtended.addManyElements($this, copyItems);
            };
            QueryExtended.addManyElements = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.QueryExtended.addElements($this, items[i]);
                }
            };
            QueryExtended.addElements = function ($this, item) {
                if ($this.Elements == null)
                    $this.Elements = [];
                if (item == null || $this.Elements.indexOf(item) > -1)
                    return;
                $this.Elements.push(item);
            };
            QueryExtended.addRangeElements = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.QueryExtended.addElements($this, item); });
            };
            QueryExtended.removeElements = function ($this, item) {
                if ($this == null || $this.Elements == null || $this.Elements.indexOf(item) === -1)
                    return;
                var _index = $this.Elements.indexOf(item);
                $this.Elements.splice(_index, 1);
            };
            QueryExtended.clearElements = function ($this) {
                $this.Elements = null;
            };
            QueryExtended.setRelations = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Relations == null)
                    $this.Relations = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Relations.length > 0) {
                    DigicircMatchmaking.BO.QueryExtended.removeRelations($this, $this.Relations[0]);
                }
                DigicircMatchmaking.BO.QueryExtended.addManyRelations($this, copyItems);
            };
            QueryExtended.addManyRelations = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.QueryExtended.addRelations($this, items[i]);
                }
            };
            QueryExtended.addRelations = function ($this, item) {
                if ($this.Relations == null)
                    $this.Relations = [];
                if (item == null || $this.Relations.indexOf(item) > -1)
                    return;
                $this.Relations.push(item);
            };
            QueryExtended.addRangeRelations = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.QueryExtended.addRelations($this, item); });
            };
            QueryExtended.removeRelations = function ($this, item) {
                if ($this == null || $this.Relations == null || $this.Relations.indexOf(item) === -1)
                    return;
                var _index = $this.Relations.indexOf(item);
                $this.Relations.splice(_index, 1);
            };
            QueryExtended.clearRelations = function ($this) {
                $this.Relations = null;
            };
            QueryExtended.setMessageSearchData = function ($this, value) {
                var oldValue = $this.MessageSearchData;
                $this.MessageSearchData = value;
                if (value != null) {
                }
            };
            return QueryExtended;
        }());
        BO.QueryExtended = QueryExtended;
        var ExElements = /** @class */ (function () {
            function ExElements() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ExElements";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ExElementsKey = 0;
            }
            ExElements.PrepareRalationNodesTypeText = function (element, textIsInSource) {
                var sourceElement = new Object();
                sourceElement.Name = Joove.Common.nullSafe(function () { return element.SourceNodeName; }, "");
                sourceElement.Type = Joove.Common.nullSafe(function () { return element.SourceNodeType; }, "");
                if ((textIsInSource)) {
                    sourceElement.Category = "Text";
                }
                var destinationElement = new Object();
                destinationElement.Name = Joove.Common.nullSafe(function () { return element.DestinationNodeName; }, "");
                destinationElement.Type = Joove.Common.nullSafe(function () { return element.DestinationNodeType; }, "");
                if ((!(textIsInSource))) {
                    destinationElement.Category = "Text";
                }
                return [sourceElement, destinationElement];
            };
            ExElements.PrepareRelationNodes = function (element) {
                var sourceElement = new Object();
                sourceElement.Name = Joove.Common.nullSafe(function () { return element.SourceNodeName; }, "");
                sourceElement.Type = Joove.Common.nullSafe(function () { return element.SourceNodeType; }, "");
                var destinationElement = new Object();
                destinationElement.Name = Joove.Common.nullSafe(function () { return element.DestinationNodeName; }, "");
                destinationElement.Type = Joove.Common.nullSafe(function () { return element.DestinationNodeType; }, "");
                return [sourceElement, destinationElement];
            };
            ExElements.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ExElementsKey == null || $this.ExElementsKey == 0;
            };
            return ExElements;
        }());
        BO.ExElements = ExElements;
        var ExRelations = /** @class */ (function () {
            function ExRelations() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ExRelations";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ExRelationsKey = 0;
            }
            ExRelations.GetDefaults = function () {
                var relations = [];
                var relation = new Object();
                relation.Type = "*";
                Joove.Common.nullSafe(function () { return relations.add(relation); }, null);
                return relations;
            };
            ExRelations.GetRelationType = function (name) {
                var relations = [];
                var relation = new Object();
                relation.Type = name;
                Joove.Common.nullSafe(function () { return relations.add(relation); }, null);
                return relations;
            };
            ExRelations.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ExRelationsKey == null || $this.ExRelationsKey == 0;
            };
            return ExRelations;
        }());
        BO.ExRelations = ExRelations;
        var ExMessageSearchData = /** @class */ (function () {
            function ExMessageSearchData() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ExMessageSearchData";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ExMessageSearchDataKey = 0;
            }
            ExMessageSearchData.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ExMessageSearchDataKey == null || $this.ExMessageSearchDataKey == 0;
            };
            ExMessageSearchData.setExSecurity = function ($this, value) {
                var oldValue = $this.ExSecurity;
                $this.ExSecurity = value;
                if (value != null) {
                }
            };
            return ExMessageSearchData;
        }());
        BO.ExMessageSearchData = ExMessageSearchData;
        var ExSecurity = /** @class */ (function () {
            function ExSecurity() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ExSecurity";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ExSecurityKey = 0;
            }
            ExSecurity.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ExSecurityKey == null || $this.ExSecurityKey == 0;
            };
            return ExSecurity;
        }());
        BO.ExSecurity = ExSecurity;
        var GraphQueries = /** @class */ (function () {
            function GraphQueries() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.GraphQueries";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.GraphQueriesKey = 0;
            }
            GraphQueries.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.GraphQueriesKey == null || $this.GraphQueriesKey == 0;
            };
            return GraphQueries;
        }());
        BO.GraphQueries = GraphQueries;
        var GraphUpdate = /** @class */ (function () {
            function GraphUpdate() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.GraphUpdate";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.GraphUpdateKey = 0;
            }
            GraphUpdate.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.GraphUpdateKey == null || $this.GraphUpdateKey == 0;
            };
            return GraphUpdate;
        }());
        BO.GraphUpdate = GraphUpdate;
        var UpdateResponse = /** @class */ (function () {
            function UpdateResponse() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.UpdateResponse";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.UpdateResponseKey = 0;
            }
            UpdateResponse.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.UpdateResponseKey == null || $this.UpdateResponseKey == 0;
            };
            return UpdateResponse;
        }());
        BO.UpdateResponse = UpdateResponse;
        var GraphUpdateElement = /** @class */ (function () {
            function GraphUpdateElement() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.GraphUpdateElement";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.GraphUpdateElementKey = 0;
            }
            GraphUpdateElement.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.GraphUpdateElementKey == null || $this.GraphUpdateElementKey == 0;
            };
            return GraphUpdateElement;
        }());
        BO.GraphUpdateElement = GraphUpdateElement;
        var SearchQuery = /** @class */ (function () {
            function SearchQuery() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.SearchQuery";
                this.Domain = DigicircMatchmaking.BO;
                this.ActorNames = [];
                this['_key'] = this.SearchQueryKey = 0;
            }
            SearchQuery.GetGetSearchTerm = function ($this) {
                return "list \"" + Joove.Common.nullSafe(function () { return $this.SearchTerm; }, "") + "\"";
            };
            SearchQuery.Reset = function ($this) {
                $this.SearchTerm = "";
                DigicircMatchmaking.BO.SearchQuery.setSelectedCountry($this, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.Country(); }, null));
                DigicircMatchmaking.BO.SearchQuery.setSelectedSector($this, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.SectorType(); }, null));
                DigicircMatchmaking.BO.SearchQuery.setActorNames($this, null);
            };
            SearchQuery.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.SearchQueryKey == null || $this.SearchQueryKey == 0;
            };
            SearchQuery.setSelectedCountry = function ($this, value) {
                var oldValue = $this.SelectedCountry;
                $this.SelectedCountry = value;
                if (value != null) {
                }
            };
            SearchQuery.setSelectedSector = function ($this, value) {
                var oldValue = $this.SelectedSector;
                $this.SelectedSector = value;
                if (value != null) {
                }
            };
            SearchQuery.setActorNames = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.ActorNames == null)
                    $this.ActorNames = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.ActorNames.length > 0) {
                    DigicircMatchmaking.BO.SearchQuery.removeActorNames($this, $this.ActorNames[0]);
                }
                DigicircMatchmaking.BO.SearchQuery.addManyActorNames($this, copyItems);
            };
            SearchQuery.addManyActorNames = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.SearchQuery.addActorNames($this, items[i]);
                }
            };
            SearchQuery.addActorNames = function ($this, item) {
                if ($this.ActorNames == null)
                    $this.ActorNames = [];
                if (item == null || $this.ActorNames.indexOf(item) > -1)
                    return;
                $this.ActorNames.push(item);
            };
            SearchQuery.addRangeActorNames = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.SearchQuery.addActorNames($this, item); });
            };
            SearchQuery.removeActorNames = function ($this, item) {
                if ($this == null || $this.ActorNames == null || $this.ActorNames.indexOf(item) === -1)
                    return;
                var _index = $this.ActorNames.indexOf(item);
                $this.ActorNames.splice(_index, 1);
            };
            SearchQuery.clearActorNames = function ($this) {
                $this.ActorNames = null;
            };
            return SearchQuery;
        }());
        BO.SearchQuery = SearchQuery;
        var ActorNames = /** @class */ (function () {
            function ActorNames() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ActorNames";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            ActorNames.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return ActorNames;
        }());
        BO.ActorNames = ActorNames;
        var ValueType = /** @class */ (function () {
            function ValueType() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ValueType";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            ValueType.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return ValueType;
        }());
        BO.ValueType = ValueType;
        var Company = /** @class */ (function () {
            function Company() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Company";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            Company.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return Company;
        }());
        BO.Company = Company;
        var DataHelper = /** @class */ (function () {
            function DataHelper() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.DataHelper";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.DataHelperKey = 0;
            }
            DataHelper.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.DataHelperKey == null || $this.DataHelperKey == 0;
            };
            return DataHelper;
        }());
        BO.DataHelper = DataHelper;
        var TextSearch = /** @class */ (function () {
            function TextSearch() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.TextSearch";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.TextSearchKey = 0;
            }
            TextSearch.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.TextSearchKey == null || $this.TextSearchKey == 0;
            };
            return TextSearch;
        }());
        BO.TextSearch = TextSearch;
        var TextSearchRequest = /** @class */ (function () {
            function TextSearchRequest() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.TextSearchRequest";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Text = "";
            }
            TextSearchRequest.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Text == null || $this.Text == "";
            };
            return TextSearchRequest;
        }());
        BO.TextSearchRequest = TextSearchRequest;
        var TextSearchResponse = /** @class */ (function () {
            function TextSearchResponse() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.TextSearchResponse";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Tags = "";
            }
            TextSearchResponse.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Tags == null || $this.Tags == "";
            };
            return TextSearchResponse;
        }());
        BO.TextSearchResponse = TextSearchResponse;
        var MaterialCreateRequest = /** @class */ (function () {
            function MaterialCreateRequest() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.MaterialCreateRequest";
                this.Domain = DigicircMatchmaking.BO;
                this.Statements = [];
                this['_key'] = this.MaterialCreateRequestKey = 0;
            }
            MaterialCreateRequest.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.MaterialCreateRequestKey == null || $this.MaterialCreateRequestKey == 0;
            };
            MaterialCreateRequest.setStatements = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Statements == null)
                    $this.Statements = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Statements.length > 0) {
                    DigicircMatchmaking.BO.MaterialCreateRequest.removeStatements($this, $this.Statements[0]);
                }
                DigicircMatchmaking.BO.MaterialCreateRequest.addManyStatements($this, copyItems);
            };
            MaterialCreateRequest.addManyStatements = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.MaterialCreateRequest.addStatements($this, items[i]);
                }
            };
            MaterialCreateRequest.addStatements = function ($this, item) {
                if ($this.Statements == null)
                    $this.Statements = [];
                if (item == null || $this.Statements.indexOf(item) > -1)
                    return;
                $this.Statements.push(item);
            };
            MaterialCreateRequest.addRangeStatements = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.MaterialCreateRequest.addStatements($this, item); });
            };
            MaterialCreateRequest.removeStatements = function ($this, item) {
                if ($this == null || $this.Statements == null || $this.Statements.indexOf(item) === -1)
                    return;
                var _index = $this.Statements.indexOf(item);
                $this.Statements.splice(_index, 1);
            };
            MaterialCreateRequest.clearStatements = function ($this) {
                $this.Statements = null;
            };
            return MaterialCreateRequest;
        }());
        BO.MaterialCreateRequest = MaterialCreateRequest;
        var MaterialCreateStatements = /** @class */ (function () {
            function MaterialCreateStatements() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.MaterialCreateStatements";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.MaterialCreateStatementsKey = 0;
            }
            MaterialCreateStatements.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.MaterialCreateStatementsKey == null || $this.MaterialCreateStatementsKey == 0;
            };
            MaterialCreateStatements.setParameters = function ($this, value) {
                var oldValue = $this.Parameters;
                $this.Parameters = value;
                if (value != null) {
                }
            };
            return MaterialCreateStatements;
        }());
        BO.MaterialCreateStatements = MaterialCreateStatements;
        var MaterialCreateParameters = /** @class */ (function () {
            function MaterialCreateParameters() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.MaterialCreateParameters";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.MaterialCreateParametersKey = 0;
            }
            MaterialCreateParameters.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.MaterialCreateParametersKey == null || $this.MaterialCreateParametersKey == 0;
            };
            MaterialCreateParameters.setProps = function ($this, value) {
                var oldValue = $this.Props;
                $this.Props = value;
                if (value != null) {
                }
            };
            return MaterialCreateParameters;
        }());
        BO.MaterialCreateParameters = MaterialCreateParameters;
        var MaterialCreateProps = /** @class */ (function () {
            function MaterialCreateProps() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.MaterialCreateProps";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.MaterialCreatePropsKey = 0;
            }
            MaterialCreateProps.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.MaterialCreatePropsKey == null || $this.MaterialCreatePropsKey == 0;
            };
            return MaterialCreateProps;
        }());
        BO.MaterialCreateProps = MaterialCreateProps;
        var KnowledgeBaseResult = /** @class */ (function () {
            function KnowledgeBaseResult() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.KnowledgeBaseResult";
                this.Domain = DigicircMatchmaking.BO;
                this.Results = [];
                this['_key'] = this.KnowledgeBaseResultKey = 0;
            }
            KnowledgeBaseResult.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.KnowledgeBaseResultKey == null || $this.KnowledgeBaseResultKey == 0;
            };
            KnowledgeBaseResult.setResults = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Results == null)
                    $this.Results = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Results.length > 0) {
                    DigicircMatchmaking.BO.KnowledgeBaseResult.removeResults($this, $this.Results[0]);
                }
                DigicircMatchmaking.BO.KnowledgeBaseResult.addManyResults($this, copyItems);
            };
            KnowledgeBaseResult.addManyResults = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.KnowledgeBaseResult.addResults($this, items[i]);
                }
            };
            KnowledgeBaseResult.addResults = function ($this, item) {
                if ($this.Results == null)
                    $this.Results = [];
                if (item == null || $this.Results.indexOf(item) > -1)
                    return;
                $this.Results.push(item);
            };
            KnowledgeBaseResult.addRangeResults = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.KnowledgeBaseResult.addResults($this, item); });
            };
            KnowledgeBaseResult.removeResults = function ($this, item) {
                if ($this == null || $this.Results == null || $this.Results.indexOf(item) === -1)
                    return;
                var _index = $this.Results.indexOf(item);
                $this.Results.splice(_index, 1);
            };
            KnowledgeBaseResult.clearResults = function ($this) {
                $this.Results = null;
            };
            return KnowledgeBaseResult;
        }());
        BO.KnowledgeBaseResult = KnowledgeBaseResult;
        var KnowledgeBaseResults = /** @class */ (function () {
            function KnowledgeBaseResults() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.KnowledgeBaseResults";
                this.Domain = DigicircMatchmaking.BO;
                this.Data = [];
                this['_key'] = this.KnowledgeBaseResultsKey = 0;
            }
            KnowledgeBaseResults.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.KnowledgeBaseResultsKey == null || $this.KnowledgeBaseResultsKey == 0;
            };
            KnowledgeBaseResults.setData = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Data == null)
                    $this.Data = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Data.length > 0) {
                    DigicircMatchmaking.BO.KnowledgeBaseResults.removeData($this, $this.Data[0]);
                }
                DigicircMatchmaking.BO.KnowledgeBaseResults.addManyData($this, copyItems);
            };
            KnowledgeBaseResults.addManyData = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.KnowledgeBaseResults.addData($this, items[i]);
                }
            };
            KnowledgeBaseResults.addData = function ($this, item) {
                if ($this.Data == null)
                    $this.Data = [];
                if (item == null || $this.Data.indexOf(item) > -1)
                    return;
                $this.Data.push(item);
            };
            KnowledgeBaseResults.addRangeData = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.KnowledgeBaseResults.addData($this, item); });
            };
            KnowledgeBaseResults.removeData = function ($this, item) {
                if ($this == null || $this.Data == null || $this.Data.indexOf(item) === -1)
                    return;
                var _index = $this.Data.indexOf(item);
                $this.Data.splice(_index, 1);
            };
            KnowledgeBaseResults.clearData = function ($this) {
                $this.Data = null;
            };
            return KnowledgeBaseResults;
        }());
        BO.KnowledgeBaseResults = KnowledgeBaseResults;
        var KnowledgeBaseData = /** @class */ (function () {
            function KnowledgeBaseData() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.KnowledgeBaseData";
                this.Domain = DigicircMatchmaking.BO;
                this.Row = [];
                this.Meta = [];
                this['_key'] = this.KnowledgeBaseDataKey = 0;
            }
            KnowledgeBaseData.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.KnowledgeBaseDataKey == null || $this.KnowledgeBaseDataKey == 0;
            };
            KnowledgeBaseData.setRow = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Row == null)
                    $this.Row = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Row.length > 0) {
                    DigicircMatchmaking.BO.KnowledgeBaseData.removeRow($this, $this.Row[0]);
                }
                DigicircMatchmaking.BO.KnowledgeBaseData.addManyRow($this, copyItems);
            };
            KnowledgeBaseData.addManyRow = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.KnowledgeBaseData.addRow($this, items[i]);
                }
            };
            KnowledgeBaseData.addRow = function ($this, item) {
                if ($this.Row == null)
                    $this.Row = [];
                if (item == null || $this.Row.indexOf(item) > -1)
                    return;
                $this.Row.push(item);
            };
            KnowledgeBaseData.addRangeRow = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.KnowledgeBaseData.addRow($this, item); });
            };
            KnowledgeBaseData.removeRow = function ($this, item) {
                if ($this == null || $this.Row == null || $this.Row.indexOf(item) === -1)
                    return;
                var _index = $this.Row.indexOf(item);
                $this.Row.splice(_index, 1);
            };
            KnowledgeBaseData.clearRow = function ($this) {
                $this.Row = null;
            };
            KnowledgeBaseData.setMeta = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Meta == null)
                    $this.Meta = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Meta.length > 0) {
                    DigicircMatchmaking.BO.KnowledgeBaseData.removeMeta($this, $this.Meta[0]);
                }
                DigicircMatchmaking.BO.KnowledgeBaseData.addManyMeta($this, copyItems);
            };
            KnowledgeBaseData.addManyMeta = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.KnowledgeBaseData.addMeta($this, items[i]);
                }
            };
            KnowledgeBaseData.addMeta = function ($this, item) {
                if ($this.Meta == null)
                    $this.Meta = [];
                if (item == null || $this.Meta.indexOf(item) > -1)
                    return;
                $this.Meta.push(item);
            };
            KnowledgeBaseData.addRangeMeta = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.KnowledgeBaseData.addMeta($this, item); });
            };
            KnowledgeBaseData.removeMeta = function ($this, item) {
                if ($this == null || $this.Meta == null || $this.Meta.indexOf(item) === -1)
                    return;
                var _index = $this.Meta.indexOf(item);
                $this.Meta.splice(_index, 1);
            };
            KnowledgeBaseData.clearMeta = function ($this) {
                $this.Meta = null;
            };
            return KnowledgeBaseData;
        }());
        BO.KnowledgeBaseData = KnowledgeBaseData;
        var KnowledgeBaseRow = /** @class */ (function () {
            function KnowledgeBaseRow() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.KnowledgeBaseRow";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.KnowledgeBaseRowKey = 0;
            }
            KnowledgeBaseRow.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.KnowledgeBaseRowKey == null || $this.KnowledgeBaseRowKey == 0;
            };
            return KnowledgeBaseRow;
        }());
        BO.KnowledgeBaseRow = KnowledgeBaseRow;
        var KnowledgeBaseMeta = /** @class */ (function () {
            function KnowledgeBaseMeta() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.KnowledgeBaseMeta";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.KnowledgeBaseMetaKey = 0;
            }
            KnowledgeBaseMeta.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.KnowledgeBaseMetaKey == null || $this.KnowledgeBaseMetaKey == 0;
            };
            return KnowledgeBaseMeta;
        }());
        BO.KnowledgeBaseMeta = KnowledgeBaseMeta;
        var Material = /** @class */ (function () {
            function Material() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Material";
                this.Domain = DigicircMatchmaking.BO;
                this.ConvertedBy = [];
                this.ConvertBy = [];
                this['_key'] = this.Id = 0;
            }
            Material.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            Material.setConvertedBy = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.ConvertedBy == null)
                    $this.ConvertedBy = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.ConvertedBy.length > 0) {
                    DigicircMatchmaking.BO.Material.removeConvertedBy($this, $this.ConvertedBy[0]);
                }
                DigicircMatchmaking.BO.Material.addManyConvertedBy($this, copyItems);
            };
            Material.addManyConvertedBy = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.Material.addConvertedBy($this, items[i]);
                }
            };
            Material.addConvertedBy = function ($this, item) {
                if ($this.ConvertedBy == null)
                    $this.ConvertedBy = [];
                if (item == null || $this.ConvertedBy.indexOf(item) > -1)
                    return;
                $this.ConvertedBy.push(item);
                Process.addProduct(item, $this);
            };
            Material.addRangeConvertedBy = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.Material.addConvertedBy($this, item); });
            };
            Material.removeConvertedBy = function ($this, item) {
                if ($this == null || $this.ConvertedBy == null || $this.ConvertedBy.indexOf(item) === -1)
                    return;
                var _index = $this.ConvertedBy.indexOf(item);
                $this.ConvertedBy.splice(_index, 1);
                Process.removeProduct(item, $this);
            };
            Material.clearConvertedBy = function ($this) {
                $this.ConvertedBy = null;
            };
            Material.setConvertBy = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.ConvertBy == null)
                    $this.ConvertBy = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.ConvertBy.length > 0) {
                    DigicircMatchmaking.BO.Material.removeConvertBy($this, $this.ConvertBy[0]);
                }
                DigicircMatchmaking.BO.Material.addManyConvertBy($this, copyItems);
            };
            Material.addManyConvertBy = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.Material.addConvertBy($this, items[i]);
                }
            };
            Material.addConvertBy = function ($this, item) {
                if ($this.ConvertBy == null)
                    $this.ConvertBy = [];
                if (item == null || $this.ConvertBy.indexOf(item) > -1)
                    return;
                $this.ConvertBy.push(item);
                Process.addSource(item, $this);
            };
            Material.addRangeConvertBy = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.Material.addConvertBy($this, item); });
            };
            Material.removeConvertBy = function ($this, item) {
                if ($this == null || $this.ConvertBy == null || $this.ConvertBy.indexOf(item) === -1)
                    return;
                var _index = $this.ConvertBy.indexOf(item);
                $this.ConvertBy.splice(_index, 1);
                Process.removeSource(item, $this);
            };
            Material.clearConvertBy = function ($this) {
                $this.ConvertBy = null;
            };
            Material.setRequestedBy = function ($this, value) {
                var oldValue = $this.RequestedBy;
                $this.RequestedBy = value;
                if (value != null) {
                }
            };
            return Material;
        }());
        BO.Material = Material;
        var Process = /** @class */ (function () {
            function Process() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Process";
                this.Domain = DigicircMatchmaking.BO;
                this.Product = [];
                this.Source = [];
                this['_key'] = this.Id = 0;
            }
            Process.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            Process.setProduct = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Product == null)
                    $this.Product = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Product.length > 0) {
                    DigicircMatchmaking.BO.Process.removeProduct($this, $this.Product[0]);
                }
                DigicircMatchmaking.BO.Process.addManyProduct($this, copyItems);
            };
            Process.addManyProduct = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.Process.addProduct($this, items[i]);
                }
            };
            Process.addProduct = function ($this, item) {
                if ($this.Product == null)
                    $this.Product = [];
                if (item == null || $this.Product.indexOf(item) > -1)
                    return;
                $this.Product.push(item);
                Material.addConvertedBy(item, $this);
            };
            Process.addRangeProduct = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.Process.addProduct($this, item); });
            };
            Process.removeProduct = function ($this, item) {
                if ($this == null || $this.Product == null || $this.Product.indexOf(item) === -1)
                    return;
                var _index = $this.Product.indexOf(item);
                $this.Product.splice(_index, 1);
                Material.removeConvertedBy(item, $this);
            };
            Process.clearProduct = function ($this) {
                $this.Product = null;
            };
            Process.setSource = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Source == null)
                    $this.Source = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Source.length > 0) {
                    DigicircMatchmaking.BO.Process.removeSource($this, $this.Source[0]);
                }
                DigicircMatchmaking.BO.Process.addManySource($this, copyItems);
            };
            Process.addManySource = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.Process.addSource($this, items[i]);
                }
            };
            Process.addSource = function ($this, item) {
                if ($this.Source == null)
                    $this.Source = [];
                if (item == null || $this.Source.indexOf(item) > -1)
                    return;
                $this.Source.push(item);
                Material.addConvertBy(item, $this);
            };
            Process.addRangeSource = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.Process.addSource($this, item); });
            };
            Process.removeSource = function ($this, item) {
                if ($this == null || $this.Source == null || $this.Source.indexOf(item) === -1)
                    return;
                var _index = $this.Source.indexOf(item);
                $this.Source.splice(_index, 1);
                Material.removeConvertBy(item, $this);
            };
            Process.clearSource = function ($this) {
                $this.Source = null;
            };
            return Process;
        }());
        BO.Process = Process;
        var MaterialBackend = /** @class */ (function () {
            function MaterialBackend() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.MaterialBackend";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.MaterialBackendKey = 0;
            }
            MaterialBackend.DeleteMaterialStatement = function (material) {
                var stat = new DigicircMatchmaking.BO.MaterialCreateStatements();
                stat.Statement = "MATCH (n:Material {Id: $props.Id}) DETACH DELETE n";
                DigicircMatchmaking.BO.MaterialCreateStatements.setParameters(stat, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.MaterialCreateParameters(); }, null));
                DigicircMatchmaking.BO.MaterialCreateParameters.setProps(stat.Parameters, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.MaterialCreateProps(); }, null));
                stat.Parameters.Props.Id = Joove.Common.nullSafe(function () { return material.Id; }, 0);
                return stat;
            };
            MaterialBackend.UpdateMaterialStatement = function (material) {
                var stat = new DigicircMatchmaking.BO.MaterialCreateStatements();
                stat.Statement = "MATCH (m:Material {Id: $props.Id}) SET m = $props RETURN m";
                DigicircMatchmaking.BO.MaterialCreateStatements.setParameters(stat, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.MaterialCreateParameters(); }, null));
                DigicircMatchmaking.BO.MaterialCreateParameters.setProps(stat.Parameters, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.MaterialCreateProps(); }, null));
                stat.Parameters.Props.Id = Joove.Common.nullSafe(function () { return material.Id; }, 0);
                stat.Parameters.Props.Name = Joove.Common.nullSafe(function () { return material.Name; }, "");
                stat.Parameters.Props.Decription = Joove.Common.nullSafe(function () { return material.Description; }, "");
                stat.Parameters.Props.HsSpecific = Joove.Common.nullSafe(function () { return material.HsSpecific; }, "");
                return stat;
            };
            MaterialBackend.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.MaterialBackendKey == null || $this.MaterialBackendKey == 0;
            };
            return MaterialBackend;
        }());
        BO.MaterialBackend = MaterialBackend;
        var ProcessBackend = /** @class */ (function () {
            function ProcessBackend() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ProcessBackend";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ProcessBackendKey = 0;
            }
            ProcessBackend.CreateConvertByStatement = function (process, product) {
                var stat = new DigicircMatchmaking.BO.ProcessCreateStatements();
                stat.Statement = "MATCH (m:Material {Id: $props.SourceId}) MATCH (p:Process {Id: $props.Id}) MERGE (m)-[rel:CONVERT_BY]->(p) RETURN m";
                DigicircMatchmaking.BO.ProcessCreateStatements.setParameters(stat, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ProcessCreateParameters(); }, null));
                DigicircMatchmaking.BO.ProcessCreateParameters.setProps(stat.Parameters, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ProcessCreateProps(); }, null));
                stat.Parameters.Props.Id = Joove.Common.nullSafe(function () { return process.Id; }, 0);
                stat.Parameters.Props.SourceId = Joove.Common.nullSafe(function () { return product.Id; }, 0);
                return stat;
            };
            ProcessBackend.CreateConvertedByStatement = function (process, product) {
                var stat = new DigicircMatchmaking.BO.ProcessCreateStatements();
                stat.Statement = "MATCH (m:Material {Id: $props.ProductId}) MATCH (p:Process {Id: $props.Id}) MERGE (p)-[rel:CONVERTED_BY]->(m) RETURN m";
                DigicircMatchmaking.BO.ProcessCreateStatements.setParameters(stat, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ProcessCreateParameters(); }, null));
                DigicircMatchmaking.BO.ProcessCreateParameters.setProps(stat.Parameters, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ProcessCreateProps(); }, null));
                stat.Parameters.Props.Id = Joove.Common.nullSafe(function () { return process.Id; }, 0);
                stat.Parameters.Props.ProductId = Joove.Common.nullSafe(function () { return product.Id; }, 0);
                return stat;
            };
            ProcessBackend.CreateProcessStatement = function (process) {
                var stat = new DigicircMatchmaking.BO.ProcessCreateStatements();
                stat.Statement = "CREATE (n:Process $props) RETURN n";
                DigicircMatchmaking.BO.ProcessCreateStatements.setParameters(stat, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ProcessCreateParameters(); }, null));
                DigicircMatchmaking.BO.ProcessCreateParameters.setProps(stat.Parameters, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ProcessCreateProps(); }, null));
                stat.Parameters.Props.Id = Joove.Common.nullSafe(function () { return process.Id; }, 0);
                stat.Parameters.Props.Name = Joove.Common.nullSafe(function () { return process.Name; }, "");
                stat.Parameters.Props.Notes = Joove.Common.nullSafe(function () { return process.Notes; }, "");
                stat.Parameters.Props.Ref = Joove.Common.nullSafe(function () { return process.Ref; }, "");
                return stat;
            };
            ProcessBackend.DeleteProcessStatement = function (process) {
                var stat = new DigicircMatchmaking.BO.ProcessCreateStatements();
                stat.Statement = "MATCH (n:Process {Id: $props.Id}) DETACH DELETE n";
                DigicircMatchmaking.BO.ProcessCreateStatements.setParameters(stat, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ProcessCreateParameters(); }, null));
                DigicircMatchmaking.BO.ProcessCreateParameters.setProps(stat.Parameters, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ProcessCreateProps(); }, null));
                stat.Parameters.Props.Id = Joove.Common.nullSafe(function () { return process.Id; }, 0);
                return stat;
            };
            ProcessBackend.UpdateProcessStatement = function (process) {
                var stat = new DigicircMatchmaking.BO.ProcessCreateStatements();
                stat.Statement = "MATCH (m:Process {Id: $props.Id}) SET m = $props RETURN m";
                DigicircMatchmaking.BO.ProcessCreateStatements.setParameters(stat, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ProcessCreateParameters(); }, null));
                DigicircMatchmaking.BO.ProcessCreateParameters.setProps(stat.Parameters, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ProcessCreateProps(); }, null));
                stat.Parameters.Props.Id = Joove.Common.nullSafe(function () { return process.Id; }, 0);
                stat.Parameters.Props.Name = Joove.Common.nullSafe(function () { return process.Name; }, "");
                stat.Parameters.Props.Notes = Joove.Common.nullSafe(function () { return process.Notes; }, "");
                stat.Parameters.Props.Ref = Joove.Common.nullSafe(function () { return process.Ref; }, "");
                return stat;
            };
            ProcessBackend.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ProcessBackendKey == null || $this.ProcessBackendKey == 0;
            };
            return ProcessBackend;
        }());
        BO.ProcessBackend = ProcessBackend;
        var ActorBackend = /** @class */ (function () {
            function ActorBackend() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ActorBackend";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ActorBackendKey = 0;
            }
            ActorBackend.PrepareDeleteKnowledgeActor = function (actor) {
                var stat = new DigicircMatchmaking.BO.ActorCreateStatements();
                stat.Statement = "MATCH (n:Actor {Id: $props.Id}) DETACH DELETE n";
                DigicircMatchmaking.BO.ActorCreateStatements.setParameters(stat, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ActorCreateParameters(); }, null));
                DigicircMatchmaking.BO.ActorCreateParameters.setProps(stat.Parameters, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ActorCreateProps(); }, null));
                stat.Parameters.Props.Id = Joove.Common.nullSafe(function () { return actor.Id; }, 0);
                stat.Parameters.Props.Name = Joove.Common.nullSafe(function () { return actor.Name; }, "");
                return stat;
            };
            ActorBackend.PrepareUpdateKnowledgeActor = function (actor) {
                var stat = new DigicircMatchmaking.BO.ActorCreateStatements();
                stat.Statement = "MATCH (n:Actor {Id: $props.Id}) SET m = $props RETURN m";
                DigicircMatchmaking.BO.ActorCreateStatements.setParameters(stat, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ActorCreateParameters(); }, null));
                DigicircMatchmaking.BO.ActorCreateParameters.setProps(stat.Parameters, Joove.Common.nullSafe(function () { return new DigicircMatchmaking.BO.ActorCreateProps(); }, null));
                stat.Parameters.Props.Id = Joove.Common.nullSafe(function () { return actor.Id; }, 0);
                stat.Parameters.Props.Name = Joove.Common.nullSafe(function () { return actor.Name; }, "");
                return stat;
            };
            ActorBackend.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ActorBackendKey == null || $this.ActorBackendKey == 0;
            };
            return ActorBackend;
        }());
        BO.ActorBackend = ActorBackend;
        var ProcessCreateRequest = /** @class */ (function () {
            function ProcessCreateRequest() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ProcessCreateRequest";
                this.Domain = DigicircMatchmaking.BO;
                this.Statements = [];
                this['_key'] = this.ProcessCreateRequestKey = 0;
            }
            ProcessCreateRequest.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ProcessCreateRequestKey == null || $this.ProcessCreateRequestKey == 0;
            };
            ProcessCreateRequest.setStatements = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Statements == null)
                    $this.Statements = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Statements.length > 0) {
                    DigicircMatchmaking.BO.ProcessCreateRequest.removeStatements($this, $this.Statements[0]);
                }
                DigicircMatchmaking.BO.ProcessCreateRequest.addManyStatements($this, copyItems);
            };
            ProcessCreateRequest.addManyStatements = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ProcessCreateRequest.addStatements($this, items[i]);
                }
            };
            ProcessCreateRequest.addStatements = function ($this, item) {
                if ($this.Statements == null)
                    $this.Statements = [];
                if (item == null || $this.Statements.indexOf(item) > -1)
                    return;
                $this.Statements.push(item);
            };
            ProcessCreateRequest.addRangeStatements = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ProcessCreateRequest.addStatements($this, item); });
            };
            ProcessCreateRequest.removeStatements = function ($this, item) {
                if ($this == null || $this.Statements == null || $this.Statements.indexOf(item) === -1)
                    return;
                var _index = $this.Statements.indexOf(item);
                $this.Statements.splice(_index, 1);
            };
            ProcessCreateRequest.clearStatements = function ($this) {
                $this.Statements = null;
            };
            return ProcessCreateRequest;
        }());
        BO.ProcessCreateRequest = ProcessCreateRequest;
        var ProcessCreateStatements = /** @class */ (function () {
            function ProcessCreateStatements() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ProcessCreateStatements";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ProcessCreateStatementsKey = 0;
            }
            ProcessCreateStatements.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ProcessCreateStatementsKey == null || $this.ProcessCreateStatementsKey == 0;
            };
            ProcessCreateStatements.setParameters = function ($this, value) {
                var oldValue = $this.Parameters;
                $this.Parameters = value;
                if (value != null) {
                }
            };
            return ProcessCreateStatements;
        }());
        BO.ProcessCreateStatements = ProcessCreateStatements;
        var ProcessCreateParameters = /** @class */ (function () {
            function ProcessCreateParameters() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ProcessCreateParameters";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ProcessCreateParametersKey = 0;
            }
            ProcessCreateParameters.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ProcessCreateParametersKey == null || $this.ProcessCreateParametersKey == 0;
            };
            ProcessCreateParameters.setProps = function ($this, value) {
                var oldValue = $this.Props;
                $this.Props = value;
                if (value != null) {
                }
            };
            return ProcessCreateParameters;
        }());
        BO.ProcessCreateParameters = ProcessCreateParameters;
        var ProcessCreateProps = /** @class */ (function () {
            function ProcessCreateProps() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ProcessCreateProps";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ProcessCreatePropsKey = 0;
            }
            ProcessCreateProps.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ProcessCreatePropsKey == null || $this.ProcessCreatePropsKey == 0;
            };
            return ProcessCreateProps;
        }());
        BO.ProcessCreateProps = ProcessCreateProps;
        var Product = /** @class */ (function () {
            function Product() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Product";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            Product.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            Product.setResource = function ($this, value) {
                var oldValue = $this.Resource;
                $this.Resource = value;
                if (value != null) {
                }
            };
            Product.setType = function ($this, value) {
                var oldValue = $this.Type;
                $this.Type = value;
                if (value != null) {
                }
            };
            Product.setSite = function ($this, value) {
                var oldValue = $this.Site;
                $this.Site = value;
                if (value != null) {
                }
            };
            Product.setUnitOfMeasurement = function ($this, value) {
                var oldValue = $this.UnitOfMeasurement;
                $this.UnitOfMeasurement = value;
                if (value != null) {
                }
            };
            Product.setPhysicalForm = function ($this, value) {
                var oldValue = $this.PhysicalForm;
                $this.PhysicalForm = value;
                if (value != null) {
                }
            };
            return Product;
        }());
        BO.Product = Product;
        var ProductType = /** @class */ (function () {
            function ProductType() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ProductType";
                this.Domain = DigicircMatchmaking.BO;
                this.SybTypes = [];
                this['_key'] = this.Id = 0;
            }
            ProductType.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            ProductType.setSybTypes = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.SybTypes == null)
                    $this.SybTypes = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.SybTypes.length > 0) {
                    DigicircMatchmaking.BO.ProductType.removeSybTypes($this, $this.SybTypes[0]);
                }
                DigicircMatchmaking.BO.ProductType.addManySybTypes($this, copyItems);
            };
            ProductType.addManySybTypes = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ProductType.addSybTypes($this, items[i]);
                }
            };
            ProductType.addSybTypes = function ($this, item) {
                if ($this.SybTypes == null)
                    $this.SybTypes = [];
                if (item == null || $this.SybTypes.indexOf(item) > -1)
                    return;
                $this.SybTypes.push(item);
            };
            ProductType.addRangeSybTypes = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ProductType.addSybTypes($this, item); });
            };
            ProductType.removeSybTypes = function ($this, item) {
                if ($this == null || $this.SybTypes == null || $this.SybTypes.indexOf(item) === -1)
                    return;
                var _index = $this.SybTypes.indexOf(item);
                $this.SybTypes.splice(_index, 1);
            };
            ProductType.clearSybTypes = function ($this) {
                $this.SybTypes = null;
            };
            return ProductType;
        }());
        BO.ProductType = ProductType;
        var Response = /** @class */ (function () {
            function Response() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.Response";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ResponseKey = 0;
            }
            Response.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ResponseKey == null || $this.ResponseKey == 0;
            };
            return Response;
        }());
        BO.Response = Response;
        var ActorCreateProps = /** @class */ (function () {
            function ActorCreateProps() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ActorCreateProps";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ActorCreatePropsKey = 0;
            }
            ActorCreateProps.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ActorCreatePropsKey == null || $this.ActorCreatePropsKey == 0;
            };
            return ActorCreateProps;
        }());
        BO.ActorCreateProps = ActorCreateProps;
        var ActorCreateParameters = /** @class */ (function () {
            function ActorCreateParameters() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ActorCreateParameters";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ActorCreateParametersKey = 0;
            }
            ActorCreateParameters.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ActorCreateParametersKey == null || $this.ActorCreateParametersKey == 0;
            };
            ActorCreateParameters.setProps = function ($this, value) {
                var oldValue = $this.Props;
                $this.Props = value;
                if (value != null) {
                }
            };
            return ActorCreateParameters;
        }());
        BO.ActorCreateParameters = ActorCreateParameters;
        var ActorCreateStatements = /** @class */ (function () {
            function ActorCreateStatements() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ActorCreateStatements";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ActorCreateStatementsKey = 0;
            }
            ActorCreateStatements.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ActorCreateStatementsKey == null || $this.ActorCreateStatementsKey == 0;
            };
            ActorCreateStatements.setParameters = function ($this, value) {
                var oldValue = $this.Parameters;
                $this.Parameters = value;
                if (value != null) {
                }
            };
            return ActorCreateStatements;
        }());
        BO.ActorCreateStatements = ActorCreateStatements;
        var ActorCreateRequest = /** @class */ (function () {
            function ActorCreateRequest() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ActorCreateRequest";
                this.Domain = DigicircMatchmaking.BO;
                this.Statements = [];
                this['_key'] = this.ActorCreateRequestKey = 0;
            }
            ActorCreateRequest.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ActorCreateRequestKey == null || $this.ActorCreateRequestKey == 0;
            };
            ActorCreateRequest.setStatements = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Statements == null)
                    $this.Statements = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Statements.length > 0) {
                    DigicircMatchmaking.BO.ActorCreateRequest.removeStatements($this, $this.Statements[0]);
                }
                DigicircMatchmaking.BO.ActorCreateRequest.addManyStatements($this, copyItems);
            };
            ActorCreateRequest.addManyStatements = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ActorCreateRequest.addStatements($this, items[i]);
                }
            };
            ActorCreateRequest.addStatements = function ($this, item) {
                if ($this.Statements == null)
                    $this.Statements = [];
                if (item == null || $this.Statements.indexOf(item) > -1)
                    return;
                $this.Statements.push(item);
            };
            ActorCreateRequest.addRangeStatements = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ActorCreateRequest.addStatements($this, item); });
            };
            ActorCreateRequest.removeStatements = function ($this, item) {
                if ($this == null || $this.Statements == null || $this.Statements.indexOf(item) === -1)
                    return;
                var _index = $this.Statements.indexOf(item);
                $this.Statements.splice(_index, 1);
            };
            ActorCreateRequest.clearStatements = function ($this) {
                $this.Statements = null;
            };
            return ActorCreateRequest;
        }());
        BO.ActorCreateRequest = ActorCreateRequest;
        var ConnectActorMaterialRequest = /** @class */ (function () {
            function ConnectActorMaterialRequest() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ConnectActorMaterialRequest";
                this.Domain = DigicircMatchmaking.BO;
                this.Statements = [];
                this['_key'] = this.ConnectActorMaterialRequestKey = 0;
            }
            ConnectActorMaterialRequest.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ConnectActorMaterialRequestKey == null || $this.ConnectActorMaterialRequestKey == 0;
            };
            ConnectActorMaterialRequest.setStatements = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Statements == null)
                    $this.Statements = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Statements.length > 0) {
                    DigicircMatchmaking.BO.ConnectActorMaterialRequest.removeStatements($this, $this.Statements[0]);
                }
                DigicircMatchmaking.BO.ConnectActorMaterialRequest.addManyStatements($this, copyItems);
            };
            ConnectActorMaterialRequest.addManyStatements = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ConnectActorMaterialRequest.addStatements($this, items[i]);
                }
            };
            ConnectActorMaterialRequest.addStatements = function ($this, item) {
                if ($this.Statements == null)
                    $this.Statements = [];
                if (item == null || $this.Statements.indexOf(item) > -1)
                    return;
                $this.Statements.push(item);
            };
            ConnectActorMaterialRequest.addRangeStatements = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ConnectActorMaterialRequest.addStatements($this, item); });
            };
            ConnectActorMaterialRequest.removeStatements = function ($this, item) {
                if ($this == null || $this.Statements == null || $this.Statements.indexOf(item) === -1)
                    return;
                var _index = $this.Statements.indexOf(item);
                $this.Statements.splice(_index, 1);
            };
            ConnectActorMaterialRequest.clearStatements = function ($this) {
                $this.Statements = null;
            };
            return ConnectActorMaterialRequest;
        }());
        BO.ConnectActorMaterialRequest = ConnectActorMaterialRequest;
        var ConnectActorMaterialStatements = /** @class */ (function () {
            function ConnectActorMaterialStatements() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ConnectActorMaterialStatements";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ConnectActorMaterialStatementsKey = 0;
            }
            ConnectActorMaterialStatements.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ConnectActorMaterialStatementsKey == null || $this.ConnectActorMaterialStatementsKey == 0;
            };
            ConnectActorMaterialStatements.setParameters = function ($this, value) {
                var oldValue = $this.Parameters;
                $this.Parameters = value;
                if (value != null) {
                }
            };
            return ConnectActorMaterialStatements;
        }());
        BO.ConnectActorMaterialStatements = ConnectActorMaterialStatements;
        var ConnectActorMaterialParameters = /** @class */ (function () {
            function ConnectActorMaterialParameters() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ConnectActorMaterialParameters";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ConnectActorMaterialParametersKey = 0;
            }
            ConnectActorMaterialParameters.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ConnectActorMaterialParametersKey == null || $this.ConnectActorMaterialParametersKey == 0;
            };
            ConnectActorMaterialParameters.setProps = function ($this, value) {
                var oldValue = $this.Props;
                $this.Props = value;
                if (value != null) {
                }
            };
            return ConnectActorMaterialParameters;
        }());
        BO.ConnectActorMaterialParameters = ConnectActorMaterialParameters;
        var ConnectActorMaterialProps = /** @class */ (function () {
            function ConnectActorMaterialProps() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ConnectActorMaterialProps";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ConnectActorMaterialPropsKey = 0;
            }
            ConnectActorMaterialProps.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ConnectActorMaterialPropsKey == null || $this.ConnectActorMaterialPropsKey == 0;
            };
            return ConnectActorMaterialProps;
        }());
        BO.ConnectActorMaterialProps = ConnectActorMaterialProps;
        var ElasticDoc = /** @class */ (function () {
            function ElasticDoc() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ElasticDoc";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ElasticDocKey = 0;
            }
            ElasticDoc.CreateActorDoc = function (actor) {
                var actorDoc = new Object();
                actorDoc.ID = Joove.Common.nullSafe(function () { return actor.Id; }, 0);
                actorDoc.Name = Joove.Common.nullSafe(function () { return actor.Name; }, "");
                actorDoc.Description = Joove.Common.nullSafe(function () { return actor.Description; }, "");
                actorDoc.Tags = Joove.Common.nullSafe(function () { return actor.Keywords; }, "");
                if ((Joove.Common.nullSafe(function () { return actor.Address; }, null) != null && Joove.Common.nullSafe(function () { return actor.Address.Country; }, null) != null)) {
                    actorDoc.Country = Joove.Common.nullSafe(function () { return actor.Address.Country.Name; }, "");
                }
                if ((CLMS.Framework.Number.NotEqual(function () { return actor.SectorTypes.length; }, function () { return 0; }))) {
                    actorDoc.Sector = Joove.Common.nullSafe(function () { return actor.SectorTypes[0].Value; }, "");
                }
                return actorDoc;
            };
            ElasticDoc.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ElasticDocKey == null || $this.ElasticDocKey == 0;
            };
            return ElasticDoc;
        }());
        BO.ElasticDoc = ElasticDoc;
        var ElasticConsumer = /** @class */ (function () {
            function ElasticConsumer() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.ElasticConsumer";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.ElasticConsumerKey = 0;
            }
            ElasticConsumer.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.ElasticConsumerKey == null || $this.ElasticConsumerKey == 0;
            };
            return ElasticConsumer;
        }());
        BO.ElasticConsumer = ElasticConsumer;
        var SearchResponse = /** @class */ (function () {
            function SearchResponse() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.SearchResponse";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            SearchResponse.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return SearchResponse;
        }());
        BO.SearchResponse = SearchResponse;
        var ApplicationUserAction = /** @class */ (function () {
            function ApplicationUserAction() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ApplicationUserAction";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            ApplicationUserAction.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return ApplicationUserAction;
        }());
        BO.ApplicationUserAction = ApplicationUserAction;
        var ApplicationUserExternalProfile = /** @class */ (function () {
            function ApplicationUserExternalProfile() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ApplicationUserExternalProfile";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            ApplicationUserExternalProfile.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return ApplicationUserExternalProfile;
        }());
        BO.ApplicationUserExternalProfile = ApplicationUserExternalProfile;
        var ApplicationSetting = /** @class */ (function () {
            function ApplicationSetting() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ApplicationSetting";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            ApplicationSetting.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return ApplicationSetting;
        }());
        BO.ApplicationSetting = ApplicationSetting;
        var ApplicationUser = /** @class */ (function () {
            function ApplicationUser() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ApplicationUser";
                this.Domain = DigicircMatchmaking.BO;
                this.Permissions = [];
                this.Roles = [];
                this.Clients = [];
                this.Logins = [];
                this.Claims = [];
                this['_key'] = this.UserName = "";
            }
            ApplicationUser.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.UserName == null || $this.UserName == "";
            };
            ApplicationUser.setPermissions = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Permissions == null)
                    $this.Permissions = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Permissions.length > 0) {
                    DigicircMatchmaking.BO.ApplicationUser.removePermissions($this, $this.Permissions[0]);
                }
                DigicircMatchmaking.BO.ApplicationUser.addManyPermissions($this, copyItems);
            };
            ApplicationUser.addManyPermissions = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ApplicationUser.addPermissions($this, items[i]);
                }
            };
            ApplicationUser.addPermissions = function ($this, item) {
                if ($this.Permissions == null)
                    $this.Permissions = [];
                if (item == null || $this.Permissions.indexOf(item) > -1)
                    return;
                $this.Permissions.push(item);
                ApplicationPermission.addUsers(item, $this);
            };
            ApplicationUser.addRangePermissions = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ApplicationUser.addPermissions($this, item); });
            };
            ApplicationUser.removePermissions = function ($this, item) {
                if ($this == null || $this.Permissions == null || $this.Permissions.indexOf(item) === -1)
                    return;
                var _index = $this.Permissions.indexOf(item);
                $this.Permissions.splice(_index, 1);
                ApplicationPermission.removeUsers(item, $this);
            };
            ApplicationUser.clearPermissions = function ($this) {
                $this.Permissions = null;
            };
            ApplicationUser.setRoles = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Roles == null)
                    $this.Roles = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Roles.length > 0) {
                    DigicircMatchmaking.BO.ApplicationUser.removeRoles($this, $this.Roles[0]);
                }
                DigicircMatchmaking.BO.ApplicationUser.addManyRoles($this, copyItems);
            };
            ApplicationUser.addManyRoles = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ApplicationUser.addRoles($this, items[i]);
                }
            };
            ApplicationUser.addRoles = function ($this, item) {
                if ($this.Roles == null)
                    $this.Roles = [];
                if (item == null || $this.Roles.indexOf(item) > -1)
                    return;
                $this.Roles.push(item);
                ApplicationRole.addUsers(item, $this);
            };
            ApplicationUser.addRangeRoles = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ApplicationUser.addRoles($this, item); });
            };
            ApplicationUser.removeRoles = function ($this, item) {
                if ($this == null || $this.Roles == null || $this.Roles.indexOf(item) === -1)
                    return;
                var _index = $this.Roles.indexOf(item);
                $this.Roles.splice(_index, 1);
                ApplicationRole.removeUsers(item, $this);
            };
            ApplicationUser.clearRoles = function ($this) {
                $this.Roles = null;
            };
            ApplicationUser.setClients = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Clients == null)
                    $this.Clients = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Clients.length > 0) {
                    DigicircMatchmaking.BO.ApplicationUser.removeClients($this, $this.Clients[0]);
                }
                DigicircMatchmaking.BO.ApplicationUser.addManyClients($this, copyItems);
            };
            ApplicationUser.addManyClients = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ApplicationUser.addClients($this, items[i]);
                }
            };
            ApplicationUser.addClients = function ($this, item) {
                if ($this.Clients == null)
                    $this.Clients = [];
                if (item == null || $this.Clients.indexOf(item) > -1)
                    return;
                $this.Clients.push(item);
                if (item.User != $this) {
                    DigicircMatchmaking.BO.ApplicationClient.setUser(item, $this);
                }
            };
            ApplicationUser.addRangeClients = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ApplicationUser.addClients($this, item); });
            };
            ApplicationUser.removeClients = function ($this, item) {
                if ($this == null || $this.Clients == null || $this.Clients.indexOf(item) === -1)
                    return;
                var _index = $this.Clients.indexOf(item);
                $this.Clients.splice(_index, 1);
                item.User = null;
            };
            ApplicationUser.clearClients = function ($this) {
                $this.Clients = null;
            };
            ApplicationUser.setLogins = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Logins == null)
                    $this.Logins = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Logins.length > 0) {
                    DigicircMatchmaking.BO.ApplicationUser.removeLogins($this, $this.Logins[0]);
                }
                DigicircMatchmaking.BO.ApplicationUser.addManyLogins($this, copyItems);
            };
            ApplicationUser.addManyLogins = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ApplicationUser.addLogins($this, items[i]);
                }
            };
            ApplicationUser.addLogins = function ($this, item) {
                if ($this.Logins == null)
                    $this.Logins = [];
                if (item == null || $this.Logins.indexOf(item) > -1)
                    return;
                $this.Logins.push(item);
                if (item.User != $this) {
                    DigicircMatchmaking.BO.ApplicationUserLogin.setUser(item, $this);
                }
            };
            ApplicationUser.addRangeLogins = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ApplicationUser.addLogins($this, item); });
            };
            ApplicationUser.removeLogins = function ($this, item) {
                if ($this == null || $this.Logins == null || $this.Logins.indexOf(item) === -1)
                    return;
                var _index = $this.Logins.indexOf(item);
                $this.Logins.splice(_index, 1);
                item.User = null;
            };
            ApplicationUser.clearLogins = function ($this) {
                $this.Logins = null;
            };
            ApplicationUser.setClaims = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Claims == null)
                    $this.Claims = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Claims.length > 0) {
                    DigicircMatchmaking.BO.ApplicationUser.removeClaims($this, $this.Claims[0]);
                }
                DigicircMatchmaking.BO.ApplicationUser.addManyClaims($this, copyItems);
            };
            ApplicationUser.addManyClaims = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ApplicationUser.addClaims($this, items[i]);
                }
            };
            ApplicationUser.addClaims = function ($this, item) {
                if ($this.Claims == null)
                    $this.Claims = [];
                if (item == null || $this.Claims.indexOf(item) > -1)
                    return;
                $this.Claims.push(item);
                if (item.User != $this) {
                    DigicircMatchmaking.BO.ApplicationUserClaim.setUser(item, $this);
                }
            };
            ApplicationUser.addRangeClaims = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ApplicationUser.addClaims($this, item); });
            };
            ApplicationUser.removeClaims = function ($this, item) {
                if ($this == null || $this.Claims == null || $this.Claims.indexOf(item) === -1)
                    return;
                var _index = $this.Claims.indexOf(item);
                $this.Claims.splice(_index, 1);
                item.User = null;
            };
            ApplicationUser.clearClaims = function ($this) {
                $this.Claims = null;
            };
            ApplicationUser.setProfile = function ($this, value) {
                var oldValue = $this.Profile;
                $this.Profile = value;
                if (value != null) {
                }
            };
            return ApplicationUser;
        }());
        BO.ApplicationUser = ApplicationUser;
        var ApplicationRole = /** @class */ (function () {
            function ApplicationRole() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ApplicationRole";
                this.Domain = DigicircMatchmaking.BO;
                this.Users = [];
                this.Permissions = [];
                this['_key'] = this.Id = 0;
            }
            ApplicationRole.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            ApplicationRole.setUsers = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Users == null)
                    $this.Users = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Users.length > 0) {
                    DigicircMatchmaking.BO.ApplicationRole.removeUsers($this, $this.Users[0]);
                }
                DigicircMatchmaking.BO.ApplicationRole.addManyUsers($this, copyItems);
            };
            ApplicationRole.addManyUsers = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ApplicationRole.addUsers($this, items[i]);
                }
            };
            ApplicationRole.addUsers = function ($this, item) {
                if ($this.Users == null)
                    $this.Users = [];
                if (item == null || $this.Users.indexOf(item) > -1)
                    return;
                $this.Users.push(item);
                ApplicationUser.addRoles(item, $this);
            };
            ApplicationRole.addRangeUsers = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ApplicationRole.addUsers($this, item); });
            };
            ApplicationRole.removeUsers = function ($this, item) {
                if ($this == null || $this.Users == null || $this.Users.indexOf(item) === -1)
                    return;
                var _index = $this.Users.indexOf(item);
                $this.Users.splice(_index, 1);
                ApplicationUser.removeRoles(item, $this);
            };
            ApplicationRole.clearUsers = function ($this) {
                $this.Users = null;
            };
            ApplicationRole.setPermissions = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Permissions == null)
                    $this.Permissions = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Permissions.length > 0) {
                    DigicircMatchmaking.BO.ApplicationRole.removePermissions($this, $this.Permissions[0]);
                }
                DigicircMatchmaking.BO.ApplicationRole.addManyPermissions($this, copyItems);
            };
            ApplicationRole.addManyPermissions = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ApplicationRole.addPermissions($this, items[i]);
                }
            };
            ApplicationRole.addPermissions = function ($this, item) {
                if ($this.Permissions == null)
                    $this.Permissions = [];
                if (item == null || $this.Permissions.indexOf(item) > -1)
                    return;
                $this.Permissions.push(item);
                ApplicationPermission.addRoles(item, $this);
            };
            ApplicationRole.addRangePermissions = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ApplicationRole.addPermissions($this, item); });
            };
            ApplicationRole.removePermissions = function ($this, item) {
                if ($this == null || $this.Permissions == null || $this.Permissions.indexOf(item) === -1)
                    return;
                var _index = $this.Permissions.indexOf(item);
                $this.Permissions.splice(_index, 1);
                ApplicationPermission.removeRoles(item, $this);
            };
            ApplicationRole.clearPermissions = function ($this) {
                $this.Permissions = null;
            };
            return ApplicationRole;
        }());
        BO.ApplicationRole = ApplicationRole;
        var ApplicationOperation = /** @class */ (function () {
            function ApplicationOperation() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ApplicationOperation";
                this.Domain = DigicircMatchmaking.BO;
                this.Permissions = [];
                this['_key'] = this.Id = 0;
            }
            ApplicationOperation.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            ApplicationOperation.setPermissions = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Permissions == null)
                    $this.Permissions = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Permissions.length > 0) {
                    DigicircMatchmaking.BO.ApplicationOperation.removePermissions($this, $this.Permissions[0]);
                }
                DigicircMatchmaking.BO.ApplicationOperation.addManyPermissions($this, copyItems);
            };
            ApplicationOperation.addManyPermissions = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ApplicationOperation.addPermissions($this, items[i]);
                }
            };
            ApplicationOperation.addPermissions = function ($this, item) {
                if ($this.Permissions == null)
                    $this.Permissions = [];
                if (item == null || $this.Permissions.indexOf(item) > -1)
                    return;
                $this.Permissions.push(item);
                ApplicationPermission.addOperations(item, $this);
            };
            ApplicationOperation.addRangePermissions = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ApplicationOperation.addPermissions($this, item); });
            };
            ApplicationOperation.removePermissions = function ($this, item) {
                if ($this == null || $this.Permissions == null || $this.Permissions.indexOf(item) === -1)
                    return;
                var _index = $this.Permissions.indexOf(item);
                $this.Permissions.splice(_index, 1);
                ApplicationPermission.removeOperations(item, $this);
            };
            ApplicationOperation.clearPermissions = function ($this) {
                $this.Permissions = null;
            };
            return ApplicationOperation;
        }());
        BO.ApplicationOperation = ApplicationOperation;
        var ApplicationPermission = /** @class */ (function () {
            function ApplicationPermission() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ApplicationPermission";
                this.Domain = DigicircMatchmaking.BO;
                this.Users = [];
                this.Roles = [];
                this.Operations = [];
                this['_key'] = this.Id = 0;
            }
            ApplicationPermission.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            ApplicationPermission.setUsers = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Users == null)
                    $this.Users = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Users.length > 0) {
                    DigicircMatchmaking.BO.ApplicationPermission.removeUsers($this, $this.Users[0]);
                }
                DigicircMatchmaking.BO.ApplicationPermission.addManyUsers($this, copyItems);
            };
            ApplicationPermission.addManyUsers = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ApplicationPermission.addUsers($this, items[i]);
                }
            };
            ApplicationPermission.addUsers = function ($this, item) {
                if ($this.Users == null)
                    $this.Users = [];
                if (item == null || $this.Users.indexOf(item) > -1)
                    return;
                $this.Users.push(item);
                ApplicationUser.addPermissions(item, $this);
            };
            ApplicationPermission.addRangeUsers = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ApplicationPermission.addUsers($this, item); });
            };
            ApplicationPermission.removeUsers = function ($this, item) {
                if ($this == null || $this.Users == null || $this.Users.indexOf(item) === -1)
                    return;
                var _index = $this.Users.indexOf(item);
                $this.Users.splice(_index, 1);
                ApplicationUser.removePermissions(item, $this);
            };
            ApplicationPermission.clearUsers = function ($this) {
                $this.Users = null;
            };
            ApplicationPermission.setRoles = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Roles == null)
                    $this.Roles = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Roles.length > 0) {
                    DigicircMatchmaking.BO.ApplicationPermission.removeRoles($this, $this.Roles[0]);
                }
                DigicircMatchmaking.BO.ApplicationPermission.addManyRoles($this, copyItems);
            };
            ApplicationPermission.addManyRoles = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ApplicationPermission.addRoles($this, items[i]);
                }
            };
            ApplicationPermission.addRoles = function ($this, item) {
                if ($this.Roles == null)
                    $this.Roles = [];
                if (item == null || $this.Roles.indexOf(item) > -1)
                    return;
                $this.Roles.push(item);
                ApplicationRole.addPermissions(item, $this);
            };
            ApplicationPermission.addRangeRoles = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ApplicationPermission.addRoles($this, item); });
            };
            ApplicationPermission.removeRoles = function ($this, item) {
                if ($this == null || $this.Roles == null || $this.Roles.indexOf(item) === -1)
                    return;
                var _index = $this.Roles.indexOf(item);
                $this.Roles.splice(_index, 1);
                ApplicationRole.removePermissions(item, $this);
            };
            ApplicationPermission.clearRoles = function ($this) {
                $this.Roles = null;
            };
            ApplicationPermission.setOperations = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Operations == null)
                    $this.Operations = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Operations.length > 0) {
                    DigicircMatchmaking.BO.ApplicationPermission.removeOperations($this, $this.Operations[0]);
                }
                DigicircMatchmaking.BO.ApplicationPermission.addManyOperations($this, copyItems);
            };
            ApplicationPermission.addManyOperations = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.ApplicationPermission.addOperations($this, items[i]);
                }
            };
            ApplicationPermission.addOperations = function ($this, item) {
                if ($this.Operations == null)
                    $this.Operations = [];
                if (item == null || $this.Operations.indexOf(item) > -1)
                    return;
                $this.Operations.push(item);
                ApplicationOperation.addPermissions(item, $this);
            };
            ApplicationPermission.addRangeOperations = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.ApplicationPermission.addOperations($this, item); });
            };
            ApplicationPermission.removeOperations = function ($this, item) {
                if ($this == null || $this.Operations == null || $this.Operations.indexOf(item) === -1)
                    return;
                var _index = $this.Operations.indexOf(item);
                $this.Operations.splice(_index, 1);
                ApplicationOperation.removePermissions(item, $this);
            };
            ApplicationPermission.clearOperations = function ($this) {
                $this.Operations = null;
            };
            return ApplicationPermission;
        }());
        BO.ApplicationPermission = ApplicationPermission;
        var ApplicationClient = /** @class */ (function () {
            function ApplicationClient() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ApplicationClient";
                this.Domain = DigicircMatchmaking.BO;
                this.User = new this.Domain.ApplicationUser();
                this['_key'] = this.Id = 0;
            }
            ApplicationClient.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            ApplicationClient.setUser = function ($this, value) {
                var oldValue = $this.User;
                $this.User = value;
                if (value != null) {
                    if (oldValue != null) {
                        DigicircMatchmaking.BO.ApplicationUser.removeClients(oldValue, $this);
                    }
                    DigicircMatchmaking.BO.ApplicationUser.addClients(value, $this);
                }
            };
            return ApplicationClient;
        }());
        BO.ApplicationClient = ApplicationClient;
        var ApplicationUserLogin = /** @class */ (function () {
            function ApplicationUserLogin() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ApplicationUserLogin";
                this.Domain = DigicircMatchmaking.BO;
                this.User = new this.Domain.ApplicationUser();
                this['_key'] = this.Id = 0;
            }
            ApplicationUserLogin.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            ApplicationUserLogin.setUser = function ($this, value) {
                var oldValue = $this.User;
                $this.User = value;
                if (value != null) {
                    if (oldValue != null) {
                        DigicircMatchmaking.BO.ApplicationUser.removeLogins(oldValue, $this);
                    }
                    DigicircMatchmaking.BO.ApplicationUser.addLogins(value, $this);
                }
            };
            return ApplicationUserLogin;
        }());
        BO.ApplicationUserLogin = ApplicationUserLogin;
        var ApplicationUserClaim = /** @class */ (function () {
            function ApplicationUserClaim() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ApplicationUserClaim";
                this.Domain = DigicircMatchmaking.BO;
                this.User = new this.Domain.ApplicationUser();
                this['_key'] = this.Id = 0;
            }
            ApplicationUserClaim.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            ApplicationUserClaim.setUser = function ($this, value) {
                var oldValue = $this.User;
                $this.User = value;
                if (value != null) {
                    if (oldValue != null) {
                        DigicircMatchmaking.BO.ApplicationUser.removeClaims(oldValue, $this);
                    }
                    DigicircMatchmaking.BO.ApplicationUser.addClaims(value, $this);
                }
            };
            return ApplicationUserClaim;
        }());
        BO.ApplicationUserClaim = ApplicationUserClaim;
        var ProfileSetting = /** @class */ (function () {
            function ProfileSetting() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ProfileSetting";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            ProfileSetting.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            ProfileSetting.setParentProfile = function ($this, value) {
                var oldValue = $this.ParentProfile;
                $this.ParentProfile = value;
                if (value != null) {
                    if (oldValue != null) {
                        DigicircMatchmaking.BO.Profile.removeSettings(oldValue, $this);
                    }
                    DigicircMatchmaking.BO.Profile.addSettings(value, $this);
                }
            };
            return ProfileSetting;
        }());
        BO.ProfileSetting = ProfileSetting;
        var Profile = /** @class */ (function () {
            function Profile() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.Profile";
                this.Domain = DigicircMatchmaking.BO;
                this.Settings = [];
                this['_key'] = this.Id = 0;
            }
            Profile.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            Profile.setSettings = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Settings == null)
                    $this.Settings = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Settings.length > 0) {
                    DigicircMatchmaking.BO.Profile.removeSettings($this, $this.Settings[0]);
                }
                DigicircMatchmaking.BO.Profile.addManySettings($this, copyItems);
            };
            Profile.addManySettings = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.Profile.addSettings($this, items[i]);
                }
            };
            Profile.addSettings = function ($this, item) {
                if ($this.Settings == null)
                    $this.Settings = [];
                if (item == null || $this.Settings.indexOf(item) > -1)
                    return;
                $this.Settings.push(item);
                if (item.ParentProfile != $this) {
                    DigicircMatchmaking.BO.ProfileSetting.setParentProfile(item, $this);
                }
            };
            Profile.addRangeSettings = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.Profile.addSettings($this, item); });
            };
            Profile.removeSettings = function ($this, item) {
                if ($this == null || $this.Settings == null || $this.Settings.indexOf(item) === -1)
                    return;
                var _index = $this.Settings.indexOf(item);
                $this.Settings.splice(_index, 1);
                item.ParentProfile = null;
            };
            Profile.clearSettings = function ($this) {
                $this.Settings = null;
            };
            return Profile;
        }());
        BO.Profile = Profile;
        var ApplicationLanguage = /** @class */ (function () {
            function ApplicationLanguage() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ApplicationLanguage";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            ApplicationLanguage.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            ApplicationLanguage.setDateTimeFormat = function ($this, value) {
                var oldValue = $this.DateTimeFormat;
                $this.DateTimeFormat = value;
                if (value != null) {
                    if (oldValue != null && oldValue.ApplicationLanguage != null) {
                        oldValue.ApplicationLanguage = null;
                    }
                    if ($this.DateTimeFormat.ApplicationLanguage !== $this) {
                        DigicircMatchmaking.BO.DateTimeFormat.setApplicationLanguage(value, $this);
                    }
                }
            };
            return ApplicationLanguage;
        }());
        BO.ApplicationLanguage = ApplicationLanguage;
        var ApplicationTimezoneInfo = /** @class */ (function () {
            function ApplicationTimezoneInfo() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ApplicationTimezoneInfo";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = "";
            }
            ApplicationTimezoneInfo.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == "";
            };
            return ApplicationTimezoneInfo;
        }());
        BO.ApplicationTimezoneInfo = ApplicationTimezoneInfo;
        var DateTimeFormat = /** @class */ (function () {
            function DateTimeFormat() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.DateTimeFormat";
                this.Domain = DigicircMatchmaking.BO;
                this.ApplicationLanguage = new this.Domain.ApplicationLanguage();
                this['_key'] = this.Id = 0;
            }
            DateTimeFormat.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            DateTimeFormat.setApplicationLanguage = function ($this, value) {
                var oldValue = $this.ApplicationLanguage;
                $this.ApplicationLanguage = value;
                if (value != null) {
                    if (oldValue != null && oldValue.DateTimeFormat != null) {
                        oldValue.DateTimeFormat = null;
                    }
                    if ($this.ApplicationLanguage.DateTimeFormat !== $this) {
                        DigicircMatchmaking.BO.ApplicationLanguage.setDateTimeFormat(value, $this);
                    }
                }
            };
            return DateTimeFormat;
        }());
        BO.DateTimeFormat = DateTimeFormat;
        var ApplicationTheme = /** @class */ (function () {
            function ApplicationTheme() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Identity.Model.ApplicationTheme";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            ApplicationTheme.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return ApplicationTheme;
        }());
        BO.ApplicationTheme = ApplicationTheme;
        var FileData = /** @class */ (function () {
            function FileData() {
                this._originalTypeClassName = "DigicircMatchmaking.BO.FileData";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = "00000000-0000-0000-0000-000000000000";
            }
            FileData.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == "00000000-0000-0000-0000-000000000000";
            };
            return FileData;
        }());
        BO.FileData = FileData;
        var StorageMedium;
        (function (StorageMedium) {
            StorageMedium[StorageMedium["FileSystem"] = 0] = "FileSystem";
            StorageMedium[StorageMedium["DataBase"] = 1] = "DataBase";
        })(StorageMedium = BO.StorageMedium || (BO.StorageMedium = {}));
        var AuditEntityConfiguration = /** @class */ (function () {
            function AuditEntityConfiguration() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Auditing.Model.AuditEntityConfiguration";
                this.Domain = DigicircMatchmaking.BO;
                this.Properties = [];
                this['_key'] = this.Id = 0;
            }
            AuditEntityConfiguration.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            AuditEntityConfiguration.setProperties = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Properties == null)
                    $this.Properties = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Properties.length > 0) {
                    DigicircMatchmaking.BO.AuditEntityConfiguration.removeProperties($this, $this.Properties[0]);
                }
                DigicircMatchmaking.BO.AuditEntityConfiguration.addManyProperties($this, copyItems);
            };
            AuditEntityConfiguration.addManyProperties = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.AuditEntityConfiguration.addProperties($this, items[i]);
                }
            };
            AuditEntityConfiguration.addProperties = function ($this, item) {
                if ($this.Properties == null)
                    $this.Properties = [];
                if (item == null || $this.Properties.indexOf(item) > -1)
                    return;
                $this.Properties.push(item);
                if (item.Entity != $this) {
                    DigicircMatchmaking.BO.AuditPropertyConfiguration.setEntity(item, $this);
                }
            };
            AuditEntityConfiguration.addRangeProperties = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.AuditEntityConfiguration.addProperties($this, item); });
            };
            AuditEntityConfiguration.removeProperties = function ($this, item) {
                if ($this == null || $this.Properties == null || $this.Properties.indexOf(item) === -1)
                    return;
                var _index = $this.Properties.indexOf(item);
                $this.Properties.splice(_index, 1);
                item.Entity = null;
            };
            AuditEntityConfiguration.clearProperties = function ($this) {
                $this.Properties = null;
            };
            return AuditEntityConfiguration;
        }());
        BO.AuditEntityConfiguration = AuditEntityConfiguration;
        var AuditPropertyConfiguration = /** @class */ (function () {
            function AuditPropertyConfiguration() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Auditing.Model.AuditPropertyConfiguration";
                this.Domain = DigicircMatchmaking.BO;
                this.Entity = new this.Domain.AuditEntityConfiguration();
                this['_key'] = this.Id = 0;
            }
            AuditPropertyConfiguration.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            AuditPropertyConfiguration.setEntity = function ($this, value) {
                var oldValue = $this.Entity;
                $this.Entity = value;
                if (value != null) {
                    if (oldValue != null) {
                        DigicircMatchmaking.BO.AuditEntityConfiguration.removeProperties(oldValue, $this);
                    }
                    DigicircMatchmaking.BO.AuditEntityConfiguration.addProperties(value, $this);
                }
            };
            return AuditPropertyConfiguration;
        }());
        BO.AuditPropertyConfiguration = AuditPropertyConfiguration;
        var AuditLogEntry = /** @class */ (function () {
            function AuditLogEntry() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Auditing.Model.AuditLogEntry";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            AuditLogEntry.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return AuditLogEntry;
        }());
        BO.AuditLogEntry = AuditLogEntry;
        var AuditLogEntryType = /** @class */ (function () {
            function AuditLogEntryType() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Auditing.Model.AuditLogEntryType";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            AuditLogEntryType.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return AuditLogEntryType;
        }());
        BO.AuditLogEntryType = AuditLogEntryType;
        var AuditLogPropertyActionType = /** @class */ (function () {
            function AuditLogPropertyActionType() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Auditing.Model.AuditLogPropertyActionType";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = 0;
            }
            AuditLogPropertyActionType.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return AuditLogPropertyActionType;
        }());
        BO.AuditLogPropertyActionType = AuditLogPropertyActionType;
        var WorkflowStatus;
        (function (WorkflowStatus) {
            WorkflowStatus[WorkflowStatus["None"] = 0] = "None";
            WorkflowStatus[WorkflowStatus["Completed"] = 1] = "Completed";
            WorkflowStatus[WorkflowStatus["Pending"] = 2] = "Pending";
            WorkflowStatus[WorkflowStatus["Expired"] = 3] = "Expired";
            WorkflowStatus[WorkflowStatus["Cancelled"] = 4] = "Cancelled";
            WorkflowStatus[WorkflowStatus["Failed"] = 5] = "Failed";
            WorkflowStatus[WorkflowStatus["StepToContinueNotFound"] = 6] = "StepToContinueNotFound";
        })(WorkflowStatus = BO.WorkflowStatus || (BO.WorkflowStatus = {}));
        var WorkflowExecutionResult = /** @class */ (function () {
            function WorkflowExecutionResult() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Workflow.WorkflowExecutionResult";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.WorkflowExecutionResultKey = 0;
            }
            WorkflowExecutionResult.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.WorkflowExecutionResultKey == null || $this.WorkflowExecutionResultKey == 0;
            };
            WorkflowExecutionResult.setContext = function ($this, value) {
                var oldValue = $this.Context;
                $this.Context = value;
                if (value != null) {
                    if (oldValue != null && oldValue.Result != null) {
                        oldValue.Result = null;
                    }
                    if ($this.Context.Result !== $this) {
                        DigicircMatchmaking.BO.WorkflowContextBase.setResult(value, $this);
                    }
                }
            };
            return WorkflowExecutionResult;
        }());
        BO.WorkflowExecutionResult = WorkflowExecutionResult;
        var WorkflowContextBase = /** @class */ (function () {
            function WorkflowContextBase() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Workflow.WorkflowContextBase";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Id = "00000000-0000-0000-0000-000000000000";
            }
            WorkflowContextBase.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == "00000000-0000-0000-0000-000000000000";
            };
            WorkflowContextBase.setResult = function ($this, value) {
                var oldValue = $this.Result;
                $this.Result = value;
                if (value != null) {
                    if (oldValue != null && oldValue.Context != null) {
                        oldValue.Context = null;
                    }
                    if ($this.Result.Context !== $this) {
                        DigicircMatchmaking.BO.WorkflowExecutionResult.setContext(value, $this);
                    }
                }
            };
            return WorkflowContextBase;
        }());
        BO.WorkflowContextBase = WorkflowContextBase;
        var WorkflowSchedule = /** @class */ (function () {
            function WorkflowSchedule() {
                this._originalTypeClassName = "zAppDev.DotNet.Framework.Workflow.WorkflowSchedule";
                this.Domain = DigicircMatchmaking.BO;
                this['_key'] = this.Workflow = "";
            }
            WorkflowSchedule.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Workflow == null || $this.Workflow == "";
            };
            return WorkflowSchedule;
        }());
        BO.WorkflowSchedule = WorkflowSchedule;
        var DigicircUser = /** @class */ (function (_super) {
            __extends(DigicircUser, _super);
            function DigicircUser() {
                var _this = _super.call(this) || this;
                _this._originalTypeClassName = "DigicircMatchmaking.BO.DigicircUser";
                _this.Domain = DigicircMatchmaking.BO;
                _this['_key'] = _this.UserName = "";
                return _this;
            }
            DigicircUser.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.UserName == null || $this.UserName == "";
            };
            return DigicircUser;
        }(ApplicationUser));
        BO.DigicircUser = DigicircUser;
        var SectorType = /** @class */ (function (_super) {
            __extends(SectorType, _super);
            function SectorType() {
                var _this = _super.call(this) || this;
                _this._originalTypeClassName = "DigicircMatchmaking.BO.SectorType";
                _this.Domain = DigicircMatchmaking.BO;
                _this.Actor = [];
                _this['_key'] = _this.Id = 0;
                return _this;
            }
            SectorType.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            SectorType.setActor = function ($this, items) {
                if (items == null)
                    items = [];
                if ($this.Actor == null)
                    $this.Actor = [];
                var copyItems = Joove.Common.cloneObject(items);
                while ($this.Actor.length > 0) {
                    DigicircMatchmaking.BO.SectorType.removeActor($this, $this.Actor[0]);
                }
                DigicircMatchmaking.BO.SectorType.addManyActor($this, copyItems);
            };
            SectorType.addManyActor = function ($this, items) {
                if (items == null)
                    return;
                for (var i = 0; i < items.length; i++) {
                    DigicircMatchmaking.BO.SectorType.addActor($this, items[i]);
                }
            };
            SectorType.addActor = function ($this, item) {
                if ($this.Actor == null)
                    $this.Actor = [];
                if (item == null || $this.Actor.indexOf(item) > -1)
                    return;
                $this.Actor.push(item);
                Actor.addSectorTypes(item, $this);
            };
            SectorType.addRangeActor = function ($this, items) {
                items.forEach(function (item) { return DigicircMatchmaking.BO.SectorType.addActor($this, item); });
            };
            SectorType.removeActor = function ($this, item) {
                if ($this == null || $this.Actor == null || $this.Actor.indexOf(item) === -1)
                    return;
                var _index = $this.Actor.indexOf(item);
                $this.Actor.splice(_index, 1);
                Actor.removeSectorTypes(item, $this);
            };
            SectorType.clearActor = function ($this) {
                $this.Actor = null;
            };
            return SectorType;
        }(ValueType));
        BO.SectorType = SectorType;
        var EntityType = /** @class */ (function (_super) {
            __extends(EntityType, _super);
            function EntityType() {
                var _this = _super.call(this) || this;
                _this._originalTypeClassName = "DigicircMatchmaking.BO.EntityType";
                _this.Domain = DigicircMatchmaking.BO;
                _this.IsProvider = false;
                _this['_key'] = _this.Id = 0;
                return _this;
            }
            EntityType.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return EntityType;
        }(ValueType));
        BO.EntityType = EntityType;
        var ThematicExpertise = /** @class */ (function (_super) {
            __extends(ThematicExpertise, _super);
            function ThematicExpertise() {
                var _this = _super.call(this) || this;
                _this._originalTypeClassName = "DigicircMatchmaking.BO.ThematicExpertise";
                _this.Domain = DigicircMatchmaking.BO;
                _this['_key'] = _this.Id = 0;
                return _this;
            }
            ThematicExpertise.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return ThematicExpertise;
        }(ValueType));
        BO.ThematicExpertise = ThematicExpertise;
        var Services = /** @class */ (function (_super) {
            __extends(Services, _super);
            function Services() {
                var _this = _super.call(this) || this;
                _this._originalTypeClassName = "DigicircMatchmaking.BO.Services";
                _this.Domain = DigicircMatchmaking.BO;
                _this['_key'] = _this.Id = 0;
                return _this;
            }
            Services.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return Services;
        }(ValueType));
        BO.Services = Services;
        var Expertise = /** @class */ (function (_super) {
            __extends(Expertise, _super);
            function Expertise() {
                var _this = _super.call(this) || this;
                _this._originalTypeClassName = "DigicircMatchmaking.BO.Expertise";
                _this.Domain = DigicircMatchmaking.BO;
                _this['_key'] = _this.Id = 0;
                return _this;
            }
            Expertise.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return Expertise;
        }(ValueType));
        BO.Expertise = Expertise;
        var PhysicalForm = /** @class */ (function (_super) {
            __extends(PhysicalForm, _super);
            function PhysicalForm() {
                var _this = _super.call(this) || this;
                _this._originalTypeClassName = "DigicircMatchmaking.BO.PhysicalForm";
                _this.Domain = DigicircMatchmaking.BO;
                _this['_key'] = _this.Id = 0;
                return _this;
            }
            PhysicalForm.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return PhysicalForm;
        }(ValueType));
        BO.PhysicalForm = PhysicalForm;
        var UnitOfMeasurement = /** @class */ (function (_super) {
            __extends(UnitOfMeasurement, _super);
            function UnitOfMeasurement() {
                var _this = _super.call(this) || this;
                _this._originalTypeClassName = "DigicircMatchmaking.BO.UnitOfMeasurement";
                _this.Domain = DigicircMatchmaking.BO;
                _this['_key'] = _this.Id = 0;
                return _this;
            }
            UnitOfMeasurement.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == 0;
            };
            return UnitOfMeasurement;
        }(ValueType));
        BO.UnitOfMeasurement = UnitOfMeasurement;
        var QueryGeocoderContext = /** @class */ (function (_super) {
            __extends(QueryGeocoderContext, _super);
            function QueryGeocoderContext() {
                var _this = _super.call(this) || this;
                _this._originalTypeClassName = "DigicircMatchmaking.BO.QueryGeocoderContext";
                _this.Domain = DigicircMatchmaking.BO;
                _this['_key'] = _this.Id = "00000000-0000-0000-0000-000000000000";
                return _this;
            }
            QueryGeocoderContext.IsNew = function ($this) {
                if ($this == null)
                    return true;
                return $this.Id == null || $this.Id == "00000000-0000-0000-0000-000000000000";
            };
            return QueryGeocoderContext;
        }(WorkflowContextBase));
        BO.QueryGeocoderContext = QueryGeocoderContext;
    })(BO = DigicircMatchmaking.BO || (DigicircMatchmaking.BO = {}));
})(DigicircMatchmaking || (DigicircMatchmaking = {}));
var _appDomain = DigicircMatchmaking.BO;
window.$domain = _appDomain;
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (_) try {
            if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [0, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
};
// Copyright (c) . All rights reserved.
// Licensed under the . See LICENSE file in the project root for full license information.
// This was autogenerated by zAppDev.
var directiveScopeReadyLimit = 10;
var directiveScopeReadyTimeout = 200;
var DigicircMatchmaking;
(function (DigicircMatchmaking) {
    var Controllers;
    (function (Controllers) {
        var _treeNodesConfiguration = {};
        var MasterPageConditionalFormattings = [];
        var MasterPageDataValidations = [];
        var MasterPageCalculatedExpressions = [];
        var MasterPageController = /** @class */ (function () {
            function MasterPageController($scope, $timeout) {
                var _this = this;
                this.$scope = $scope;
                this.controllerActionFinished = function (resetDirty) {
                    //window.scope_MasterPage.model = window.scope_MasterPage.dehydrate();
                    //
                    DigicircMatchmaking.ViewModels.MasterPage.MasterPageViewModel._lightCast(window.scope_MasterPage.model);
                    // Joove.Common.applyScope(window.scope_MasterPage);
                    if (resetDirty) {
                        window._context.isDirty = false;
                    }
                    window._ruleEngine.update(Joove.EvaluationTimes.OnChange);
                };
                window.scope_MasterPage = $scope;
                $scope.$onControlChanged = function (event, newValue, dontMakeDirty) {
                    Joove.Core.onChange(event.target, newValue, dontMakeDirty);
                };
                $scope._ready = false;
                window._context.currentMasterPageObject = this;
                $scope.dehydrate = function (context) {
                    if (context === void 0) { context = null; }
                    return DigicircMatchmaking.ViewModels.MasterPage.MasterPageViewModel._initializeFrom($scope.model, context);
                };
                $scope._validations = { summary: [],
                };
                var onSuccess = function (data, textStatus, jqXhr) {
                    Joove.Core.checkAppVersion();
                    Joove.Core.handleServerResponse("MasterPage", data);
                    _this.init($scope, $timeout);
                    //Joove.Common.applyScope($scope);
                    //window._ruleEngine.update(Joove.EvaluationTimes.OnLoad, null, () => {
                    $scope._ready = true;
                    CLMS.Framework.Utilities.FocusOnFirstInputElementOfModal();
                    //});
                }; //end onSuccess()
                window._backEndInfoAggregator.get(false, { success: onSuccess });
            }
            MasterPageController.prototype.init = function ($scope, $timeout) {
                var _this = this;
                $scope.trackObject = function (obj) { return Joove.Common.trackObject(obj); };
                //}
                $scope.connectedToSignals = function () {
                };
                // Event Listeners
                $scope.events = {};
                $scope.expressions = {};
                // Dataset Handler
                $scope.datasets = {};
                // Controller actions
                $scope.actions = {
                    Render: function (_cb, _modalOptions, _e) { return __awaiter(_this, void 0, void 0, function () {
                        return __generator(this, function (_a) {
                            Joove.Common.autocompleteFix();
                            Joove.Core.executeRedirectControllerAction("MasterPage", "Render", "GET", [], {}, _modalOptions);
                            return [2 /*return*/];
                        });
                    }); },
                    SignOut: function (_cb, _modalOptions, _e) { return __awaiter(_this, void 0, void 0, function () {
                        return __generator(this, function (_a) {
                            Joove.Common.autocompleteFix();
                            window._context.isDirty = false;
                            Joove.Core.executeControllerActionNew({
                                verb: 'POST', controller: 'MasterPage', action: 'SignOut',
                                queryData: [], postData: { 'model': $scope.model },
                                cb: _cb, modalOptions: _modalOptions, event: _e
                            });
                            return [2 /*return*/];
                        });
                    }); },
                };
                // Events
                $scope.eventCallbacks = {
                    MainMenuHeaderMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockMainMenuHeaderMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockMainMenuHeaderMenuItemPressed);
                        }
                        _this.timeoutDelayLockMainMenuHeaderMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("SearchForm", "Index", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    SymbiosisMaterialsMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockSymbiosisMaterialsMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockSymbiosisMaterialsMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockSymbiosisMaterialsMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("MaterialList", "", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    SymbiosisProcessMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockSymbiosisProcessMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockSymbiosisProcessMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockSymbiosisProcessMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("ProcessList", "", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    ClusterListMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockClusterListMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockClusterListMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockClusterListMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("ClusterList", "", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    CountryListMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockCountryListMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockCountryListMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockCountryListMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("CountryList", "", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    EntityTypeListMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockEntityTypeListMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockEntityTypeListMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockEntityTypeListMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("EntityTypeList", "", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    SectorTypeMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockSectorTypeMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockSectorTypeMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockSectorTypeMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("SectorTypeList", "", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    ExpertiseListMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockExpertiseListMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockExpertiseListMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockExpertiseListMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("ExpertiseList", "", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    ThematicExpertiseListMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockThematicExpertiseListMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockThematicExpertiseListMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockThematicExpertiseListMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("ThematicExpertiseList", "", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    ProductTypeMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockProductTypeMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockProductTypeMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockProductTypeMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("ProductTypeList", "", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    UnitOfMeasurementMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockUnitOfMeasurementMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockUnitOfMeasurementMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockUnitOfMeasurementMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("UnitOfMeasurementList", "", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    PhysicalFormMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockPhysicalFormMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockPhysicalFormMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockPhysicalFormMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("PhysicalFormList", "", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    CompanyListImportMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockCompanyListImportMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockCompanyListImportMenuItemPressed);
                        }
                        _this.timeoutDelayLockCompanyListImportMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("CompanyList", "", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    ClusterInitMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockClusterInitMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockClusterInitMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockClusterInitMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("ClusterInitialization", "Index", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    GraphQueryOperationsMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockGraphQueryOperationsMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockGraphQueryOperationsMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockGraphQueryOperationsMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("GraphQueryDebug", "Index", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    GraphCreateOperationsMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockGraphCreateOperationsMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockGraphCreateOperationsMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockGraphCreateOperationsMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("GraphCreateDebug", "Index", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    GraphExportOperationsMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockGraphExportOperationsMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockGraphExportOperationsMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockGraphExportOperationsMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("GraphExportForm", "Index", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    ManageUsersMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockManageUsersMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockManageUsersMenuItemPressed);
                        }
                        _this.timeoutDelayLockManageUsersMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("UsersList", "Retrieve", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    ManagePermissionsMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockManagePermissionsMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockManagePermissionsMenuItemPressed);
                        }
                        _this.timeoutDelayLockManagePermissionsMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("PermissionsList", "Retrieve", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    ManageRolesMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockManageRolesMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockManageRolesMenuItemPressed);
                        }
                        _this.timeoutDelayLockManageRolesMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("RolesList", "Retrieve", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    ManageOperationsMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockManageOperationsMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockManageOperationsMenuItemPressed);
                        }
                        _this.timeoutDelayLockManageOperationsMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("OperationsList", "Retrieve", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    ManageSettingsMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockManageSettingsMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockManageSettingsMenuItemPressed);
                        }
                        _this.timeoutDelayLockManageSettingsMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("ApplicationSettingsList", "Retrieve", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    ManageActorsMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockManageActorsMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockManageActorsMenuItemPressed);
                        }
                        _this.timeoutDelayLockManageActorsMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("ManageActors", "Index", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    MasterChangePasswordMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockMasterChangePasswordMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockMasterChangePasswordMenuItemPressed);
                        }
                        _this.timeoutDelayLockMasterChangePasswordMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("ChangePassword", "Render", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    MasterPreferencesMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockMasterPreferencesMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockMasterPreferencesMenuItemPressed);
                        }
                        _this.timeoutDelayLockMasterPreferencesMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("UserPreferences", "Render", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    MasterSignOutMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockMasterSignOutMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockMasterSignOutMenuItemPressed);
                        }
                        _this.timeoutDelayLockMasterSignOutMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("SignOutPage", "SignOut", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    MasterSignInMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockMasterSignInMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockMasterSignInMenuItemPressed);
                        }
                        _this.timeoutDelayLockMasterSignInMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("SignInPage", "Load", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    MasterRegisterMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockMasterRegisterMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockMasterRegisterMenuItemPressed);
                        }
                        _this.timeoutDelayLockMasterRegisterMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("RegisterForm", "Index", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    OrganizationMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockOrganizationMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockOrganizationMenuItemPressed);
                        }
                        _this.timeoutDelayLockOrganizationMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("ActorForm", "Add", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    KnowledgeBaseExplorerMenuItemMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockKnowledgeBaseExplorerMenuItemMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockKnowledgeBaseExplorerMenuItemMenuItemPressed);
                        }
                        _this.timeoutDelayLockKnowledgeBaseExplorerMenuItemMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("KnowledgeBaseExplorer", "Index", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    MatchmakingMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockMatchmakingMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockMatchmakingMenuItemPressed);
                        }
                        _this.timeoutDelayLockMatchmakingMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("SearchForm", "Index", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                    SymbiosisMenuItemPressed: function (e, DataItem, _parents) {
                        if (e != null) {
                            e.stopPropagation();
                            e.preventDefault();
                        }
                        if (_this.timeoutDelayLockSymbiosisMenuItemPressed != null) {
                            $timeout.cancel(_this.timeoutDelayLockSymbiosisMenuItemPressed);
                        }
                        _this.timeoutDelayLockSymbiosisMenuItemPressed = $timeout(function () {
                            Joove.Common.setControlKeyPressed(e, 0);
                            Joove.Common.setLastClickedElement(e);
                            Joove.Validation.Manager.validateFormAndExecute(function () {
                                //This is true only when the menu item is clicked programmatically
                                //and occurs when the middle mouse button click is triggered
                                var openInNewWindow = $(e.target).data("openInNewWindow") === true || undefined;
                                if (openInNewWindow)
                                    $(e.target).data("openInNewWindow", undefined);
                                Joove.Core.executeRedirectControllerAction("UnderContructionPage", "Index", "GET", [], null, null, openInNewWindow);
                            }, { groups: [], withDataValidationsCheck: false, withRequiredFieldsCheck: false });
                        }, 0);
                    },
                };
                // Rules
                window._ruleEngine.addDataValidations(MasterPageDataValidations);
                window._ruleEngine.addConditionalFormattings(MasterPageConditionalFormattings);
                window._ruleEngine.addCalculatedExpressions(MasterPageCalculatedExpressions);
                window._commander.executeCommands(window.viewDTO.ClientCommands);
                window.viewDTO.ClientCommands = [];
            };
            return MasterPageController;
        }());
        angular.module("Application").controller("MasterPageController", ["$scope", "$timeout", MasterPageController]);
    })(Controllers = DigicircMatchmaking.Controllers || (DigicircMatchmaking.Controllers = {}));
})(DigicircMatchmaking || (DigicircMatchmaking = {}));
;
