public void Update(PosOrderMapping instance)
 {
     if (instance == null)
     {
         throw new ArgumentNullException();
     }
     this._repository.Update(instance);
 }
Exemplo n.º 2
0
        /// <summary>
        /// parse txt format into pos entity
        /// 1. get pos mapping order number
        /// 2. start from startLine
        /// 3. replace "" characters
        /// 4. by SplitChar
        /// 5. put error message in parent list
        /// </summary>
        /// <param name="_Model"></param>
        /// <param name="filePath"></param>
        /// <returns></returns>
        public override IQueryable <Pos> ParsePos(int _Model, string filePath)
        {
            IQueryable <Pos> _PosList;
            List <Pos>       _PosDataList     = new List <Pos>();
            PosOrderMapping  _PosOrderMapping = _posOrderMappingService.GetByID(_Model);
            int startLine = _PosOrderMapping.Start;
            int lineCount = File.ReadAllLines(filePath).Skip((startLine)).Count();
            var fileLines = File.ReadAllLines(filePath).Skip((startLine)).Take(lineCount).ToList();

            foreach (string line in fileLines)
            {
                try
                {
                    startLine++;
                    //replace "" characters
                    string   _Line = line.Replace(_PosOrderMapping.SplitChar, "▲");
                    string[] temp  = _Line.Replace((char)34, (char)32).Trim().Split('▲');
                    if (temp.Count() > 32)
                    {
                        Pos _Pos = new Pos();
                        _Pos.Address = _PosOrderMapping.Address != null ? temp[Convert.ToInt32(_PosOrderMapping.Address)].Trim() : "";
                        _Pos.City    = _PosOrderMapping.City != null ? temp[Convert.ToInt32(_PosOrderMapping.City)].Trim() : "";
                        _Pos.State   = _PosOrderMapping.State != null ? temp[Convert.ToInt32(_PosOrderMapping.State)].Trim() : "";
                        _Pos.ZIP     = _PosOrderMapping.ZIP != null ? temp[Convert.ToInt32(_PosOrderMapping.ZIP)].Trim() : "";
                        _Pos.Series  = _PosOrderMapping.Series != null ? temp[Convert.ToInt32(_PosOrderMapping.Series)].Trim() : "";
                        _Pos.PartNo  = _PosOrderMapping.PartNo != null ? temp[Convert.ToInt32(_PosOrderMapping.PartNo)].Trim() : "";
                        if (_PosOrderMapping.Quantity != null)
                        {
                            _Pos.Quantity = temp[Convert.ToInt32(_PosOrderMapping.Quantity)].Trim().ToString() != "" ? Convert.ToInt32(temp[Convert.ToInt32(_PosOrderMapping.Quantity)].Trim()) : 0;
                        }
                        _Pos.InvoiceNo   = _PosOrderMapping.InvoiceNo != null ? temp[Convert.ToInt32(_PosOrderMapping.InvoiceNo)].Trim() : "";
                        _Pos.InvoiceDate = _PosOrderMapping.InvoiceDate != null ? temp[Convert.ToInt32(_PosOrderMapping.InvoiceDate)].Trim() : "";
                        if (_PosOrderMapping.Cost != null)
                        {
                            _Pos.Cost = temp[Convert.ToInt32(_PosOrderMapping.Cost)].Trim().ToString() != "" ? Convert.ToDecimal(temp[Convert.ToInt32(_PosOrderMapping.Cost)].Trim()) : 0;
                        }
                        if (_PosOrderMapping.Price != null)
                        {
                            _Pos.Price = temp[Convert.ToInt32(_PosOrderMapping.Price)].Trim().ToString() != "" ? Convert.ToDecimal(temp[Convert.ToInt32(_PosOrderMapping.Price)].Trim()) : 0;
                        }
                        if (_PosOrderMapping.ResellingExt != null)
                        {
                            _Pos.ResellingExt = temp[Convert.ToInt32(_PosOrderMapping.ResellingExt)].Trim().ToString() != "" ? Convert.ToDecimal(temp[Convert.ToInt32(_PosOrderMapping.ResellingExt)].Trim()) : 0;
                        }
                        _Pos.ACCT           = _PosOrderMapping.ACCT != null ? temp[Convert.ToInt32(_PosOrderMapping.ACCT)].Trim() : "";
                        _Pos.CustomerName   = _PosOrderMapping.CustomerName != null ? temp[Convert.ToInt32(_PosOrderMapping.CustomerName)].Trim() : "";
                        _Pos.MarketCode     = _PosOrderMapping.MarketCode != null ? temp[Convert.ToInt32(_PosOrderMapping.MarketCode)].Trim() : "";
                        _Pos.Market         = _PosOrderMapping.Market != null ? temp[Convert.ToInt32(_PosOrderMapping.Market)].Trim() : "";
                        _Pos.SubSegmentCode = _PosOrderMapping.SubSegmentCode != null ? temp[Convert.ToInt32(_PosOrderMapping.SubSegmentCode)].Trim() : "";
                        _Pos.SubSegment     = _PosOrderMapping.SubSegment != null ? temp[Convert.ToInt32(_PosOrderMapping.SubSegment)].Trim() : "";
                        _Pos.Remarks        = _PosOrderMapping.Remarks != null ? temp[Convert.ToInt32(_PosOrderMapping.Remarks)].Trim() : "";
                        _Pos.CustomerPO     = _PosOrderMapping.CustomerPO != null ? temp[Convert.ToInt32(_PosOrderMapping.CustomerPO)].Trim() : "";
                        _Pos.ShipDate       = _PosOrderMapping.ShipDate != null ? temp[Convert.ToInt32(_PosOrderMapping.ShipDate)].Trim() : "";
                        if (_Pos.ShipDate != "")
                        {
                            _Pos.ShipDate2 = _Pos.ShipDate;
                            DateTime _ShipDate2 = DateTime.ParseExact(_Pos.ShipDate, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
                            string   _Day       = Convert.ToDateTime(_ShipDate2).Day.ToString();
                            _Pos.ShipMonth   = Convert.ToDateTime(_ShipDate2).ToString("MMMM", new System.Globalization.CultureInfo("en-us")).Substring(0, 3) + "," + _Day;
                            _Pos.ShipQuarter = this._commonFileService.GetQuarter(Convert.ToDateTime(_ShipDate2).Month);
                        }
                        _Pos.CountryCode = _PosOrderMapping.CountryCode != null ? temp[Convert.ToInt32(_PosOrderMapping.CountryCode)].Trim() : "";
                        _Pos.Country     = this._countryService.GetByCode(_Pos.CountryCode).EnglishName;
                        _Pos.Region      = this._countryService.GetByCode(_Pos.CountryCode).Region;
                        _Pos.Status      = "T";
                        _PosDataList.Add(_Pos);
                    }
                }
                catch (Exception ex)
                {
                    this.ListError.Add(" row : " + startLine.ToString() + " ,txt row data has error format:" + ex.Message + "\r\n data:" + line);
                }
            }
            _PosList = _PosDataList.AsQueryable();
            return(_PosList);
        }