public IResult Execute(ShippingDetailInfo input) { string path = String.Format("C:\\TEMP\\ShippingDetails-{0}.xml", input.Id); using (FileStream fs = File.Open(path, FileMode.Create, FileAccess.ReadWrite)) { using (TextWriter WriteFileStream = new StreamWriter(fs)) { try { XmlSerializer serializer = new XmlSerializer(typeof(ShippingDetailInfo)); serializer.Serialize(WriteFileStream, input); } catch (Exception e) { return(ResultFactory.GetFailResultInstance(e.Message)); } } } return(ResultFactory.GetSuccessWithMessageResultInstance(path));; }
public IResult Execute(ShippingDetailInfo detail) { StringBuilder strBuilder = new StringBuilder(); AddressInfo originAddress = detail.OriginAddress; AddressInfo destinationAddress = detail.DestinationAddress; string msg = String.Empty; bool status = false; string xmlFile; try { detail.PackageInfo.Weight = WeightAdapterFactory.GetInstance().GetWeightAdapterInstance(WeightAdapterEnum.SAM).GetWeight(); detail = new DeliveryTimeCommand().Execute(detail); detail = new ShippingCostCommand().Execute(detail); xmlFile = new XmlPersistantCommand().Execute(detail).Message; IResult originAddressValidation = new AddressValidator().Validate(originAddress); IResult originPostCodeValidation = new PostCodeValidator().Validate(originAddress.PostalCode); IResult destAddressValidation = new AddressValidator().Validate(destinationAddress); IResult destPostCodeValidation = new PostCodeValidator().Validate(destinationAddress.PostalCode); IResult deliveryTypeValidation = new DeliveryTypeValidator().Validate(detail.DeliveryMethod.ToString()); IResult packageInfoValidation = new PackageInfoValidator().Validate(detail.PackageInfo); if (originAddressValidation.IsSuccess && originPostCodeValidation.IsSuccess && destAddressValidation.IsSuccess && destPostCodeValidation.IsSuccess && deliveryTypeValidation.IsSuccess && packageInfoValidation.IsSuccess) { strBuilder.AppendLine("Id: " + detail.Id); strBuilder.AppendLine("Package Type: " + detail.PackageInfo.PackageType.ToString()); if (detail.PackageInfo.PackageType == PackageTypeEnum.Box) { strBuilder.AppendLine("Height: " + detail.PackageInfo.BoxInfo.Height); strBuilder.AppendLine("Width: " + detail.PackageInfo.BoxInfo.Width); strBuilder.AppendLine("Depth: " + detail.PackageInfo.BoxInfo.Depth); strBuilder.AppendLine("Is insured? :" + detail.IsInsured); } else { strBuilder.AppendLine("Letter Type: " + detail.PackageInfo.LetterInfo.LetterProofType.ToString()); } strBuilder.AppendLine("Weight: " + detail.PackageInfo.Weight + " Ounce"); strBuilder.AppendLine(""); strBuilder.AppendLine("Origin:"); strBuilder.AppendLine("======="); strBuilder.AppendLine("Name: " + originAddress.Name); strBuilder.AppendLine("Street: " + originAddress.Street); strBuilder.AppendLine("City: " + originAddress.City); strBuilder.AppendLine("State: " + originAddress.State); strBuilder.AppendLine("Postal Code:" + originAddress.PostalCode); strBuilder.AppendLine(""); strBuilder.AppendLine("Destination:"); strBuilder.AppendLine("==========="); strBuilder.AppendLine("Name: " + destinationAddress.Name); strBuilder.AppendLine("Street: " + destinationAddress.Street); strBuilder.AppendLine("City: " + destinationAddress.City); strBuilder.AppendLine("State: " + destinationAddress.State); strBuilder.AppendLine("Postal Code:" + destinationAddress.PostalCode); strBuilder.AppendLine(""); strBuilder.AppendLine("Delivery Type: " + detail.DeliveryMethod.ToString()); strBuilder.AppendLine("Delivery Time: " + detail.DeliveryTime.ToString() + " days"); strBuilder.AppendLine("Delivery Cost: " + String.Format("{0:C2}", detail.Cost)); status = true; } if (!originAddressValidation.IsSuccess || !destAddressValidation.IsSuccess) { if (!originAddressValidation.IsSuccess) { strBuilder.AppendLine("Origin Address : " + originAddressValidation.Message); } if (!destAddressValidation.IsSuccess) { strBuilder.AppendLine("Destination Address: " + destAddressValidation.Message); } } if (!originPostCodeValidation.IsSuccess || !destPostCodeValidation.IsSuccess) { if (!originPostCodeValidation.IsSuccess) { strBuilder.AppendLine("\nOrigin Address : " + originPostCodeValidation.Message); } if (!destPostCodeValidation.IsSuccess) { strBuilder.AppendLine("\nDestination Address: " + destPostCodeValidation.Message); } } if (!deliveryTypeValidation.IsSuccess) { strBuilder.AppendLine("Delivery Type: " + deliveryTypeValidation.Message); } if (!packageInfoValidation.IsSuccess) { strBuilder.AppendLine("Package Information: " + packageInfoValidation.Message); } msg = strBuilder.ToString(); } catch (Exception e) { status = false; msg = e.Message; } return(status ? ResultFactory.GetSuccessWithMessageResultInstance(msg) : ResultFactory.GetFailResultInstance(msg)); }