示例#1
0
 public ListingDefectViewModel(ListingDefectDTO listingDefect)
 {
     Explanation = listingDefect.Explanation;
     FieldName   = listingDefect.FieldName;
     AlertType   = listingDefect.AlertType;
     AlertName   = listingDefect.AlertName;
     Status      = listingDefect.Status;
 }
        public void CreateOrUpdate(ListingDefectDTO defect, DateTime when)
        {
            var dbDefect = GetFiltered(l => !l.IsDeleted &&
                                       l.SKU == defect.SKU &&
                                       l.MarketType == defect.MarketType &&
                                       l.MarketplaceId == defect.MarketplaceId &&
                                       l.FieldName == defect.FieldName &&
                                       l.AlertType == defect.AlertType).FirstOrDefault();

            if (dbDefect != null)
            {
                dbDefect.FeedId = defect.FeedId ?? 0;

                dbDefect.ReportId      = defect.ReportId;
                dbDefect.MarketType    = defect.MarketType;
                dbDefect.MarketplaceId = defect.MarketplaceId;

                dbDefect.SKU  = defect.SKU;
                dbDefect.ASIN = defect.ASIN;

                dbDefect.FieldName    = defect.FieldName;
                dbDefect.CurrentValue = defect.CurrentValue;
                dbDefect.LastUpdated  = defect.LastUpdated;

                dbDefect.AlertType   = defect.AlertType;
                dbDefect.AlertName   = defect.AlertName;
                dbDefect.Status      = defect.Status;
                dbDefect.Explanation = defect.Explanation;

                dbDefect.UpdateDate = when;
            }
            else
            {
                dbDefect = new ListingDefect();

                dbDefect.FeedId = defect.FeedId ?? 0;

                dbDefect.ReportId      = defect.ReportId;
                dbDefect.MarketType    = defect.MarketType;
                dbDefect.MarketplaceId = defect.MarketplaceId;

                dbDefect.SKU  = defect.SKU;
                dbDefect.ASIN = defect.ASIN;

                dbDefect.FieldName    = defect.FieldName;
                dbDefect.CurrentValue = defect.CurrentValue;
                dbDefect.LastUpdated  = defect.LastUpdated;

                dbDefect.AlertType   = defect.AlertType;
                dbDefect.AlertName   = defect.AlertName;
                dbDefect.Status      = defect.Status;
                dbDefect.Explanation = defect.Explanation;

                dbDefect.UpdateDate = when;
                dbDefect.CreateDate = when;

                unitOfWork.ListingDefects.Add(dbDefect);
            }

            unitOfWork.Commit();
        }
示例#3
0
        public IReportItemDTO Parse(string[] fields, string[] headers)
        {
            //string[] fields = line.Split('	');
            if (fields.Length < Length)
            {
                return(null);
            }
            var item = new ListingDefectDTO();

            for (var i = 0; i < fields.Length; i++)
            {
                try
                {
                    var val = fields[i];
                    switch (i)
                    {
                    case SellerSKU:
                        item.SKU = val;
                        break;

                    case ProductName:
                        item.ProductName = val;
                        break;

                    case ASIN:
                        item.ASIN = val;
                        break;

                    case FieldName:
                        item.FieldName = val;
                        break;

                    case AlertType:
                        item.AlertType = val;
                        break;

                    case CurrentValue:
                        item.CurrentValue = val;
                        break;

                    case LastUpdated:
                        item.LastUpdated = LineParserHelper.GetDateVal(_log, val, LastUpdated);
                        break;

                    case AlertName:
                        item.AlertName = val;
                        break;

                    case Status:
                        item.Status = val;
                        break;

                    case Explanation:
                        item.Explanation = val;
                        break;
                    }
                }
                catch (Exception ex)
                {
                    _log.Error(string.Format("Unable to parse field: {0}", fields[i]), ex);
                }
            }
            return(item);
        }