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
        }
Exemplo n.º 2
0
        protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5BD_SB_1359 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var  returnValue   = new FR_Guid();
            bool editedVersion = false;

            ORM_RES_BLD_Building building = new ORM_RES_BLD_Building();
            if (Parameter.RES_BLD_BuildingID != Guid.Empty)
            {
                var result = building.Load(Connection, Transaction, Parameter.RES_BLD_BuildingID);
                if (result.Status != FR_Status.Success || building.RES_BLD_BuildingID == Guid.Empty)
                {
                    var error = new FR_Guid();
                    error.ErrorMessage = "No Such ID";
                    error.Status       = FR_Status.Error_Internal;
                    return(error);
                }

                List <ORM_RES_DUD_Revision> revisions = new List <ORM_RES_DUD_Revision>();
                revisions = ORM_RES_DUD_Revision.Query.Search(Connection, Transaction, new ORM_RES_DUD_Revision.Query()
                {
                    RES_BLD_Building_RefID = Parameter.RES_BLD_BuildingID,
                    Tenant_RefID           = securityTicket.TenantID,
                    IsDeleted = false
                });

                if (revisions.Count > 0)
                {
                    //building is connected to revision. create new with same properties if IsBuildingForEdit returns 0.
                    if (IsBuildingForEdit(Connection, Transaction, Parameter, building, securityTicket) == 0)
                    {
                        building      = new ORM_RES_BLD_Building();
                        editedVersion = true;
                    }
                    else
                    {
                        var noEdit = new FR_Guid();
                        noEdit.ErrorMessage = "No need to be edited.";
                        noEdit.Status       = FR_Status.Success;
                        return(noEdit);
                    }
                }
            }

            if (building.BuildingRevisionHeader_RefID == Guid.Empty)
            {
                ORM_RES_BLD_Building_RevisionHeader revisionHeader = new ORM_RES_BLD_Building_RevisionHeader();
                revisionHeader.RES_BLD_Building_RevisionHeaderID = Guid.NewGuid();
                revisionHeader.CurrentBuildingVersion_RefID      = building.RES_BLD_BuildingID;
                revisionHeader.RealestateProperty_RefID          = Parameter.RealestatePropertyID;
                revisionHeader.Tenant_RefID = securityTicket.TenantID;
                revisionHeader.Save(Connection, Transaction);
                building.BuildingRevisionHeader_RefID = revisionHeader.RES_BLD_Building_RevisionHeaderID;

                ORM_DOC_Structure_Header structureHeader = new ORM_DOC_Structure_Header();
                structureHeader.Save(Connection, Transaction);
                building.Building_DocumentationStructure_RefID = structureHeader.DOC_Structure_HeaderID;
            }

            building.Building_BalconyPortionPercent = Parameter.Building_BalconyPortionPercent;

            //if building is connected with revision, copied building has to have different name.
            building.Building_Name = editedVersion ? Parameter.Building_Name + " edit" : Parameter.Building_Name;

            building.IsContaminationSuspected             = Parameter.IsContaminationSuspected;
            building.Building_NumberOfFloors              = Parameter.Building_NumberOfFloors;
            building.Building_ElevatorCoveragePercent     = Parameter.Building_ElevatorCoveragePercent;
            building.Building_NumberOfAppartments         = Parameter.Building_NumberOfAppartments;
            building.Building_NumberOfOccupiedAppartments = Parameter.Building_NumberOfOccupiedAppartments;
            building.Building_NumberOfOffices             = Parameter.Building_NumberOfOffices;
            building.Building_NumberOfRetailUnits         = Parameter.Building_NumberOfRetailUnits;
            building.Building_NumberOfProductionUnits     = Parameter.Building_NumberOfProductionUnits;
            building.Building_NumberOfOtherUnits          = Parameter.Building_NumberOfOtherUnits;
            building.Tenant_RefID = securityTicket.TenantID;
            building.Save(Connection, Transaction);

            ORM_RES_BLD_Building_2_GarbageContainerType.Query build2GarbQuery = new ORM_RES_BLD_Building_2_GarbageContainerType.Query();
            build2GarbQuery.RES_BLD_Building_RefID = building.RES_BLD_BuildingID;
            build2GarbQuery.Tenant_RefID           = securityTicket.TenantID;
            List <ORM_RES_BLD_Building_2_GarbageContainerType> buildingsToGarbage = ORM_RES_BLD_Building_2_GarbageContainerType.Query.Search(Connection, Transaction, build2GarbQuery);

            if (buildingsToGarbage.Count != 0)
            {
                ORM_RES_BLD_Building_2_GarbageContainerType garbage = buildingsToGarbage[0];
                garbage.RES_BLD_GarbageContainerType_RefID = Parameter.RES_BLD_GarbageContainerTypeID;
                garbage.Save(Connection, Transaction);
            }
            else
            {
                ORM_RES_BLD_Building_2_GarbageContainerType garbage = new ORM_RES_BLD_Building_2_GarbageContainerType();
                garbage.RES_BLD_GarbageContainerType_RefID = Parameter.RES_BLD_GarbageContainerTypeID;
                garbage.RES_BLD_Building_RefID             = building.RES_BLD_BuildingID;
                garbage.Tenant_RefID = securityTicket.TenantID;
                garbage.Save(Connection, Transaction);
            }

            ORM_RES_BLD_Building_2_BuildingType.Query buildTypeQuery = new ORM_RES_BLD_Building_2_BuildingType.Query();
            buildTypeQuery.RES_BLD_Building_RefID = building.RES_BLD_BuildingID;
            buildTypeQuery.Tenant_RefID           = securityTicket.TenantID;
            List <ORM_RES_BLD_Building_2_BuildingType> buildingsType = ORM_RES_BLD_Building_2_BuildingType.Query.Search(Connection, Transaction, buildTypeQuery);

            if (buildingsType.Count != 0)
            {
                ORM_RES_BLD_Building_2_BuildingType buildingType = buildingsType[0];
                buildingType.RES_BLD_Building_Type_RefID = Parameter.RES_BLD_Building_TypeID;
                buildingType.RES_BLD_Building_RefID      = building.RES_BLD_BuildingID;
                buildingType.Save(Connection, Transaction);
            }
            else
            {
                ORM_RES_BLD_Building_2_BuildingType buildingType = new ORM_RES_BLD_Building_2_BuildingType();
                buildingType.RES_BLD_Building_RefID      = building.RES_BLD_BuildingID;
                buildingType.RES_BLD_Building_Type_RefID = Parameter.RES_BLD_Building_TypeID;
                buildingType.Tenant_RefID = securityTicket.TenantID;
                buildingType.Save(Connection, Transaction);
            }

            if (Parameter.RES_BLD_BuildingID == Guid.Empty || editedVersion)
            {
                for (int i = 0; i < Parameter.AppartmentCount; i++)
                {
                    ORM_RES_BLD_Apartment newAppartment = new ORM_RES_BLD_Apartment();
                    newAppartment.Building_RefID = building.RES_BLD_BuildingID;
                    newAppartment.Tenant_RefID   = securityTicket.TenantID;
                    newAppartment.Save(Connection, Transaction);
                }

                for (int i = 0; i < Parameter.staircasesCount; i++)
                {
                    ORM_RES_BLD_Staircase newStaircase = new ORM_RES_BLD_Staircase();
                    newStaircase.Building_RefID = building.RES_BLD_BuildingID;
                    newStaircase.Tenant_RefID   = securityTicket.TenantID;
                    newStaircase.Save(Connection, Transaction);
                }

                for (int i = 0; i < Parameter.outdoorfacilitiesCount; i++)
                {
                    ORM_RES_BLD_OutdoorFacility newOutdoorfacility = new ORM_RES_BLD_OutdoorFacility();
                    newOutdoorfacility.Building_RefID = building.RES_BLD_BuildingID;
                    newOutdoorfacility.Tenant_RefID   = securityTicket.TenantID;
                    newOutdoorfacility.Save(Connection, Transaction);
                }

                for (int i = 0; i < Parameter.facadesCount; i++)
                {
                    ORM_RES_BLD_Facade newFacade = new ORM_RES_BLD_Facade();
                    newFacade.Building_RefID = building.RES_BLD_BuildingID;
                    newFacade.Tenant_RefID   = securityTicket.TenantID;
                    newFacade.Save(Connection, Transaction);
                }

                for (int i = 0; i < Parameter.roofCount; i++)
                {
                    ORM_RES_BLD_Roof newRoof = new ORM_RES_BLD_Roof();
                    newRoof.Building_RefID = building.RES_BLD_BuildingID;
                    newRoof.Tenant_RefID   = securityTicket.TenantID;
                    newRoof.Save(Connection, Transaction);
                }

                for (int i = 0; i < Parameter.atticsCount; i++)
                {
                    ORM_RES_BLD_Attic newAttic = new ORM_RES_BLD_Attic();
                    newAttic.Building_RefID = building.RES_BLD_BuildingID;
                    newAttic.Tenant_RefID   = securityTicket.TenantID;
                    newAttic.Save(Connection, Transaction);
                }

                for (int i = 0; i < Parameter.basementsCount; i++)
                {
                    ORM_RES_BLD_Basement newBasement = new ORM_RES_BLD_Basement();
                    newBasement.Building_RefID = building.RES_BLD_BuildingID;
                    newBasement.Tenant_RefID   = securityTicket.TenantID;
                    newBasement.Save(Connection, Transaction);
                }

                for (int i = 0; i < Parameter.hvarcsCount; i++)
                {
                    ORM_RES_BLD_HVACR newHvacr = new ORM_RES_BLD_HVACR();
                    newHvacr.Building_RefID = building.RES_BLD_BuildingID;
                    newHvacr.Tenant_RefID   = securityTicket.TenantID;
                    newHvacr.Save(Connection, Transaction);
                }
            }
            else
            {
                ORM_RES_BLD_Apartment.Query appartmentQuery = new ORM_RES_BLD_Apartment.Query();
                appartmentQuery.Building_RefID = Parameter.RES_BLD_BuildingID;
                appartmentQuery.Tenant_RefID   = securityTicket.TenantID;
                appartmentQuery.IsDeleted      = false;
                List <ORM_RES_BLD_Apartment> appartmentList = ORM_RES_BLD_Apartment.Query.Search(Connection, Transaction, appartmentQuery);

                if (appartmentList.Count > Parameter.AppartmentCount)
                {
                    int counts = appartmentList.Count - Parameter.AppartmentCount;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_Apartment deleteAppartment = appartmentList[i];
                        deleteAppartment.Remove(Connection, Transaction);
                    }
                }
                else if (appartmentList.Count < Parameter.AppartmentCount)
                {
                    int counts = Parameter.AppartmentCount - appartmentList.Count;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_Apartment newAppartment = new ORM_RES_BLD_Apartment();
                        newAppartment.Building_RefID = Parameter.RES_BLD_BuildingID;
                        newAppartment.Tenant_RefID   = securityTicket.TenantID;
                        newAppartment.Save(Connection, Transaction);
                    }
                }

                ORM_RES_BLD_OutdoorFacility.Query outdoorfacilitiesQuery = new ORM_RES_BLD_OutdoorFacility.Query();
                outdoorfacilitiesQuery.Building_RefID = Parameter.RES_BLD_BuildingID;
                outdoorfacilitiesQuery.Tenant_RefID   = securityTicket.TenantID;
                outdoorfacilitiesQuery.IsDeleted      = false;
                List <ORM_RES_BLD_OutdoorFacility> outdoorfacilitiesList = ORM_RES_BLD_OutdoorFacility.Query.Search(Connection, Transaction, outdoorfacilitiesQuery);

                if (outdoorfacilitiesList.Count > Parameter.outdoorfacilitiesCount)
                {
                    int counts = outdoorfacilitiesList.Count - Parameter.outdoorfacilitiesCount;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_OutdoorFacility deleteOutdoor = outdoorfacilitiesList[i];
                        deleteOutdoor.Remove(Connection, Transaction);
                    }
                }
                else if (outdoorfacilitiesList.Count < Parameter.outdoorfacilitiesCount)
                {
                    int counts = Parameter.outdoorfacilitiesCount - outdoorfacilitiesList.Count;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_OutdoorFacility newOutdoorFacility = new ORM_RES_BLD_OutdoorFacility();
                        newOutdoorFacility.Building_RefID = building.RES_BLD_BuildingID;
                        newOutdoorFacility.Tenant_RefID   = securityTicket.TenantID;
                        newOutdoorFacility.Save(Connection, Transaction);
                    }
                }


                ORM_RES_BLD_Staircase.Query staircaseQuery = new ORM_RES_BLD_Staircase.Query();
                staircaseQuery.Building_RefID = Parameter.RES_BLD_BuildingID;
                staircaseQuery.Tenant_RefID   = securityTicket.TenantID;
                staircaseQuery.IsDeleted      = false;
                List <ORM_RES_BLD_Staircase> staircaseList = ORM_RES_BLD_Staircase.Query.Search(Connection, Transaction, staircaseQuery);

                if (staircaseList.Count > Parameter.staircasesCount)
                {
                    int counts = staircaseList.Count - Parameter.staircasesCount;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_Staircase deleteStaircase = staircaseList[i];
                        deleteStaircase.Remove(Connection, Transaction);
                    }
                }
                else if (staircaseList.Count < Parameter.staircasesCount)
                {
                    int counts = Parameter.staircasesCount - staircaseList.Count;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_Staircase newStaircase = new ORM_RES_BLD_Staircase();
                        newStaircase.Building_RefID = building.RES_BLD_BuildingID;
                        newStaircase.Tenant_RefID   = securityTicket.TenantID;
                        newStaircase.Save(Connection, Transaction);
                    }
                }

                ORM_RES_BLD_Facade.Query facadesQuery = new ORM_RES_BLD_Facade.Query();
                facadesQuery.Building_RefID = Parameter.RES_BLD_BuildingID;
                facadesQuery.Tenant_RefID   = securityTicket.TenantID;
                facadesQuery.IsDeleted      = false;
                List <ORM_RES_BLD_Facade> facadesList = ORM_RES_BLD_Facade.Query.Search(Connection, Transaction, facadesQuery);

                if (facadesList.Count > Parameter.facadesCount)
                {
                    int counts = facadesList.Count - Parameter.facadesCount;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_Facade deleteFacade = facadesList[i];
                        deleteFacade.Remove(Connection, Transaction);
                    }
                }
                else if (facadesList.Count < Parameter.facadesCount)
                {
                    int counts = Parameter.facadesCount - facadesList.Count;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_Facade newFacade = new ORM_RES_BLD_Facade();
                        newFacade.Building_RefID = building.RES_BLD_BuildingID;
                        newFacade.Tenant_RefID   = securityTicket.TenantID;
                        newFacade.Save(Connection, Transaction);
                    }
                }

                ORM_RES_BLD_Roof.Query roofQuery = new ORM_RES_BLD_Roof.Query();
                roofQuery.Building_RefID = Parameter.RES_BLD_BuildingID;
                roofQuery.Tenant_RefID   = securityTicket.TenantID;
                roofQuery.IsDeleted      = false;
                List <ORM_RES_BLD_Roof> roofList = ORM_RES_BLD_Roof.Query.Search(Connection, Transaction, roofQuery);

                if (roofList.Count > Parameter.roofCount)
                {
                    int counts = roofList.Count - Parameter.roofCount;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_Roof deleteRoof = roofList[i];
                        deleteRoof.Remove(Connection, Transaction);
                    }
                }
                else if (roofList.Count < Parameter.roofCount)
                {
                    int counts = Parameter.roofCount - roofList.Count;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_Roof newRoof = new ORM_RES_BLD_Roof();
                        newRoof.Building_RefID = building.RES_BLD_BuildingID;
                        newRoof.Tenant_RefID   = securityTicket.TenantID;
                        newRoof.Save(Connection, Transaction);
                    }
                }

                ORM_RES_BLD_Attic.Query atticsQuery = new ORM_RES_BLD_Attic.Query();
                atticsQuery.Building_RefID = Parameter.RES_BLD_BuildingID;
                atticsQuery.Tenant_RefID   = securityTicket.TenantID;
                atticsQuery.IsDeleted      = false;
                List <ORM_RES_BLD_Attic> atticsList = ORM_RES_BLD_Attic.Query.Search(Connection, Transaction, atticsQuery);

                if (atticsList.Count > Parameter.atticsCount)
                {
                    int counts = atticsList.Count - Parameter.atticsCount;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_Attic deleteAttic = atticsList[i];
                        deleteAttic.Remove(Connection, Transaction);
                    }
                }
                else if (atticsList.Count < Parameter.atticsCount)
                {
                    int counts = Parameter.atticsCount - atticsList.Count;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_Attic newAttic = new ORM_RES_BLD_Attic();
                        newAttic.Building_RefID = building.RES_BLD_BuildingID;
                        newAttic.Tenant_RefID   = securityTicket.TenantID;
                        newAttic.Save(Connection, Transaction);
                    }
                }

                ORM_RES_BLD_Basement.Query basementQuery = new ORM_RES_BLD_Basement.Query();
                basementQuery.Building_RefID = Parameter.RES_BLD_BuildingID;
                basementQuery.Tenant_RefID   = securityTicket.TenantID;
                basementQuery.IsDeleted      = false;
                List <ORM_RES_BLD_Basement> basementList = ORM_RES_BLD_Basement.Query.Search(Connection, Transaction, basementQuery);

                if (basementList.Count > Parameter.basementsCount)
                {
                    int counts = basementList.Count - Parameter.basementsCount;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_Basement deleteBasement = basementList[i];
                        deleteBasement.Remove(Connection, Transaction);
                    }
                }
                else if (basementList.Count < Parameter.basementsCount)
                {
                    int counts = Parameter.basementsCount - basementList.Count;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_Basement newBasement = new ORM_RES_BLD_Basement();
                        newBasement.Building_RefID = building.RES_BLD_BuildingID;
                        newBasement.Tenant_RefID   = securityTicket.TenantID;
                        newBasement.Save(Connection, Transaction);
                    }
                }

                ORM_RES_BLD_HVACR.Query hvacrQuery = new ORM_RES_BLD_HVACR.Query();
                hvacrQuery.Building_RefID = Parameter.RES_BLD_BuildingID;
                hvacrQuery.Tenant_RefID   = securityTicket.TenantID;
                hvacrQuery.IsDeleted      = false;
                List <ORM_RES_BLD_HVACR> hvacrList = ORM_RES_BLD_HVACR.Query.Search(Connection, Transaction, hvacrQuery);

                if (hvacrList.Count > Parameter.hvarcsCount)
                {
                    int counts = hvacrList.Count - Parameter.hvarcsCount;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_HVACR deleteHvacr = hvacrList[i];
                        deleteHvacr.Remove(Connection, Transaction);
                    }
                }
                else if (hvacrList.Count < Parameter.hvarcsCount)
                {
                    int counts = Parameter.hvarcsCount - hvacrList.Count;
                    for (int i = 0; i < counts; i++)
                    {
                        ORM_RES_BLD_HVACR newHvacr = new ORM_RES_BLD_HVACR();
                        newHvacr.Building_RefID = building.RES_BLD_BuildingID;
                        newHvacr.Tenant_RefID   = securityTicket.TenantID;
                        newHvacr.Save(Connection, Transaction);
                    }
                }
            }

            returnValue.Result = building.RES_BLD_BuildingID;

            //Put your code here
            return(returnValue);

            #endregion UserCode
        }