예제 #1
0
 public MarketingPrintOrderItemEntity CreatePrintOrderItemEntity(PrintOrderItem printOrderItem)
 {
     return(new MarketingPrintOrderItemEntity(printOrderItem.PrintOrderItemId)
     {
         Quantity = (int?)printOrderItem.Quantity,
         IsNew = printOrderItem.PrintOrderItemId == 0,
         Sourcecode = printOrderItem.SourceCode,
     });
 }
예제 #2
0
        public List <PrintOrderItem> CreatePrintOrderItemShipping(string filePath, OrganizationRoleUser statusUpdatedBy)
        {
            var listPrintOrderItem = new List <PrintOrderItem>();

            string row;

            using (var reader = new StreamReader(filePath))
            {
                reader.ReadLine();/// just to skip first line
                while (reader.Peek() != -1)
                {
                    row = reader.ReadLine();
                    string[] uplodedData = row.Split(new char[] { ',' });

                    if (uplodedData.Length > 13)
                    {
                        ItemStatus itemShippingStatus;

                        string shippingStatus = uplodedData[2].Replace(" ", "");
                        try
                        {
                            itemShippingStatus = (ItemStatus)Enum.Parse(typeof(ItemStatus), shippingStatus);
                        }
                        catch (Exception)
                        {
                            itemShippingStatus = ItemStatus.Unknown;
                        }
                        DateTime scheduledDeliveryDate;



                        DateTime.TryParse(uplodedData[3], out scheduledDeliveryDate);
                        string[] updatedSourceCode = uplodedData[13].Split(new[] { '/' });

                        foreach (string sourceCode in updatedSourceCode)
                        {
                            var printOrderItem         = new PrintOrderItem();
                            var printOrderItemShipping = new PrintOrderItemTracking
                            {
                                TrackingNumber  = uplodedData[0],
                                ShippingService = uplodedData[1],
                                ///ShippingStatus = itemShippingStatus,
                                ScheduledDeliveryDate = DateTime.TryParse(uplodedData[3], out scheduledDeliveryDate) ? scheduledDeliveryDate : (DateTime?)null,
                                ShipToName            = uplodedData[4],
                                ShipToAttentionOf     = uplodedData[5],
                                ShippedToAddress1     = uplodedData[6],
                                ShippedToAddress2     = uplodedData[7],
                                ShippedToCity         = uplodedData[8],
                                ShippedToZip          = uplodedData[9],
                                ShippedToState        = uplodedData[10],
                                PackageReference1     = uplodedData[11],
                                PackageReference2     = uplodedData[12],
                                CreatedByOrgRoleUser  = statusUpdatedBy,
                                DateCreated           = DateTime.Now,
                                DateUpdated           = DateTime.Now,
                                UpdatedByOrgRoleUser  = statusUpdatedBy,
                                ConfirmationMode      = null,
                            };

                            printOrderItemShipping.PackageReference3 = sourceCode;
                            printOrderItem.TrackingInfo = printOrderItemShipping;
                            printOrderItem.Status       = itemShippingStatus;
                            listPrintOrderItem.Add(printOrderItem);
                        }
                    }
                }
            }
            return(listPrintOrderItem);
        }
예제 #3
0
        public List <OrderedPair <string, PrintOrderItemTracking> > ParsePrintOrderShipping(string filePath, char seprator,
                                                                                            OrganizationRoleUser statusUpdatedBy, out Int32 successRecordCount)
        {
            var failedRecordList = new List <OrderedPair <string, PrintOrderItemTracking> >();

            successRecordCount = 0;

            using (var reader = new StreamReader(filePath))
            {
                string rowHeader    = reader.ReadLine();
                var    parserObject = (PrintOrderItemShippingParser)SetParserObject(rowHeader, seprator, typeof(PrintOrderItemShippingParser));

                while (reader.Peek() != -1)
                {
                    string row = reader.ReadLine();

                    string[]       uplodedData = row.Split(seprator);
                    PrintOrderItem printOrderItem;
                    var            printOrderItemTracking = new PrintOrderItemTracking();
                    try
                    {
                        printOrderItem         = new PrintOrderItem();
                        printOrderItemTracking = SetUpPrintOrderItemTracking(uplodedData, parserObject,
                                                                             statusUpdatedBy);
                        ItemStatus itemShippingStatus;
                        string     shippingStatus = uplodedData[parserObject.Status].Replace(" ", "");
                        try
                        {
                            itemShippingStatus = (ItemStatus)Enum.Parse(typeof(ItemStatus), shippingStatus);
                        }
                        catch (Exception)
                        {
                            itemShippingStatus = ItemStatus.Unknown;
                        }

                        string[] updatedSourceCode = uplodedData[parserObject.PackageReferenceNo3].Split(SourceCodeSeprator);
                        foreach (string sourceCode in updatedSourceCode)
                        {
                            printOrderItemTracking.PackageReference3 = sourceCode;
                            printOrderItem.TrackingInfo = printOrderItemTracking;
                            printOrderItem.Status       = itemShippingStatus;

                            var failedPrintOrderItemTracking = UpdatePrintOrderShipping(printOrderItem.TrackingInfo,
                                                                                        printOrderItem.Status,
                                                                                        statusUpdatedBy);
                            if (failedPrintOrderItemTracking != null)
                            {
                                failedRecordList.Add(new OrderedPair <string, PrintOrderItemTracking>(failedPrintOrderItemTracking.FirstValue, printOrderItemTracking));
                            }
                            else
                            {
                                successRecordCount++;
                            }
                        }
                    }

                    catch (Exception)
                    {
                        var    missingFieldList = MissingFieldList(parserObject, uplodedData.Length);
                        string missingField     = string.Empty;
                        foreach (var item in missingFieldList)
                        {
                            missingField = missingField + item + ", ";
                        }

                        var failRecord = new OrderedPair <string, PrintOrderItemTracking>("Following fields are missing :" + missingField.Remove(missingField.Length - 2, 1), printOrderItemTracking);
                        failedRecordList.Add(failRecord);
                    }
                }
            }


            return(failedRecordList);
        }