示例#1
0
        public int UploadRelationship(string fileName, bool isInitial = false)
        {
            ExcelPackage     package;
            IList <Item>     listOfItems        = _itemRepository.GetAll().ToList();
            IList <Position> existingOfPoistion = _positionRepository.GetAll().ToList();
            IList <Position> listOfPositions    = new List <Position>();

            if (isInitial)
            {
                var excelFile      = Resource.库位;
                var templateStream = new MemoryStream(excelFile);
                package         = new ExcelPackage(templateStream);
                listOfPositions = listOfItems.Select(item => new Position()
                {
                    ItemId = item.ItemId, Code = item.Code, PositionName = "Stage"
                }).ToList();
            }
            else
            {
                if (string.IsNullOrEmpty(fileName))
                {
                    return(-2);
                }
                var fi = new FileInfo(fileName);
                package = new ExcelPackage(fi);
            }
            var            workbook  = package.Workbook;
            ExcelWorksheet worksheet = workbook.Worksheets["库位关系"];

            if (worksheet == null)
            {
                return(0);
            }
            var end = worksheet.Dimension.End;

            for (var row = 3; row <= end.Row; row++)
            //for (var row = 3; row <= 40; row++)
            {
                var positionObject = new Position {
                    Id = Guid.NewGuid()
                };

                for (var col = 1; col <= worksheet.Dimension.End.Column; col++)
                {
                    var readValue = worksheet.Cells[row, col].Value == null ? "" : worksheet.Cells[row, col].Value.ToString();
                    switch (col)
                    {
                    case 2:
                        positionObject.Code = readValue;
                        var item = listOfItems.FirstOrDefault(x => x.Code == readValue);
                        if (item != null)
                        {
                            positionObject.ItemId = item.ItemId;
                            positionObject.Total  = 0;
                        }
                        break;

                    case 5:
                        positionObject.PositionName = readValue;
                        break;

                    case 6:
                        positionObject.Area = readValue;
                        break;

                    case 7:
                        positionObject.Location = readValue;
                        break;
                    }
                }

                var isExisting = existingOfPoistion.FirstOrDefault(x => x.Code == positionObject.Code && x.PositionName == positionObject.PositionName);

                if (isExisting == null && positionObject.ItemId != Guid.Empty)
                {
                    listOfPositions.Add(positionObject);
                }
            }

            try
            {
                _positionRepository.AddRange(listOfPositions);
                _positionRepository.Save();
                return(1);
            }
            catch (DbUpdateException e)
            {
                var msg = e.Message;
                return(0);
            }
        }