Пример #1
0
 public void LeaseAgreementDelete(LeaseAgreementDto dto)
 {
     try
     {
         using (var db = new ONRRDatabaseEntities())
         {
             db.LeaseAgreementsDelete(dto.LeaseAgreementID);
         }
     }
     catch (Exception ex)
     {
         log.Error(ex.Message + Environment.NewLine + ex.StackTrace);
         throw;
     }
 }
Пример #2
0
 public void LeaseAgreementUpdate(LeaseAgreementDto dto)
 {
     try
     {
         using (var db = new ONRRDatabaseEntities())
         {
             db.LeaseAgreementsUpdate(dto.LeaseAgreementID, dto.LeaseID, dto.AgreementID, dto.EffectiveFrom,
                                      dto.EffectiveFrom, dto.TractFactor, dto.OverrideTractFactor, dto.MarketShare, dto.TractAcreage);
         }
     }
     catch (Exception ex)
     {
         log.Error(ex.Message + Environment.NewLine + ex.StackTrace);
         throw;
     }
 }
Пример #3
0
        public void LeaseAgreementCreate(LeaseAgreementDto dto)
        {
            try
            {
                using (var db = new ONRRDatabaseEntities())
                {
                    var newId = new ObjectParameter("newId", 0);

                    var id = db.LeaseAgreementsInsert(dto.LeaseID, dto.AgreementID, dto.EffectiveFrom,
                                                      dto.EffectiveFrom, dto.TractFactor, dto.OverrideTractFactor, dto.MarketShare, dto.TractAcreage, newId);
                }
            }
            catch (Exception ex)
            {
                log.Error(ex.ToString());
                throw;
            }
        }
        public virtual void HandleLeaseAgreementEvent(LeaseAgreementDto leaseAgreementDto, TenantInfo tenantInfo)
        {
            // Add Cross-Tenant Permissions between Asset Owners and Customer based on the new Lease Agreement
            //      Permissions are for Incidents, WorkOrders, Estimates, Assets and Users

            int assetOwnerTenantId = (int)_assetOwnerRepository.Get((int)leaseAgreementDto.AssetOwnerId).TenantId;
            int customerTenantId   = (int)_customerRepository.Get((int)leaseAgreementDto.CustomerId).TenantId;

            List <string> entities = new List <string>()
            {
                "Incident", "WorkOrder", "Estimate", "Asset", "User"
            };
            List <int> tenantIds = new List <int> {
                assetOwnerTenantId, customerTenantId
            };

            var allCtps = _crossTenantPermissionRepository.GetAllList();

            bool clearCache = false;

            foreach (var entity in entities)
            {
                foreach (var tenantId in tenantIds)
                {
                    int    otherTenantId = (tenantId == tenantIds.Last()) ? tenantIds.First() : tenantIds.Last();
                    string tenantType    = (tenantId == tenantIds.First()) ? "A" : "C";

                    var existingPermission = allCtps.Where(p => p.TenantId == tenantId && p.EntityType == entity).FirstOrDefault();

                    if (existingPermission != null)
                    {
                        var existingIds = existingPermission.Tenants.Split(',').ToList().Select(int.Parse).ToList();
                        if (!existingIds.Contains(otherTenantId))
                        {
                            existingIds.Add(otherTenantId);

                            var ctp = _crossTenantPermissionRepository.GetAll().Where(p => p.TenantId == tenantId && p.EntityType == entity).FirstOrDefault();
                            ctp.Tenants = string.Join(",", existingIds);
                            _crossTenantPermissionRepository.Update(ctp);
                            clearCache = true;
                        }
                    }
                    else
                    {
                        CrossTenantPermission ctp = new CrossTenantPermission()
                        {
                            EntityType  = entity,
                            TenantId    = tenantId,
                            Tenants     = otherTenantId.ToString(),
                            TenantType  = tenantType,
                            TenantRefId = tenantId
                        };

                        _crossTenantPermissionRepository.Insert(ctp);
                        clearCache = true;
                    }
                }
            }
            if (clearCache)
            {
                _cacheManager.GetCrossTenantPermissionCache().Clear();
            }
        }