コード例 #1
0
        public async Task <List <GlueCreateDto1> > GetGlueByBuilding(int buildingID)
        {
            var item     = _repoBuilding.FindById(buildingID);
            var lineList = await _repoBuilding.FindAll().Where(x => x.ParentID == item.ID).Select(x => x.ID).ToListAsync();

            List <int> modelNameID = _repoPlan.FindAll().Where(x => lineList.Contains(x.BuildingID)).Select(x => x.BPFCEstablishID).ToList();
            var        lists       = await _repoGlue.FindAll().ProjectTo <GlueCreateDto1>(_configMapper).Where(x => modelNameID.Contains(x.BPFCEstablishID)).OrderByDescending(x => x.ID).Select(x => new GlueCreateDto1
            {
                ID              = x.ID,
                Name            = x.Name,
                GlueID          = x.GlueID,
                Code            = x.Code,
                ModelNo         = x.ModelNo,
                CreatedDate     = x.CreatedDate,
                BPFCEstablishID = x.BPFCEstablishID,
                PathName        = x.PathName,
                PartNameID      = x.PartNameID,
                MaterialNameID  = x.MaterialNameID,
                MaterialName    = x.MaterialName,
                Consumption     = x.Consumption,
                Chemical        = new GlueDto1 {
                    ID = x.GlueID, Name = x.Name
                }
            }).ToListAsync();

            return(lists.DistinctBy(x => x.Name).ToList());

            //return await _repoGlue.FindAll().ProjectTo<GlueCreateDto1>(_configMapper).Where(x=>x.ModalNameID == modelNameID).OrderByDescending(x => x.ID).ToListAsync();
        }
コード例 #2
0
        //Thêm Brand mới vào bảng Line
        public async Task <bool> Add(LineInfoDto model)
        {
            var info = _mapper.Map <LineInfo>(model);

            info.LineID = _repoBuilding.FindAll().FirstOrDefault(x => x.Name.Equals(model.LineName)).ID;
            _repoLine.Add(info);
            return(await _repoLine.SaveAll());
        }
コード例 #3
0
        public ActionResult Edit(int id)
        {
            var hevm    = CreateViewModel <HolidayEditViewModel>();
            var Holiday = _holidayRepository.FindById(id);

            Mapper.Map(Holiday, hevm.Holiday);

            var building_ids = GetUserBuildings(_buildingRepository, _userRepository);
            var buildings    = _buildingRepository.FindAll().Where(x => !x.IsDeleted && building_ids.Contains(x.Id));

            Mapper.Map(buildings, hevm.BuildingItems);

            var ActiveBuildings = GetUserHolidayBuildings(id);

            foreach (int BuildId in ActiveBuildings)
            {
                hevm.BuildingItems.Where(x => x.Value == BuildId.ToString()).First().Selected = true;
            }

            if (!hevm.BuildingItems.Where(x => x.Selected).Any())
            {
                hevm.AllBuildings = true;
            }
            hevm.Holiday.EventStartStr = hevm.Holiday.EventStart.ToString("dd.MM.yyyy");
            return(PartialView(hevm));
        }
コード例 #4
0
        private List <RoleBuildingItem> GetRoleBuildings(int?roleId, bool isCreateMode = false)
        {
            var result       = new List <RoleBuildingItem>();
            var buildings    = _buildingRepository.FindAll().Where(x => !x.IsDeleted);
            var role         = roleId.HasValue ? _roleRepository.FindById(roleId.Value) : null;
            var building_ids = GetUserBuildings(_buildingRepository, _userRepository);

            foreach (var building in buildings)
            {
                var item = new RoleBuildingItem {
                    BuildingId = building.Id, BuildingName = building.Name, RoleId = roleId, IsAvailable = building_ids.Contains(building.Id)
                };
                if (role != null)
                {
                    var roleBuilding = role.RoleBuildings.Where(
                        rb => rb.RoleId == roleId && rb.BuildingId == building.Id).FirstOrDefault();
                    item.IsChecked = roleBuilding == null ? false : !roleBuilding.IsDeleted;
                    item.Id        = roleBuilding != null ? (int?)roleBuilding.Id : null;
                }
                result.Add(item);
            }
            if (isCreateMode)
            {
                result = result.Where(x => building_ids.Contains(x.BuildingId.Value)).ToList();
            }
            return(result);
        }
