示例#1
0
        protected static FR_Base Execute(DbConnection Connection, DbTransaction Transaction, P_L5DD_DS_1144 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_Base();


            ORM_RES_DUD_Revision.Query revisionQuery = new ORM_RES_DUD_Revision.Query();
            revisionQuery.Tenant_RefID       = securityTicket.TenantID;
            revisionQuery.RES_DUD_RevisionID = Parameter.submissionID;
            ORM_RES_DUD_Revision.Query.SoftDelete(Connection, Transaction, revisionQuery);

            //Put your code here
            return(returnValue);

            #endregion UserCode
        }
        protected static FR_L5DD_GRGFRP_1403_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5DD_GRGFRP_1403 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            //Leave UserCode region to enable user code saving
            #region UserCode
            var returnValue = new FR_L5DD_GRGFRP_1403_Array();
            var retVal      = new List <L5DD_GRGFRP_1403>();
            L5DD_GRGFRP_1403 revisionGroupItem;

            //Put your code here
            #region Realestate
            ORM_RES_RealestateProperty realestateProperty = new ORM_RES_RealestateProperty();
            if (Parameter.RealestatePropertyID != Guid.Empty)
            {
                var realestatePropertyResult = realestateProperty.Load(Connection, Transaction, Parameter.RealestatePropertyID);
                if (realestatePropertyResult.Status != FR_Status.Success || realestateProperty.RES_RealestatePropertyID == Guid.Empty)
                {
                    return(null);
                }
            }
            #endregion

            #region Address
            ORM_CMN_Address address = new ORM_CMN_Address();

            ORM_CMN_LOC_Location location = new ORM_CMN_LOC_Location();
            var locationResult            = location.Load(Connection, Transaction, realestateProperty.RealestateProperty_Location_RefID);
            if (locationResult.Status == FR_Status.Success && location.CMN_LOC_LocationID != Guid.Empty)
            {
                var addressResult = address.Load(Connection, Transaction, location.Address_RefID);
                if (locationResult.Status != FR_Status.Success || location.CMN_LOC_LocationID == Guid.Empty)
                {
                    address = null;
                }
            }
            #endregion

            #region Revision groups for realestrate
            ORM_RES_DUD_RevisionGroup.Query revisionGroupQuery = new ORM_RES_DUD_RevisionGroup.Query();
            revisionGroupQuery.Tenant_RefID             = securityTicket.TenantID;
            revisionGroupQuery.IsDeleted                = false;
            revisionGroupQuery.RealestateProperty_RefID = realestateProperty.RES_RealestatePropertyID;
            List <ORM_RES_DUD_RevisionGroup> revisionGroupList = ORM_RES_DUD_RevisionGroup.Query.Search(Connection, Transaction, revisionGroupQuery);
            #endregion

            #region Buildings for realestate
            ORM_RES_BLD_Building_RevisionHeader.Query revisionHeaderQuery = new ORM_RES_BLD_Building_RevisionHeader.Query();
            revisionHeaderQuery.Tenant_RefID             = securityTicket.TenantID;
            revisionHeaderQuery.IsDeleted                = false;
            revisionHeaderQuery.RealestateProperty_RefID = realestateProperty.RES_RealestatePropertyID;
            ORM_RES_BLD_Building_RevisionHeader revisionHeader = ORM_RES_BLD_Building_RevisionHeader.Query.Search(Connection, Transaction, revisionHeaderQuery).FirstOrDefault();

            List <ORM_RES_BLD_Building> buildings = new List <ORM_RES_BLD_Building>();
            List <ORM_RES_DUD_Revision> revisions = new List <ORM_RES_DUD_Revision>();
            List <ORM_RES_BLD_Building_2_BuildingType>         buildingTypes = new List <ORM_RES_BLD_Building_2_BuildingType>();
            List <ORM_RES_BLD_Building_2_GarbageContainerType> buildingGarbageContainerType = new List <ORM_RES_BLD_Building_2_GarbageContainerType>();
            if (revisionHeader != null)
            {
                ORM_RES_BLD_Building.Query buildingQuery = new ORM_RES_BLD_Building.Query();
                buildingQuery.Tenant_RefID = securityTicket.TenantID;
                buildingQuery.IsDeleted    = false;
                buildingQuery.BuildingRevisionHeader_RefID = revisionHeader.RES_BLD_Building_RevisionHeaderID;
                buildings = ORM_RES_BLD_Building.Query.Search(Connection, Transaction, buildingQuery);

                if (buildings == null)
                {
                    buildings = new List <ORM_RES_BLD_Building>();
                }

                #region revisions and building types for every building
                foreach (var buildingItem in buildings)
                {
                    ORM_RES_DUD_Revision.Query revisionQuery = new ORM_RES_DUD_Revision.Query();
                    revisionQuery.Tenant_RefID           = securityTicket.TenantID;
                    revisionQuery.IsDeleted              = false;
                    revisionQuery.RES_BLD_Building_RefID = buildingItem.RES_BLD_BuildingID;
                    revisions.AddRange(ORM_RES_DUD_Revision.Query.Search(Connection, Transaction, revisionQuery));

                    ORM_RES_BLD_Building_2_BuildingType.Query buildingTypeQuery = new ORM_RES_BLD_Building_2_BuildingType.Query();
                    buildingTypeQuery.Tenant_RefID           = securityTicket.TenantID;
                    buildingTypeQuery.IsDeleted              = false;
                    buildingTypeQuery.RES_BLD_Building_RefID = buildingItem.RES_BLD_BuildingID;
                    buildingTypes.AddRange(ORM_RES_BLD_Building_2_BuildingType.Query.Search(Connection, Transaction, buildingTypeQuery));

                    ORM_RES_BLD_Building_2_GarbageContainerType.Query buildingGarbageContainerTypeQuery = new ORM_RES_BLD_Building_2_GarbageContainerType.Query();
                    buildingGarbageContainerTypeQuery.Tenant_RefID           = securityTicket.TenantID;
                    buildingGarbageContainerTypeQuery.IsDeleted              = false;
                    buildingGarbageContainerTypeQuery.RES_BLD_Building_RefID = buildingItem.RES_BLD_BuildingID;
                    buildingGarbageContainerType.AddRange(ORM_RES_BLD_Building_2_GarbageContainerType.Query.Search(Connection, Transaction, buildingGarbageContainerTypeQuery));
                }
                #endregion
            }
            #endregion

            #region Revision groups
            List <L5DD_GRGFRP_1403_Buildings> buildingsResult;
            L5DD_GRGFRP_1403_Buildings        buildingResult;
            foreach (var revisionGroup in revisionGroupList)
            {
                revisionGroupItem = new L5DD_GRGFRP_1403();
                revisionGroupItem.RES_DUD_Revision_GroupID = revisionGroup.RES_DUD_Revision_GroupID;
                revisionGroupItem.RevisionGroup_Name       = revisionGroup.RevisionGroup_Name;
                revisionGroupItem.RevisionGroup_SubmittedBy_Account_RefID = revisionGroup.RevisionGroup_SubmittedBy_Account_RefID;
                revisionGroupItem.Creation_Timestamp       = revisionGroup.Creation_Timestamp;
                revisionGroupItem.Tenant_RefID             = revisionGroup.Tenant_RefID;
                revisionGroupItem.IsDeleted                = revisionGroup.IsDeleted;
                revisionGroupItem.RealestateProperty_RefID = revisionGroup.RealestateProperty_RefID;
                revisionGroupItem.RevisionGroup_Comment    = revisionGroup.RevisionGroup_Comment;

                #region Person info
                ORM_CMN_PER_PersonInfo personInfo = new ORM_CMN_PER_PersonInfo();

                ORM_CMN_PER_PersonInfo_2_Account.Query personInfoAccountQuery = new ORM_CMN_PER_PersonInfo_2_Account.Query();
                personInfoAccountQuery.Tenant_RefID      = securityTicket.TenantID;
                personInfoAccountQuery.IsDeleted         = false;
                personInfoAccountQuery.USR_Account_RefID = revisionGroup.RevisionGroup_SubmittedBy_Account_RefID;
                ORM_CMN_PER_PersonInfo_2_Account account = ORM_CMN_PER_PersonInfo_2_Account.Query.Search(Connection, Transaction, personInfoAccountQuery).FirstOrDefault();

                if (account != null)
                {
                    var personInfoResult = personInfo.Load(Connection, Transaction, account.CMN_PER_PersonInfo_RefID);
                    if (personInfoResult.Status == FR_Status.Success && personInfo.CMN_PER_PersonInfoID != Guid.Empty)
                    {
                        revisionGroupItem.FirstName = personInfo.FirstName;
                        revisionGroupItem.LastName  = personInfo.LastName;
                    }
                }
                #endregion

                #region set address info
                if (address != null)
                {
                    revisionGroupItem.Country_Name    = address.Country_Name;
                    revisionGroupItem.City_Region     = address.City_Region;
                    revisionGroupItem.City_PostalCode = address.City_PostalCode;
                    revisionGroupItem.City_Name       = address.City_Name;
                    revisionGroupItem.Street_Name     = address.Street_Name;
                    revisionGroupItem.Street_Number   = address.Street_Number;
                }
                #endregion

                #region set building info
                buildingsResult = new List <L5DD_GRGFRP_1403_Buildings>();

                // get revisions for revision group
                var revisionsForRetVal = revisions.Where(i => i.RevisionGroup_RefID == revisionGroup.RES_DUD_Revision_GroupID).ToList();
                ORM_RES_DUD_Revision revisionForBuildingID;

                // get buildings for list of revision
                List <ORM_RES_BLD_Building> buildingForRetVal = new List <ORM_RES_BLD_Building>();
                buildingForRetVal.AddRange(buildings.Where(i => revisionsForRetVal.Any(j => j.RES_BLD_Building_RefID == i.RES_BLD_BuildingID)).ToList());

                foreach (var buildingForRetValItem in buildingForRetVal)
                {
                    revisionForBuildingID = revisionsForRetVal.FirstOrDefault(i => i.RES_BLD_Building_RefID == buildingForRetValItem.RES_BLD_BuildingID);

                    buildingResult = new L5DD_GRGFRP_1403_Buildings();
                    buildingResult.Building_Name              = buildingForRetValItem.Building_Name;
                    buildingResult.RES_BLD_BuildingID         = buildingForRetValItem.RES_BLD_BuildingID;
                    buildingResult.RES_DUD_RevisionID         = revisionForBuildingID.RES_DUD_RevisionID;
                    buildingResult.QuestionnaireVersion_RefID = revisionForBuildingID.QuestionnaireVersion_RefID;

                    buildingResult.RES_BLD_Building_Type_RefID        = buildingTypes.FirstOrDefault(i => i.RES_BLD_Building_RefID == buildingForRetValItem.RES_BLD_BuildingID).RES_BLD_Building_Type_RefID;
                    buildingResult.RES_BLD_GarbageContainerType_RefID = buildingGarbageContainerType.FirstOrDefault(i => i.RES_BLD_Building_RefID == buildingForRetValItem.RES_BLD_BuildingID).RES_BLD_GarbageContainerType_RefID;

                    buildingsResult.Add(buildingResult);
                }
                #endregion

                revisionGroupItem.Buildings = buildingsResult.ToArray();
                retVal.Add(revisionGroupItem);
            }
            #endregion

            returnValue.Result = retVal.ToArray();

            return(returnValue);

            #endregion UserCode
        }
        protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5DD_SDD_0945 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_Guid();

            ORM_RES_DUD_RevisionGroup revisionGroup = new ORM_RES_DUD_RevisionGroup();
            if (Parameter.RES_DUD_Revision_GroupID != Guid.Empty)
            {
                var result = revisionGroup.Load(Connection, Transaction, Parameter.RES_DUD_Revision_GroupID);
                if (result.Status != FR_Status.Success || revisionGroup.RES_DUD_Revision_GroupID == Guid.Empty)
                {
                    var error = new FR_Guid();
                    error.ErrorMessage = "No Such ID";
                    error.Status       = FR_Status.Error_Internal;
                    return(error);
                }
            }
            revisionGroup.RevisionGroup_Name    = Parameter.RevisionGroup_Name;
            revisionGroup.RevisionGroup_Comment = Parameter.RevisionGroup_Description;
            revisionGroup.RevisionGroup_SubmittedBy_Account_RefID = securityTicket.AccountID;
            revisionGroup.Tenant_RefID             = securityTicket.TenantID;
            revisionGroup.RealestateProperty_RefID = Parameter.RealestateProperty_RefID;
            revisionGroup.Save(Connection, Transaction);



            if (Parameter.Revisions != null)
            {
                ORM_RES_DUD_Revision.Query revisionQuery = new ORM_RES_DUD_Revision.Query();
                revisionQuery.Tenant_RefID        = securityTicket.TenantID;
                revisionQuery.RevisionGroup_RefID = revisionGroup.RES_DUD_Revision_GroupID;
                revisionQuery.IsDeleted           = false;
                List <ORM_RES_DUD_Revision> oldRevisions = ORM_RES_DUD_Revision.Query.Search(Connection, Transaction, revisionQuery);

                foreach (var oldRevision in oldRevisions)
                {
                    if (!Parameter.Revisions.Any(i => i.RES_BLD_Building_RefID == oldRevision.RES_BLD_Building_RefID))
                    {
                        ORM_RES_DUD_Revision revisionToDelete = new ORM_RES_DUD_Revision();
                        revisionToDelete.Load(Connection, Transaction, oldRevision.RES_DUD_RevisionID);
                        revisionToDelete.IsDeleted = true;
                        revisionToDelete.Save(Connection, Transaction);
                    }
                }

                foreach (var revisionParam in Parameter.Revisions)
                {
                    revisionQuery = new ORM_RES_DUD_Revision.Query();
                    revisionQuery.Tenant_RefID           = securityTicket.TenantID;
                    revisionQuery.RevisionGroup_RefID    = revisionGroup.RES_DUD_Revision_GroupID;
                    revisionQuery.RES_BLD_Building_RefID = revisionParam.RES_BLD_Building_RefID;
                    revisionQuery.IsDeleted = false;
                    ORM_RES_DUD_Revision foundRevision = ORM_RES_DUD_Revision.Query.Search(Connection, Transaction, revisionQuery).FirstOrDefault();
                    ORM_RES_DUD_Revision revision      = new ORM_RES_DUD_Revision();
                    if (foundRevision != null)
                    {
                        var result = revision.Load(Connection, Transaction, foundRevision.RES_DUD_RevisionID);
                        if (result.Status != FR_Status.Success || revision.RES_DUD_RevisionID == Guid.Empty)
                        {
                            var error = new FR_Guid();
                            error.ErrorMessage = "No Such ID";
                            error.Status       = FR_Status.Error_Internal;
                            return(error);
                        }
                    }
                    revision.QuestionnaireVersion_RefID = revisionParam.QuestionnaireVersion_RefID;
                    revision.RES_BLD_Building_RefID     = revisionParam.RES_BLD_Building_RefID;
                    revision.RevisionGroup_RefID        = revisionGroup.RES_DUD_Revision_GroupID;
                    revision.Tenant_RefID = securityTicket.TenantID;
                    revision.Save(Connection, Transaction);
                }
            }



            returnValue.Result = revisionGroup.RES_DUD_Revision_GroupID;
            //Put your code here
            return(returnValue);

            #endregion UserCode
        }
        protected static FR_L5BD_GBFRG_1005_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5BD_GBFRG_1005 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L5BD_GBFRG_1005_Array();
            //Put your code here

            List <L5BD_GBFRG_1005>     returnList = new List <L5BD_GBFRG_1005>();
            ORM_RES_DUD_Revision.Query rvQuery    = new ORM_RES_DUD_Revision.Query();
            rvQuery.IsDeleted           = false;
            rvQuery.Tenant_RefID        = securityTicket.TenantID;
            rvQuery.RevisionGroup_RefID = Parameter.RevisionGroupID;
            List <ORM_RES_DUD_Revision> revisions = ORM_RES_DUD_Revision.Query.Search(Connection, Transaction, rvQuery);


            foreach (var revision in revisions)
            {
                ORM_RES_BLD_Building bdQuery = new ORM_RES_BLD_Building();
                L5BD_GBFRG_1005      item    = new L5BD_GBFRG_1005();

                ORM_RES_BLD_Building building = new ORM_RES_BLD_Building();
                building.Load(Connection, Transaction, revision.RES_BLD_Building_RefID);

                ORM_RES_BLD_Apartment.Query apQuery = new ORM_RES_BLD_Apartment.Query();
                apQuery.Tenant_RefID   = securityTicket.TenantID;
                apQuery.IsDeleted      = false;
                apQuery.Building_RefID = building.RES_BLD_BuildingID;
                List <ORM_RES_BLD_Apartment> apList = ORM_RES_BLD_Apartment.Query.Search(Connection, Transaction, apQuery);

                List <L5BD_GBFRG_1005_Apartment> apResult = new List <L5BD_GBFRG_1005_Apartment>();
                foreach (var part in apList)
                {
                    L5BD_GBFRG_1005_Apartment itemPart = new L5BD_GBFRG_1005_Apartment();
                    itemPart.ApartmentSize_Unit_RefID    = part.ApartmentSize_Unit_RefID;
                    itemPart.ApartmentSize_Value         = part.ApartmentSize_Value;
                    itemPart.IsAppartment_ForRent        = part.IsDeleted;
                    itemPart.RES_BLD_ApartmentID         = part.RES_BLD_ApartmentID;
                    itemPart.Appartment_FlooringType     = part.TypeOfFlooring_RefID;
                    itemPart.Appartment_HeatingType      = part.TypeOfHeating_RefID;
                    itemPart.Appartment_WallCoveringType = part.TypeOfWallCovering_RefID;

                    ORM_RES_STR_Apartment strApartment = ORM_RES_STR_Apartment.Query.Search(Connection, Transaction, new ORM_RES_STR_Apartment.Query()
                    {
                        RES_BLD_Apartment_RefID = part.RES_BLD_ApartmentID,
                        Tenant_RefID            = securityTicket.TenantID,
                        IsDeleted = false
                    }).FirstOrDefault();
                    if (strApartment != null)
                    {
                        itemPart.ApartmentsDocumentHeader_RefID = strApartment.DocumentHeader_RefID;

                        Guid[] documentHeaders = ORM_RES_STR_Apartment_PropertyAssessment.Query.Search(Connection, Transaction, new ORM_RES_STR_Apartment_PropertyAssessment.Query()
                        {
                            STR_Apartment_RefID = strApartment.RES_STR_ApartmentID,
                            IsDeleted           = false,
                            Tenant_RefID        = securityTicket.TenantID
                        }).Select(i => i.DocumentHeader_RefID).ToArray();

                        if (documentHeaders != null)
                        {
                            itemPart.ApartmentsPropertyDocumentHeaders = documentHeaders;
                        }
                    }

                    apResult.Add(itemPart);
                }
                item.Apartments = apResult.ToArray();


                ORM_RES_BLD_Attic.Query atQuery = new ORM_RES_BLD_Attic.Query();
                atQuery.Tenant_RefID   = securityTicket.TenantID;
                atQuery.IsDeleted      = false;
                atQuery.Building_RefID = building.RES_BLD_BuildingID;
                List <ORM_RES_BLD_Attic> atList = ORM_RES_BLD_Attic.Query.Search(Connection, Transaction, atQuery);

                List <L5BD_GBFRG_1005_Attic> atResult = new List <L5BD_GBFRG_1005_Attic>();
                foreach (var part in atList)
                {
                    L5BD_GBFRG_1005_Attic itemPart = new L5BD_GBFRG_1005_Attic();
                    itemPart.RES_BLD_AtticID = part.RES_BLD_AtticID;

                    ORM_RES_STR_Attic strAttic = ORM_RES_STR_Attic.Query.Search(Connection, Transaction, new ORM_RES_STR_Attic.Query()
                    {
                        RES_BLD_Attic_RefID = part.RES_BLD_AtticID,
                        Tenant_RefID        = securityTicket.TenantID,
                        IsDeleted           = false
                    }).FirstOrDefault();
                    if (strAttic != null)
                    {
                        itemPart.AtticsDocumentHeader_RefID = strAttic.DocumentHeader_RefID;

                        Guid[] documentHeaders = ORM_RES_STR_Attic_PropertyAssessment.Query.Search(Connection, Transaction, new ORM_RES_STR_Attic_PropertyAssessment.Query()
                        {
                            STR_Attic_RefID = strAttic.RES_STR_AtticID,
                            IsDeleted       = false,
                            Tenant_RefID    = securityTicket.TenantID
                        }).Select(i => i.DocumentHeader_RefID).ToArray();

                        if (documentHeaders != null)
                        {
                            itemPart.AtticsPropertyDocumentHeaders = documentHeaders;
                        }
                    }

                    atResult.Add(itemPart);
                }
                item.Attics = atResult.ToArray();

                ORM_RES_BLD_Basement.Query baQuery = new ORM_RES_BLD_Basement.Query();
                baQuery.Tenant_RefID   = securityTicket.TenantID;
                baQuery.IsDeleted      = false;
                baQuery.Building_RefID = building.RES_BLD_BuildingID;
                List <ORM_RES_BLD_Basement> baList = ORM_RES_BLD_Basement.Query.Search(Connection, Transaction, baQuery);

                List <L5BD_GBFRG_1005_Basement> baResult = new List <L5BD_GBFRG_1005_Basement>();
                foreach (var part in baList)
                {
                    L5BD_GBFRG_1005_Basement itemPart = new L5BD_GBFRG_1005_Basement();
                    itemPart.Basement_FloorType = part.TypeOfFloor_RefID;
                    itemPart.RES_BLD_BasementID = part.RES_BLD_BasementID;

                    ORM_RES_STR_Basement strBasement = ORM_RES_STR_Basement.Query.Search(Connection, Transaction, new ORM_RES_STR_Basement.Query()
                    {
                        RES_BLD_Basement_RefID = part.RES_BLD_BasementID,
                        Tenant_RefID           = securityTicket.TenantID,
                        IsDeleted = false
                    }).FirstOrDefault();
                    if (strBasement != null)
                    {
                        itemPart.BasementsDocumentHeader_RefID = strBasement.DocumentHeader_RefID;

                        Guid[] documentHeaders = ORM_RES_STR_Basement_PropertyAssessment.Query.Search(Connection, Transaction, new ORM_RES_STR_Basement_PropertyAssessment.Query()
                        {
                            STR_Basement_RefID = strBasement.RES_STR_BasementID,
                            IsDeleted          = false,
                            Tenant_RefID       = securityTicket.TenantID
                        }).Select(i => i.DocumentHeader_RefID).ToArray();

                        if (documentHeaders != null)
                        {
                            itemPart.BasementsPropertyDocumentHeaders = documentHeaders;
                        }
                    }

                    baResult.Add(itemPart);
                }
                item.Basements = baResult.ToArray();

                ORM_RES_BLD_Facade.Query faQuery = new ORM_RES_BLD_Facade.Query();
                faQuery.Tenant_RefID   = securityTicket.TenantID;
                faQuery.IsDeleted      = false;
                faQuery.Building_RefID = building.RES_BLD_BuildingID;
                List <ORM_RES_BLD_Facade> faList = ORM_RES_BLD_Facade.Query.Search(Connection, Transaction, faQuery);

                List <L5BD_GBFRG_1005_Facade> faResult = new List <L5BD_GBFRG_1005_Facade>();
                foreach (var part in faList)
                {
                    L5BD_GBFRG_1005_Facade itemPart = new L5BD_GBFRG_1005_Facade();
                    itemPart.RES_BLD_FacadeID = part.RES_BLD_FacadeID;

                    ORM_RES_STR_Facade strFacade = ORM_RES_STR_Facade.Query.Search(Connection, Transaction, new ORM_RES_STR_Facade.Query()
                    {
                        RES_BLD_Facade_RefID = part.RES_BLD_FacadeID,
                        Tenant_RefID         = securityTicket.TenantID,
                        IsDeleted            = false
                    }).FirstOrDefault();
                    if (strFacade != null)
                    {
                        itemPart.FacadesDocumentHeader_RefID = strFacade.DocumentHeader_RefID;

                        Guid[] documentHeaders = ORM_RES_STR_Facade_PropertyAssessment.Query.Search(Connection, Transaction, new ORM_RES_STR_Facade_PropertyAssessment.Query()
                        {
                            STR_Facade_RefID = strFacade.RES_STR_FacadeID,
                            IsDeleted        = false,
                            Tenant_RefID     = securityTicket.TenantID
                        }).Select(i => i.DocumentHeader_RefID).ToArray();

                        if (documentHeaders != null)
                        {
                            itemPart.FacadesPropertyDocumentHeaders = documentHeaders;
                        }
                    }

                    faResult.Add(itemPart);
                }
                item.Facades = faResult.ToArray();

                ORM_RES_BLD_HVACR.Query hvQuery = new ORM_RES_BLD_HVACR.Query();
                hvQuery.Tenant_RefID   = securityTicket.TenantID;
                hvQuery.IsDeleted      = false;
                hvQuery.Building_RefID = building.RES_BLD_BuildingID;
                List <ORM_RES_BLD_HVACR> hvList = ORM_RES_BLD_HVACR.Query.Search(Connection, Transaction, hvQuery);

                List <L5BD_GBFRG_1005_HVACR> hvResult = new List <L5BD_GBFRG_1005_HVACR>();
                foreach (var part in hvList)
                {
                    L5BD_GBFRG_1005_HVACR itemPart = new L5BD_GBFRG_1005_HVACR();
                    itemPart.RES_BLD_HVACRID = part.RES_BLD_HVACRID;

                    ORM_RES_STR_HVACR strHVACR = ORM_RES_STR_HVACR.Query.Search(Connection, Transaction, new ORM_RES_STR_HVACR.Query()
                    {
                        RES_BLD_HVACR_RefID = part.RES_BLD_HVACRID,
                        Tenant_RefID        = securityTicket.TenantID,
                        IsDeleted           = false
                    }).FirstOrDefault();
                    if (strHVACR != null)
                    {
                        itemPart.HVACRsDocumentHeader_RefID = strHVACR.DocumentHeader_RefID;

                        Guid[] documentHeaders = ORM_RES_STR_HVACR_PropertyAssessment.Query.Search(Connection, Transaction, new ORM_RES_STR_HVACR_PropertyAssessment.Query()
                        {
                            STR_HVACR_RefID = strHVACR.RES_STR_HVACRID,
                            IsDeleted       = false,
                            Tenant_RefID    = securityTicket.TenantID
                        }).Select(i => i.DocumentHeader_RefID).ToArray();

                        if (documentHeaders != null)
                        {
                            itemPart.HVACRsPropertyDocumentHeaders = documentHeaders;
                        }
                    }

                    hvResult.Add(itemPart);
                }
                item.HVACRs = hvResult.ToArray();

                ORM_RES_BLD_OutdoorFacility.Query ofQuery = new ORM_RES_BLD_OutdoorFacility.Query();
                ofQuery.Tenant_RefID   = securityTicket.TenantID;
                ofQuery.IsDeleted      = false;
                ofQuery.Building_RefID = building.RES_BLD_BuildingID;
                List <ORM_RES_BLD_OutdoorFacility> ofList = ORM_RES_BLD_OutdoorFacility.Query.Search(Connection, Transaction, ofQuery);

                List <L5BD_GBFRG_1005_OutdoorFacility> ofResult = new List <L5BD_GBFRG_1005_OutdoorFacility>();
                foreach (var part in ofList)
                {
                    L5BD_GBFRG_1005_OutdoorFacility itemPart = new L5BD_GBFRG_1005_OutdoorFacility();
                    itemPart.OutdoorFacility_AccessRoadType = part.TypeOfAccessRoad_RefID;
                    itemPart.OutdoorFacility_FenceType      = part.TypeOfFence_RefID;
                    itemPart.RES_BLD_OutdoorFacilityID      = part.RES_BLD_OutdoorFacilityID;

                    ORM_RES_STR_OutdoorFacility strOutdoorFacility = ORM_RES_STR_OutdoorFacility.Query.Search(Connection, Transaction, new ORM_RES_STR_OutdoorFacility.Query()
                    {
                        RES_BLD_OutdoorFacility_RefID = part.RES_BLD_OutdoorFacilityID,
                        Tenant_RefID = securityTicket.TenantID,
                        IsDeleted    = false
                    }).FirstOrDefault();
                    if (strOutdoorFacility != null)
                    {
                        itemPart.OutdoorFacilitiesDocumentHeader_RefID = strOutdoorFacility.DocumentHeader_RefID;

                        Guid[] documentHeaders = ORM_RES_STR_OutdoorFacility_PropertyAssessment.Query.Search(Connection, Transaction, new ORM_RES_STR_OutdoorFacility_PropertyAssessment.Query()
                        {
                            STR_OutdoorFacility_RefID = strOutdoorFacility.RES_STR_OutdoorFacilityID,
                            IsDeleted    = false,
                            Tenant_RefID = securityTicket.TenantID
                        }).Select(i => i.DocumentHeader_RefID).ToArray();

                        if (documentHeaders != null)
                        {
                            itemPart.OutdoorFacilitiesPropertyDocumentHeaders = documentHeaders;
                        }
                    }

                    ofResult.Add(itemPart);
                }
                item.OutdoorFacilities = ofResult.ToArray();

                ORM_RES_BLD_Roof.Query roQuery = new ORM_RES_BLD_Roof.Query();
                roQuery.Tenant_RefID   = securityTicket.TenantID;
                roQuery.IsDeleted      = false;
                roQuery.Building_RefID = building.RES_BLD_BuildingID;
                List <ORM_RES_BLD_Roof> roList = ORM_RES_BLD_Roof.Query.Search(Connection, Transaction, roQuery);

                List <L5BD_GBFRG_1005_Roof> roResult = new List <L5BD_GBFRG_1005_Roof>();
                foreach (var part in roList)
                {
                    L5BD_GBFRG_1005_Roof itemPart = new L5BD_GBFRG_1005_Roof();

                    itemPart.RES_BLD_Roof_Type_RefID = ORM_RES_BLD_Roof_2_RoofType.Query.Search(Connection, Transaction, new ORM_RES_BLD_Roof_2_RoofType.Query()
                    {
                        Tenant_RefID       = securityTicket.TenantID,
                        IsDeleted          = false,
                        RES_BLD_Roof_RefID = part.RES_BLD_RoofID
                    }).Select(r => r.RES_BLD_Roof_Type_RefID).FirstOrDefault();

                    itemPart.RES_BLD_RoofID = part.RES_BLD_RoofID;

                    ORM_RES_STR_Roof strRoof = ORM_RES_STR_Roof.Query.Search(Connection, Transaction, new ORM_RES_STR_Roof.Query()
                    {
                        RES_BLD_Roof_RefID = part.RES_BLD_RoofID,
                        Tenant_RefID       = securityTicket.TenantID,
                        IsDeleted          = false
                    }).FirstOrDefault();
                    if (strRoof != null)
                    {
                        itemPart.RoofsDocumentHeader_RefID = strRoof.DocumentHeader_RefID;

                        Guid[] documentHeaders = ORM_RES_STR_Roof_PropertyAssessment.Query.Search(Connection, Transaction, new ORM_RES_STR_Roof_PropertyAssessment.Query()
                        {
                            STR_Roof_RefID = strRoof.RES_STR_RoofID,
                            IsDeleted      = false,
                            Tenant_RefID   = securityTicket.TenantID
                        }).Select(i => i.DocumentHeader_RefID).ToArray();

                        if (documentHeaders != null)
                        {
                            itemPart.RoofsPropertyDocumentHeaders = documentHeaders;
                        }
                    }

                    roResult.Add(itemPart);
                }
                item.Roofs = roResult.ToArray();

                ORM_RES_BLD_Staircase.Query stQuery = new ORM_RES_BLD_Staircase.Query();
                stQuery.Tenant_RefID   = securityTicket.TenantID;
                stQuery.IsDeleted      = false;
                stQuery.Building_RefID = building.RES_BLD_BuildingID;
                List <ORM_RES_BLD_Staircase> stList = ORM_RES_BLD_Staircase.Query.Search(Connection, Transaction, stQuery);

                List <L5BD_GBFRG_1005_Staircase> stResult = new List <L5BD_GBFRG_1005_Staircase>();
                foreach (var part in stList)
                {
                    L5BD_GBFRG_1005_Staircase itemPart = new L5BD_GBFRG_1005_Staircase();
                    itemPart.RES_BLD_StaircaseID = part.RES_BLD_StaircaseID;

                    ORM_RES_STR_Staircase strStaircase = ORM_RES_STR_Staircase.Query.Search(Connection, Transaction, new ORM_RES_STR_Staircase.Query()
                    {
                        RES_BLD_Staircase_RefID = part.RES_BLD_StaircaseID,
                        Tenant_RefID            = securityTicket.TenantID,
                        IsDeleted = false
                    }).FirstOrDefault();
                    if (strStaircase != null)
                    {
                        itemPart.StaircasesDocumentHeader_RefID = strStaircase.DocumentHeader_RefID;

                        Guid[] documentHeaders = ORM_RES_STR_Staircase_PropertyAssessment.Query.Search(Connection, Transaction, new ORM_RES_STR_Staircase_PropertyAssessment.Query()
                        {
                            STR_Staircase_RefID = strStaircase.RES_STR_StaircaseID,
                            IsDeleted           = false,
                            Tenant_RefID        = securityTicket.TenantID
                        }).Select(i => i.DocumentHeader_RefID).ToArray();

                        if (documentHeaders != null)
                        {
                            itemPart.StaircasesPropertyDocumentHeaders = documentHeaders;
                        }
                    }
                    stResult.Add(itemPart);
                }
                item.Staircases = stResult.ToArray();


                item.Building_BalconyPortionPercent        = building.Building_BalconyPortionPercent;
                item.Building_DocumentationStructure_RefID = building.Building_DocumentationStructure_RefID;
                item.Building_ElevatorCoveragePercent      = building.Building_ElevatorCoveragePercent;
                item.Building_Name = building.Building_Name;
                item.Building_NumberOfAppartments         = building.Building_NumberOfAppartments;
                item.Building_NumberOfFloors              = building.Building_NumberOfFloors;
                item.Building_NumberOfOccupiedAppartments = building.Building_NumberOfOccupiedAppartments;
                item.Building_NumberOfOffices             = building.Building_NumberOfOffices;
                item.Building_NumberOfOtherUnits          = building.Building_NumberOfOtherUnits;
                item.Building_NumberOfProductionUnits     = building.Building_NumberOfProductionUnits;
                item.Building_NumberOfRetailUnits         = building.Building_NumberOfRetailUnits;
                item.IsContaminationSuspected             = building.IsContaminationSuspected;
                item.RES_BLD_BuildingID = building.RES_BLD_BuildingID;

                ORM_RES_BLD_Building_2_GarbageContainerType.Query gctQuery = new ORM_RES_BLD_Building_2_GarbageContainerType.Query();
                gctQuery.Tenant_RefID           = securityTicket.TenantID;
                gctQuery.IsDeleted              = false;
                gctQuery.RES_BLD_Building_RefID = building.RES_BLD_BuildingID;
                List <ORM_RES_BLD_Building_2_GarbageContainerType> garbageContainerType = ORM_RES_BLD_Building_2_GarbageContainerType.Query.Search(Connection, Transaction, gctQuery);


                ORM_RES_BLD_Building_2_BuildingType.Query b2tQuery = new ORM_RES_BLD_Building_2_BuildingType.Query();
                b2tQuery.Tenant_RefID           = securityTicket.TenantID;
                b2tQuery.IsDeleted              = false;
                b2tQuery.RES_BLD_Building_RefID = building.RES_BLD_BuildingID;
                List <ORM_RES_BLD_Building_2_BuildingType> buildingType = ORM_RES_BLD_Building_2_BuildingType.Query.Search(Connection, Transaction, b2tQuery);


                ORM_RES_BLD_Building_Type.Query btQuery = new ORM_RES_BLD_Building_Type.Query();
                btQuery.Tenant_RefID            = securityTicket.TenantID;
                btQuery.IsDeleted               = false;
                btQuery.RES_BLD_Building_TypeID = buildingType.FirstOrDefault().RES_BLD_Building_Type_RefID;
                List <ORM_RES_BLD_Building_Type> btList = ORM_RES_BLD_Building_Type.Query.Search(Connection, Transaction, btQuery);

                ORM_RES_BLD_GarbageContainerType.Query gcQuery = new ORM_RES_BLD_GarbageContainerType.Query();
                gcQuery.Tenant_RefID = securityTicket.TenantID;
                gcQuery.IsDeleted    = false;
                gcQuery.RES_BLD_GarbageContainerTypeID = garbageContainerType.FirstOrDefault().RES_BLD_GarbageContainerType_RefID;
                List <ORM_RES_BLD_GarbageContainerType> gcList = ORM_RES_BLD_GarbageContainerType.Query.Search(Connection, Transaction, gcQuery);

                if (btList.Count != 0)
                {
                    item.Building_Type = btList.FirstOrDefault().BuildingType_Name;
                }
                if (gcList.Count != 0)
                {
                    item.Building_GarbageContainerType = gcList.FirstOrDefault().GarbageContainerType_Name;
                }

                item.QuestionnaireVersion_RefID = revision.QuestionnaireVersion_RefID;
                item.RES_DUD_RevisionID         = revision.RES_DUD_RevisionID;

                returnList.Add(item);
            }

            returnValue.Result = returnList.ToArray();
            return(returnValue);

            #endregion UserCode
        }