Ejemplo n.º 1
0
        /// <summary>
        /// 根据资产编号返回资产信息
        /// </summary>
        /// <param name="ID">资产编号</param>
        /// <returns></returns>
        public AssetsOutputDto GetAssetsBysn(string ID)
        {
            var dto = from assetse in SMOSECDbContext.Assetss
                      //join user in SMOSECDbContext.Userman on assetse.use_man_id equals user.id
                      join type in SMOSECDbContext.AssetsTypes on assetse.asset_type_id equals type.id
                      join location in SMOSECDbContext.AssLocations on assetse.machine_room_id equals location.id
                      join brand in SMOSECDbContext.AssetsBrands on assetse.brand_id equals brand.id
                      //join team in SMOSECDbContext.AssetsTeam on assetse.team_id equals team.id
                      //join pro in SMOSECDbContext.AssetsProject on assetse.project_id equals pro.id
                      join payman in SMOSECDbContext.AssetPayman on assetse.pay_man_id equals payman.id
                      //join role in SMOSECDbContext.AssetRole on assetse.role_id equals role.id
                      where assetse.sn == ID
                      select new AssetsOutputDto
            {
                id           = assetse.id,
                AssId        = assetse.uuid,
                IP           = assetse.IP,
                Num          = assetse.asset_number,
                SN           = assetse.sn,
                TypeId       = assetse.asset_type_id,
                TypeName     = type.name,
                Brandname    = brand.name,
                LocationId   = assetse.machine_room_id,
                LocationName = location.name,
                Position     = assetse.position,
                Status       = assetse.status,
                //StatusName = "",
                Payman = payman.name,
                //Project = pro.name,
                //Team = team.name,
                //Role = role.name,
                CurrentUser = assetse.use_man_id,
                //CurrentUserName = user.name,

                //BorrowDate = DateTime.Now,
                //ReturnDate = DateTime.Now,
                BorrowDate = assetse.give_time,
                ReturnDate = assetse.return_time,
                Note       = assetse.remark,

                Brandid    = assetse.brand_id,
                pay_man_id = assetse.pay_man_id,
                project_id = assetse.project_id,
                role_id    = assetse.role_id,
                team_id    = assetse.team_id,
            };

            var assdto = dto.AsNoTracking().FirstOrDefault();

            if (assdto != null)
            {
                if (assdto.project_id != null)
                {
                    var project        = _assetsProRepository.GetByID((int)assdto.project_id);
                    var firstOrDefault = project.FirstOrDefault();
                    if (firstOrDefault != null)
                    {
                        assdto.Project = firstOrDefault.name;
                    }
                }
                if (assdto.role_id != null)
                {
                    var role           = _assetsRoleRepository.GetByID((int)assdto.role_id);
                    var firstOrDefault = role.FirstOrDefault();
                    if (firstOrDefault != null)
                    {
                        assdto.Role = firstOrDefault.name;
                    }
                }
                if (assdto.team_id != null)
                {
                    var team           = _assetsTeamRepository.GetByID((int)assdto.team_id);
                    var firstOrDefault = team.FirstOrDefault();
                    if (firstOrDefault != null)
                    {
                        assdto.Team = firstOrDefault.name;
                    }
                }
                if (assdto.CurrentUser != null)
                {
                    var user           = _assetsUserRepository.GetByID((int)assdto.CurrentUser);
                    var firstOrDefault = user.FirstOrDefault();
                    if (firstOrDefault != null)
                    {
                        assdto.CurrentUserName = firstOrDefault.name;
                    }
                }
            }
            return(assdto);
            //return dto.AsNoTracking().FirstOrDefault();
        }