Ejemplo n.º 1
0
        public CompanyBuildingItem GetFloorItems(int?buildingId, int?companyId)
        {
            var building        = _buildingRepository.FindById(buildingId.Value);
            var building_ids    = GetUserBuildings(_buildingRepository, _userRepository);
            var buildingObjects =
                _buildingObjectRepository.FindAll().Where(x => !x.IsDeleted && x.BuildingId == buildingId && x.TypeId == 1);

            var result = new CompanyBuildingItem()
            {
                BuildingId   = buildingId,
                IsAvailable  = building_ids.Contains(buildingId.Value),
                BuildingName = building.Name
            };

            var floors = new List <CompanyFloorItem>();
            var companyBuildingObjects = companyId == null
                                             ? null
                                             : _companyBuildingObjectRepository.FindAll().Where(
                x => x.CompanyId == companyId.Value && x.BuildingObject.BuildingId == buildingId.Value);

            foreach (var buildingObject in buildingObjects)
            {
                var item = new CompanyFloorItem();
                item.CompanyId        = companyId;
                item.BuildingObjectId = buildingObject.Id;
                item.IsAvailable      = building_ids.Contains(buildingObject.BuildingId);
                var cbo = companyBuildingObjects == null ? null : companyBuildingObjects.Where(x => x.BuildingObjectId == buildingObject.Id).FirstOrDefault();
                if (cbo == null)
                {
                    item.IsSelected = false;
                    item.Id         = null;
                }
                else
                {
                    item.IsSelected = !cbo.IsDeleted;
                    item.Id         = cbo.Id;
                }
                floors.Add(item);
            }
            result.CompanyFloors = floors;
            return(result);
        }
        public void DeleteCompanyBuildingObjects(int companyId, string host)
        {
            var cc      = _companyRepository.FindById(companyId);
            var message = new StringBuilder();

            message.Append(string.Format("Building objects for Company '{0}' changed. ", cc.Name));
            using (IUnitOfWork work = UnitOfWork.Begin())
            {
                IEnumerable <CompanyBuildingObject> objects = _companyBuildingObjectRepository.FindAll(x => x.CompanyId == companyId && !x.IsDeleted && x.BuildingObject.TypeId == 1);

                foreach (var item in objects)
                {
                    item.IsDeleted = true;
                    message.Append(string.Format("Room '{0}' in '{1}' deleted. ", item.BuildingObject.Description,
                                                 item.BuildingObject.Building.Name));
                }

                work.Commit();

                _logService.CreateLog(CurrentUser.Get().Id, "web", flag, host, CurrentUser.Get().CompanyId, message.ToString());
            }
        }
Ejemplo n.º 3
0
        public ActionResult Camera()
        {
            var ctvm = new CompanyTreeViewModel();
            var role_building_ids = GetUserBuildings(_buildingRepository, _userRepository, CurrentUser.Get().Id);

            ctvm.Countries =
                from country in _countryRepository.FindAll()
                select
                new Node
            {
                ParentId = 0,
                MyId     = country.Id,
                Name     = country.Name
            };

            ctvm.Towns =
                from town in _locationRepository.FindAll(x => !x.IsDeleted)
                select
                new Node
            {
                ParentId = town.CountryId,
                MyId     = town.Id,
                Name     = town.Name
            };

            //offices is buildings
            ctvm.Offices =
                from office in _buildingRepository.FindAll(x => !x.IsDeleted && role_building_ids.Contains(x.Id))
                select
                new Node
            {
                ParentId = office.LocationId,
                MyId     = office.Id,
                Name     = office.Name
            };


            ctvm.Towns     = ctvm.Towns.Where(town => ctvm.Offices.Any(off => off.ParentId == town.MyId));
            ctvm.Countries = ctvm.Countries.Where(country => ctvm.Towns.Any(town => town.ParentId == country.MyId));

            List <int> companyIds = (from c in _companyRepository.FindAll(x => !x.IsDeleted && x.ParentId == null && x.Active) select c.Id).ToList();

            if (CurrentUser.Get().IsCompanyManager)
            {
                int?companyId = CurrentUser.Get().CompanyId;
                companyIds = (from c in _companyRepository.FindAll(c => !c.IsDeleted && c.Active && (c.Id == companyId || c.ParentId == companyId)) select c.Id).ToList();
            }

            ctvm.Companies =
                from company in
                _companyBuildingObjectRepository.FindAll(x => !x.IsDeleted && companyIds.Contains(x.CompanyId))
                select
                new Node
            {
                ParentId = company.BuildingObject.BuildingId,
                MyId     = company.CompanyId,
                Name     = company.Company.Name
            };

            ctvm.Companies = ctvm.Companies.Distinct(new NodeEqualityComparer());

            ctvm.Partners =
                from partner in
                _companyRepository.FindAll(x => !x.IsDeleted && x.ParentId != null && companyIds.Contains(x.ParentId.Value))
                select
                new Node
            {
                ParentId = partner.ParentId.Value,
                MyId     = partner.Id,
                Name     = partner.Name
            };

            List <Node> Cameras = new List <Node>();
            string      query   = @"select FSC.Name as CameraName , FSC.Id,cmpbo.CompanyId from CompanyBuildingObjects as cmpbo inner join FSBuildingObjectCameras fsboc on cmpbo.BuildingObjectId= fsboc.BuildingObjectId inner join FSCameras FSC ON FSBOC.CameraId= FSC.Id ";
            var         Camera  = db.Database.SqlQuery <CameraDetals>(query);

            foreach (var items1 in Camera)
            {
                Cameras.Add(new Node()
                {
                    ParentId = items1.CompanyId, MyId = items1.Id, Name = items1.CameraName
                });
            }
            ctvm.Cameras = Cameras;
            //ctvm.Cameras =
            //           from Camera in
            //               _IVideoAccessRepository.FindAll(x => companyIds.Contains(Convert.ToInt32(x.CompanyId)))
            //           select
            //               new Node
            //               {
            //                   ParentId = Camera.CompanyId,
            //                   MyId = Camera.Id,
            //                   Name = Camera.CameraName
            //               };
            return(PartialView("Camera", ctvm));
        }