コード例 #5
0
        public async Task <object> GetBuildingByIngredientAndBatch(string ingredient, string batchValue)
        {
            var ingredientName = ingredient.ToSafetyString();
            var from           = DateTime.Now.Date.AddDays(-3).Date;
            var to             = DateTime.Now.Date.Date;
            var plans          = _repoPlan.FindAll()
                                 .Include(x => x.Building)
                                 .Include(x => x.BPFCEstablish)
                                 .ThenInclude(x => x.Glues)
                                 .Where(x => x.DueDate.Date >= from && x.DueDate.Date <= to)
                                 .Select(x => new
            {
                x.BPFCEstablish.Glues,
                Line = x.Building.ParentID,
                x.DueDate
            });
            var lines = new List <int?>();

            foreach (var plan in plans)
            {
                // lap nhung bpfc chua ingredient search
                foreach (var glue in plan.Glues.Where(x => x.isShow == true && x.Name.Contains(ingredientName.Trim())))
                {
                    lines.Add(plan.Line);
                }
            }
            var listBuilding = lines.Distinct();
            var buildings    = await _repoBuilding.FindAll().Where(x => listBuilding.Contains(x.ID)).ToListAsync();

            return(buildings);
        }
コード例 #6
0
        protected List <int> GetUserBuildings(IBuildingRepository buildingRepository, IUserRepository userRepository, int?userId = null)
        {
            var roleBuildings = buildingRepository.FindAll(x => !x.IsDeleted);

            /*if (!CurrentUser.Get().IsSuperAdmin)//<--!CurrentUser.Get().IsSuperAdmin
             * {
             *  if (userId.HasValue)
             *  {
             *      var userBuildings = userRepository.FindById(userId.HasValue ? userId.Value : CurrentUser.Get().Id).UserBuildings.Where(x => !x.IsDeleted);
             *      roleBuildings = roleBuildings.Where(rb => userBuildings.Any(ub => ub.BuildingId == rb.Id));
             *  }
             * }
             */
            return((from rb in roleBuildings select rb.Id).ToList());
        }
コード例 #7
0
        protected List <int> GetRoleBuildings(IBuildingRepository buildingRepository, IRoleRepository roleRepository)
        {
            var roleBuildings = buildingRepository.FindAll(x => !x.IsDeleted);

            if (!CurrentUser.Get().IsSuperAdmin)
            {
                if (CurrentUser.Get().IsCompanyManager&& CurrentUser.Get().CompanyId == null)
                {
                    return((from rb in roleBuildings select rb.Id).ToList());
                }
                var userRoleBuildings = roleRepository.FindById(CurrentUser.Get().RoleId).RoleBuildings.Where(rb => !rb.IsDeleted);
                roleBuildings = roleBuildings.Where(rb => userRoleBuildings.Any(urb => urb.BuildingId == rb.Id && !urb.IsDeleted));
            }
            return((from rb in roleBuildings select rb.Id).ToList());
        }
コード例 #8
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));
        }
コード例 #9
0
        public ActionResult Create()
        {
            var rvm          = CreateViewModel <CompanyEditViewModel>();
            var building_ids = GetUserBuildings(_buildingRepository, _userRepository);
            var buildings    = _buildingRepository.FindAll().Where(x => !x.IsDeleted && building_ids.Contains(x.Id));

            Mapper.Map(buildings, rvm.BuildingItems);
            rvm.Company.CompanyBuildingItems.Add(new CompanyBuildingItem()
            {
                BuildingItems = rvm.BuildingItems, IsAvailable = true
            });
            var complist = _companyRepository.FindAll().Where(x => x.IsDeleted == false && x.Active == true && x.ParentId == null).OrderBy(y => y.Name).ToList();

            rvm.CompanyItems = complist;
            return(PartialView("Create", rvm));
        }
コード例 #10
0
        public async Task <PagedList <BuildingDto> > GetWithPaginations(PaginationParams param)
        {
            var lists = _repoBuilding.FindAll().ProjectTo <BuildingDto>(_configMapper).OrderByDescending(x => x.ID);

            return(await PagedList <BuildingDto> .CreateAsync(lists, param.PageNumber, param.PageSize));
        }
コード例 #11
0
        public ActionResult GetTree(int? id)
        {
            var ctvm = CreateViewModel<PermissionTreeViewModel>();
            var role_buildingIds = GetUserBuildings(_buildingRepository, _userRepository, CurrentUser.Get().Id);
            if (CurrentUser.Get().IsCompanyManager || CurrentUser.Get().IsCommonUser)
            {
                UserPermissionGroup upg;
                /*
            	var activeUpg =
            		_userPermissionGroupRepository.FindAll().Where(
            			x => x.PermissionIsActive && !x.IsDeleted && x.UserId == CurrentUser.Get().Id).FirstOrDefault();
                */
                var activeUpg =
                _userPermissionGroupRepository.FindByUserId(CurrentUser.Get().Id).Where(
                    x => x.PermissionIsActive && !x.IsDeleted).FirstOrDefault();
                var activeUpgBuildingIds = activeUpg != null ? (from cbo in activeUpg.UserPermissionGroupTimeZones.Where(x => !x.IsDeleted && x.Active) select cbo.BuildingObjectId).ToList() : null;
                if (id.HasValue)
                {
                    upg = _userPermissionGroupRepository.FindById(id.Value);
                    //var cupg = _userPermissionGroupRepository.FindAll(x => x.ParentUserPermissionGroupId == id && x.UserId == CurrentUser.Get().Id);
                    var cupg = _userPermissionGroupRepository.FindByUserId(CurrentUser.Get().Id).Where(x => x.ParentUserPermissionGroupId == id);
                    if (CurrentUser.Get().IsCompanyManager && upg.ParentUserPermissionGroupId == null && cupg.Count() >= 1) { ctvm.IsCurrentUserAssignedGroup = true; }
                    else { ctvm.IsCurrentUserAssignedGroup = upg.PermissionIsActive; }
                }
                else
                {
                    if (_userPermissionGroupRepository.FindByUserId(CurrentUser.Get().Id).Where(x => !x.IsDeleted && x.IsOriginal == true).ToList().Count() == 0) return null;
                    upg = _userPermissionGroupRepository.FindByUserId(CurrentUser.Get().Id).Where(x => !x.IsDeleted && x.IsOriginal == true && x.PermissionIsActive == true).FirstOrDefault();
                    id = upg.Id;
                    ctvm.IsGroupExist = false;
                    ctvm.IsCurrentUserAssignedGroup = false;
                }

                ctvm.IsOriginal = upg.IsOriginal;
                List<int> companyBuildingObjectsIds = (from cbo in upg.UserPermissionGroupTimeZones.Where(x => !x.IsDeleted && (activeUpg == null || activeUpgBuildingIds.Contains(x.BuildingObjectId) || x.Active)) select cbo.BuildingObjectId).ToList();
                if (activeUpgBuildingIds != null)
                {
                    foreach (var actUpgBuildingId in
                        activeUpgBuildingIds.Where(actUpgBuildingId => !companyBuildingObjectsIds.Contains(actUpgBuildingId)))
                    {
                        companyBuildingObjectsIds.Add(actUpgBuildingId);
                    }
                }

                var companyBuildingObjects = _buildingObjectRepository.FindAll(x => !x.IsDeleted && /*role_buildingIds.Contains(x.BuildingId)
                    && */companyBuildingObjectsIds.Contains(x.Id));

                // role_buildingIds.Contains(x.BuildingId) not in need
                List<int> floorsId = (from cbo in companyBuildingObjects.Where(x => x.ParentObjectId.HasValue) select cbo.ParentObjectId.Value).ToList();
                var companyFloorObjects = _buildingObjectRepository.FindAll(x => !x.IsDeleted && floorsId.Contains(x.Id));
                ctvm.Buildings =
                    (from b in
                         (from cbo in companyBuildingObjects select cbo.Building)
                     where !b.IsDeleted
                     select
                         new Node
                         {
                             ParentId = b.LocationId,
                             MyId = b.Id,
                             Name = b.Name
                         }).Distinct(new NodeEqualityComparer()).ToList();

                ctvm.Towns =
                    (from t in
                         (from cbo in companyBuildingObjects select cbo.Building.Location)
                     where !t.IsDeleted
                     select
                         new Node
                         {
                             ParentId = t.CountryId,
                             MyId = t.Id,
                             Name = t.Name
                         }).Distinct(new NodeEqualityComparer()).ToList();

                ctvm.Countries =
                    (from c in
                         (from cbo in companyBuildingObjects select cbo.Building.Location.Country).OrderBy(cc => cc.Name)
                     where !c.IsDeleted
                     select
                         new Node
                         {
                             ParentId = 0,
                             MyId = c.Id,
                             Name = c.Name
                         }).Distinct(new NodeEqualityComparer()).ToList();

                ctvm.Floors =
                    (from f in companyFloorObjects
                     where f.TypeId == (int)BuildingObjectTypes.Floor
                     select
                         new Node
                         {
                             ParentId = f.BuildingId,
                             MyId = f.Id,
                             Name = f.Description,
                             Comment = f.Comment
                         }).Distinct(new NodeEqualityComparer()).ToList();

                ctvm.Objects =
                    (from o in companyBuildingObjects
                     where o.ParentObjectId.HasValue && (o.TypeId == (int)BuildingObjectTypes.Door || o.TypeId == (int)BuildingObjectTypes.Lift || o.TypeId == (int)BuildingObjectTypes.Room)
                     orderby o.TypeId descending
                     select
                         new Node
                         {
                             ParentId = o.ParentObjectId.Value,
                             MyId = o.Id,
                             Name = o.ObjectNr.HasValue ? "#" + o.ObjectNr + " " + o.Description : o.Description,
                             Comment = o.Comment,
                             IsDefaultTimeZone = _userPermissionGroupService.IsDefaultUserTimeZone(o.Id, id.Value),
                             IsRoom = o.TypeId == (int)BuildingObjectTypes.Room ? 1 : 0,
                             StatusIcon = o.StatusIconId.HasValue ? String.Format("../../img/status/{0}.ico", o.StatusIconId) : String.Empty
                         }).Distinct(new NodeEqualityComparer()).ToList();

                ctvm.ActiveObjectIds = _userPermissionGroupService.GetUserBuildingObjectIds(id.Value);
                foreach (var obn in ctvm.Objects)
                {
                    if (obn.IsRoom == 1)
                    {
                        //1 illi 08.05.2018 UserPermissionGroupTimeZone upgtz = _userPermissionGroupTimeZoneRepository.FindAll(x => !x.IsDeleted && x.BuildingObjectId == obn.MyId && x.UserPermissionGroupId == id).FirstOrDefault();
                        int idd = id.GetValueOrDefault();
                        UserPermissionGroupTimeZone upgtz = _userPermissionGroupTimeZoneRepository.FindByPGId(idd).Where(x => !x.IsDeleted && x.BuildingObjectId == obn.MyId && x.UserPermissionGroupId == id).FirstOrDefault();

                        obn.IsArming = upgtz == null ? true : upgtz.IsArming;
                        obn.IsDefaultArming = upgtz == null ? true : upgtz.IsDefaultArming;
                        obn.IsDisarming = upgtz == null ? true : upgtz.IsDisarming;
                        obn.IsDefaultDisarming = upgtz == null ? true : upgtz.IsDefaultDisarming;
                    }
                }
                ctvm.Towns = ctvm.Towns.Where(town => ctvm.Buildings.Any(b => b.ParentId == town.MyId));
                ctvm.Countries = ctvm.Countries.Where(country => ctvm.Towns.Any(town => town.ParentId == country.MyId));
            }
            else
            if (!(CurrentUser.Get().IsCompanyManager || CurrentUser.Get().IsCommonUser))
            {
                IEnumerable<Building> userBuildings;
                if (CurrentUser.Get().IsSuperAdmin)
                {
                    userBuildings = _buildingRepository.FindAll(x => !x.IsDeleted).ToList();
                }
                else
                if (CurrentUser.Get().IsBuildingAdmin)
                {
                    userBuildings = _buildingRepository.FindAll(x => role_buildingIds.Contains(x.Id));
                }
                else return null;
                ctvm.Buildings =
                    (from b in userBuildings
                     select
                         new Node
                         {
                             ParentId = b.LocationId,
                             MyId = b.Id,
                             Name = b.Name
                         }).Distinct(new NodeEqualityComparer()).ToList();

                ctvm.Towns =
                    (from t in (from ub in userBuildings select ub.Location)
                     where !t.IsDeleted
                     select
                         new Node
                         {
                             ParentId = t.CountryId,
                             MyId = t.Id,
                             Name = t.Name
                         }).Distinct(new NodeEqualityComparer()).ToList();

                ctvm.Countries =
                    (from c in (from cbo in userBuildings select cbo.Location.Country).OrderBy(cc => cc.Name)
                     where !c.IsDeleted
                     select
                         new Node
                         {
                             ParentId = 0,
                             MyId = c.Id,
                             Name = c.Name
                         }).Distinct(new NodeEqualityComparer()).ToList();

                List<int> userBuildingIds = (from ub in userBuildings select ub.Id).ToList();
                var userBuildingObjects = _buildingObjectRepository.FindAll(x => !x.IsDeleted && userBuildingIds.Contains(x.BuildingId)).ToList();

                ctvm.Floors =
                    (from f in userBuildingObjects
                     where f.TypeId == (int)BuildingObjectTypes.Floor
                     select
                         new Node
                         {
                             ParentId = f.BuildingId,
                             MyId = f.Id,
                             Name = f.Description,
                             Comment = f.Comment
                         }).Distinct(new NodeEqualityComparer()).ToList();

                ctvm.Objects =
                    (from o in userBuildingObjects
                     where o.ParentObjectId.HasValue && (o.TypeId == (int)BuildingObjectTypes.Door || o.TypeId == (int)BuildingObjectTypes.Lift || o.TypeId == (int)BuildingObjectTypes.Room)
                     orderby o.TypeId descending
                     select
                         new Node
                         {
                             ParentId = o.ParentObjectId.Value,
                             MyId = o.Id,
                             Name = o.ObjectNr.HasValue ? "#" + o.ObjectNr + " " + o.Description : o.Description,
                             Comment = o.Comment,
                             IsDefaultTimeZone = id.HasValue ? _userPermissionGroupService.IsDefaultUserTimeZone(o.Id, id.Value) : true,
                             IsRoom = o.TypeId == (int)BuildingObjectTypes.Room ? 1 : 0,
                             StatusIcon = o.StatusIconId.HasValue ? String.Format("../../img/status/{0}.ico", o.StatusIconId) : String.Empty
                         }).Distinct(new NodeEqualityComparer()).ToList();

                if (id.HasValue)
                {

                    ctvm.ActiveObjectIds = _userPermissionGroupService.GetUserBuildingObjectIds(id.Value);
                    foreach (var obn in ctvm.Objects)
                    {
                        if (obn.IsRoom == 1)
                        {
                            int idd = id.GetValueOrDefault();
                            UserPermissionGroupTimeZone pgtz = _userPermissionGroupTimeZoneRepository.FindByPGId(idd).Where(x => !x.IsDeleted && x.BuildingObjectId == obn.MyId && x.UserPermissionGroupId == id).FirstOrDefault();
                            obn.IsDisarming = pgtz == null ? true : pgtz.IsDisarming;
                            obn.IsDefaultDisarming = pgtz == null ? true : pgtz.IsDefaultDisarming;
                            obn.IsArming = pgtz == null ? true : pgtz.IsArming;
                            obn.IsDefaultArming = pgtz == null ? true : pgtz.IsDefaultArming;
                        }
                    }
                }
                else
                {
                    foreach (var obn in ctvm.Objects)
                    {
                        if (obn.IsRoom == 1)
                        {
                            obn.IsArming = obn.IsDisarming = obn.IsDefaultArming = obn.IsDefaultDisarming = true;
                        }
                    }
                }
                ctvm.Towns = ctvm.Towns.Where(town => ctvm.Buildings.Any(b => b.ParentId == town.MyId));
                ctvm.Countries = ctvm.Countries.Where(country => ctvm.Towns.Any(town => town.ParentId == country.MyId));
            }
            return PartialView("Tree", ctvm);
        }