Ejemplo n.º 4
0
        public ActionResult GetTree()
        {
            var ctvm = new CompanyTreeViewModel();
            var role_building_ids = GetUserBuildings(_buildingRepository, _userRepository, CurrentUser.Get().Id);

            ctvm.Countries =
                from country in _countryRepository.FindAll()
                select
                new Node
            {
                ParentId = 0,
                MyId     = country.Id,
                Name     = country.Name
            };

            ctvm.Towns =
                from town in _locationRepository.FindAll(x => !x.IsDeleted)
                select
                new Node
            {
                ParentId = town.CountryId,
                MyId     = town.Id,
                Name     = town.Name
            };

            ctvm.Offices =
                from office in _buildingRepository.FindAll(x => !x.IsDeleted && role_building_ids.Contains(x.Id))
                select
                new Node
            {
                ParentId = office.LocationId,
                MyId     = office.Id,
                Name     = office.Name
            };

            ctvm.Towns     = ctvm.Towns.Where(town => ctvm.Offices.Any(off => off.ParentId == town.MyId));
            ctvm.Countries = ctvm.Countries.Where(country => ctvm.Towns.Any(town => town.ParentId == country.MyId));

            List <int> companyIds = (from c in _companyRepository.FindAll(x => !x.IsDeleted && x.ParentId == null && x.Active) select c.Id).ToList();

            if (CurrentUser.Get().IsCompanyManager)
            {
                int?companyId = CurrentUser.Get().CompanyId;
                companyIds = (from c in _companyRepository.FindAll(c => !c.IsDeleted && c.Active && (c.Id == companyId || c.ParentId == companyId)) select c.Id).ToList();
            }

            ctvm.Companies =
                from company in
                _companyBuildingObjectRepository.FindAll(x => !x.IsDeleted && companyIds.Contains(x.CompanyId))
                select
                new Node
            {
                ParentId = company.BuildingObject.BuildingId,
                MyId     = company.CompanyId,
                Name     = company.Company.Name
            };

            ctvm.Companies = ctvm.Companies.Distinct(new NodeEqualityComparer());

            ctvm.Partners =
                from partner in
                _companyRepository.FindAll(x => !x.IsDeleted && x.ParentId != null && companyIds.Contains(x.ParentId.Value))
                select
                new Node
            {
                ParentId = partner.ParentId.Value,
                MyId     = partner.Id,
                Name     = partner.Name
            };

            ctvm.Floors =
                from floor in
                _companyBuildingObjectRepository.FindAll(x => !x.IsDeleted && companyIds.Contains(x.CompanyId) && x.BuildingObject.TypeId == 1)
                select
                new Node
            {
                ParentId   = floor.CompanyId,
                MyId       = floor.Id,
                Name       = floor.BuildingObject.Description,
                BuildingId = floor.BuildingObject.BuildingId
            };

            return(PartialView("UserTree", ctvm));
        }