コード例 #12
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));
        }
コード例 #13
0
        public async Task <object> GetWorkersByLine(string lineID)
        {
            try
            {
                var iotModel = await _repoCycleTime.FindAll().Where(x => x.datetime.Date == DateTime.Now.Date && x.cycleTime <= 90).ToListAsync();

                var WORKER_LEVEL = 5;
                var model        = await(from a in _repoWorker.FindAll()
                                         join b in _repoLine.FindAll().Where(x => x.Level == WORKER_LEVEL && x.Name == lineID) on a.BuildingID equals b.ID
                                         join c in _repoBtn.FindAll() on a.ID equals c.WorkerID
                                         select new WorkerListDto
                {
                    FullName   = a.FullName,
                    WorkerID   = a.ID,
                    LineID     = b.ID,
                    ButtonCode = c.Code,
                    ButtonID   = c.ID,
                    Standard   = c.Standard,
                    LineName   = b.Name,
                    Operation  = a.Operation,
                    TaktTime   = c.TaktTime
                }).ToListAsync();
                var data = new List <WorkerListDto>();
                foreach (var a in model)
                {
                    var avg       = iotModel.Where(x => x.BtnID == a.ButtonID).Count() > 0 ? iotModel.Where(x => x.BtnID == a.ButtonID).Average(x => x.cycleTime) : 0;
                    var best      = iotModel.Where(x => x.BtnID == a.ButtonID).Count() > 0 ? iotModel.Where(x => x.BtnID == a.ButtonID).Min(x => x.cycleTime) : 0;
                    var latest    = iotModel.Where(x => x.BtnID == a.ButtonID).LastOrDefault() == null ? 0 : iotModel.Where(x => x.BtnID == a.ButtonID).LastOrDefault().cycleTime;
                    var frequency = iotModel.Where(x => x.BtnID == a.ButtonID).Count();
                    data.Add(new WorkerListDto
                    {
                        FullName   = a.FullName,
                        WorkerID   = a.WorkerID,
                        LineID     = a.LineID,
                        ButtonCode = a.ButtonCode,
                        ButtonID   = a.ButtonID,
                        Standard   = a.Standard,
                        LineName   = a.LineName,
                        Operation  = a.Operation,
                        TaktTime   = a.TaktTime,
                        Avg        = Math.Round(avg, 1),
                        Best       = best,
                        Latest     = latest,
                        Frequency  = frequency
                    });
                }

                return(new
                {
                    data = data,
                    dataIoT = iotModel
                });
            }
            catch
            {
                return(new
                {
                    data = new List <WorkerListDto>(),
                    dataIoT = new List <WorkerListDto>(),
                });
            }
        }