public void TestCreateFraValuationReport1()
        {
            var rateCurve     = TestRateCurve(new DateTime(2009, 7, 15));
            var fra           = new Fra();
            var pair          = rateCurve.GetFpMLData();
            var marketFactory = new MarketFactory();

            marketFactory.AddPricingStructure(pair);
            Market       market           = marketFactory.Create();
            const string baseParty        = _NAB;
            var          assetValuation   = new AssetValuation();
            var          listOfQuotations = new List <Quotation>();
            IEnumerable <StringDoubleRangeItem> valuationSet = CreateValuationSetList(54321, 123.5);

            foreach (StringDoubleRangeItem item in valuationSet)
            {
                var quotation = new Quotation
                {
                    measureType    = AssetMeasureTypeHelper.Parse(item.StringValue),
                    value          = (decimal)item.DoubleValue,
                    valueSpecified = true
                };
                listOfQuotations.Add(quotation);
            }
            assetValuation.quote = listOfQuotations.ToArray();
            ValuationReport valuationReport = ValuationReportGenerator.Generate("some-valuation-Id", baseParty, fra, market, assetValuation);

            Debug.WriteLine("ValuationReport:");
            Debug.WriteLine(XmlSerializerHelper.SerializeToString(valuationReport));
        }
Beispiel #2
0
        /// <summary>
        /// 运行接收器
        /// </summary>
        public void Start()
        {
            if (isRunning)
            {
                return;
            }
            isRunning = true;

            MarketFactory fac = new MarketFactory(marketType);

            market = fac.CreateMarket();
            market.MarketData.DataReceived += MarketData_DataReceived;

            if (enableRealTimeReader)
            {
                this.realTimeReader_Builder = new MarketDataReceiveTragger_RealTimeBuilder(realTimeReader_DataCenter.DataReader, realTimeReader_KlinePeriods);
                this.realTimeReader_Builder.RealTimeDataChanged += RealTimeReader_Builder_RealTimeDataChanged;
                this.market.MarketData.Traggers.Add(realTimeReader_Builder);
            }
            if (enableDataPersistent)
            {
                this.realDataPersistent = new RealDataPersistent(market, dataPersistentWriter_Path, dataPersistentWriter_WriteInterval);
                this.realDataPersistent.Start();
            }
            market.MarketData.Connect(marketDataConnectionInfo);
            if (this.marketTraderConnectionInfo != null)
            {
                this.market.MarketTrader.Connect(marketTraderConnectionInfo);
            }
        }
        //
        // GET: /Size/

        public virtual ActionResult GetInfo()
        {
            LogI("GetInfo");

            var marketplaceManager = new MarketplaceKeeper(DbFactory, false);

            marketplaceManager.Init();

            IList <DropShipperApi> linkedIBCPortals = new List <DropShipperApi>();

            IMarketApi mbgApi = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                                .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.DropShipper, MarketplaceKeeper.DsToMBG);

            IMarketApi tmxApi = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                                .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.DropShipper, MarketplaceKeeper.DsToTMX);

            if (mbgApi != null)
            {
                linkedIBCPortals.Add((DropShipperApi)mbgApi);
            }
            if (tmxApi != null)
            {
                linkedIBCPortals.Add((DropShipperApi)tmxApi);
            }

            var infoes = IbcCloseoutInfoViewModel.GetInfo(Db, linkedIBCPortals);

            return(JsonGet(CallResult <IList <IbcCloseoutInfoViewModel> > .Success(infoes)));
        }
        public virtual ActionResult ExportToExcelUK(string asin,
                                                    MarketType market,
                                                    string marketplaceId,
                                                    bool useStyleImage)
        {
            LogI("ExportToExcelUK, asin=" + asin + ", market=" + market + ", marketplaceId=" + marketplaceId + ", useStyleImage=" + useStyleImage);

            var marketplaceManager = new MarketplaceKeeper(DbFactory, false);

            marketplaceManager.Init();

            IMarketApi api = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                             .GetApi(AccessManager.Company.Id, market, marketplaceId);

            string filename;
            var    output = ExcelProductUKViewModel.ExportToExcelUK(LogService,
                                                                    Time,
                                                                    AmazonCategoryService,
                                                                    HtmlScraper,
                                                                    api,
                                                                    Db,
                                                                    AccessManager.Company,
                                                                    asin,
                                                                    market,
                                                                    marketplaceId,
                                                                    useStyleImage,
                                                                    out filename);

            return(File(output.ToArray(),           //The binary data of the XLS file
                        "application/vnd.ms-excel", //MIME type of Excel files
                                                    //string.Format("{0}s_{1}.xls", asin, DateTime.Now.ToString(DateHelper.DateTimeFormat))
                        filename));                 //Suggested file name in the "Save as" dialog which will be displayed to the end user
        }
Beispiel #5
0
        public static void Main(String[] args)
        {
            if (args.Length != 0)
            {
                Console.WriteLine("No arguments expected.");
                return;
            }

subRoutine:

            Console.Write("Market: ");

            MarketSummary sum = default(MarketSummary);

            try { sum = MarketFactory.getMarketSummary(Console.ReadLine()); }
            catch (InvalidMarketException) {
                Program.writeError("Invalid market.");
                goto subRoutine;
            }
            catch (Exception) {
                Program.writeError("An unexpected exception occurred.");
                goto subRoutine;
            }

            Console.WriteLine(Environment.NewLine +
                              "Price:      " + sum.value.ToString() + Environment.NewLine +
                              "Difference: " + ((sum.difference > 0)?"+" + sum.difference.ToString() + " (↑)":sum.difference.ToString() + " (↓)") + Environment.NewLine);

            Console.ReadKey();
            Console.Clear();

            goto subRoutine;
        }
        public virtual ActionResult GetRank(string asin)
        {
            LogI("GetRank, asin=" + asin);

            ItemRankViewModel model   = null;
            string            message = null;
            bool isSuccess            = false;

            try
            {
                var marketplaceManager = new MarketplaceKeeper(DbFactory, false);
                marketplaceManager.Init();

                IMarketApi api = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                                 .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.Amazon, MarketplaceKeeper.AmazonComMarketplaceId);

                model = ItemRankViewModel.GetRank(api, Db, LogService, Time, asin);

                isSuccess = true;
            }
            catch (Exception ex)
            {
                LogE("GetRank", ex);
                message   = ex.Message;
                isSuccess = false;
            }

            return(JsonGet(new ValueResult <ItemRankViewModel>(isSuccess, message, model)));
        }
        public virtual ActionResult GetAmazonBarcodeStatus(string barcode)
        {
            LogI("GetAmazonBarcodeStatus, barcode=" + barcode);

            try
            {
                var marketplaceManager = new MarketplaceKeeper(DbFactory, false);
                marketplaceManager.Init();

                IMarketApi api = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                                 .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.Amazon, MarketplaceKeeper.AmazonComMarketplaceId);

                var callResult = ItemEditViewModel.GetAmazonBarcodeStatus(api, barcode);
                if (callResult.IsSuccess)
                {
                    return(JsonGet(ValueResult <bool?> .Success("", callResult.Data)));
                }
                else
                {
                    return(JsonGet(ValueResult <bool?> .Error("No results")));
                }
            }
            catch (Exception ex)
            {
                return(JsonGet(ValueResult <bool?> .Error(ex.Message)));
            }
        }
        public void TestCreateSwaptionValuationReport()
        {
            var      curves        = CreateInterestRateStreamTestEnvironment(DateTime.Now);
            Swaption swaption      = GenerateSwaptionParametricWithCashflows();
            var      marketFactory = new MarketFactory();

            marketFactory.AddYieldCurve(curves.GetForecastRateCurveFpML());
            Market       market           = marketFactory.Create();
            const string baseParty        = _NAB;
            var          assetValuation   = new AssetValuation();
            var          listOfQuotations = new List <Quotation>();
            IEnumerable <StringDoubleRangeItem> valuationSet = CreateValuationSetList(54321, 123.5);

            foreach (StringDoubleRangeItem item in valuationSet)
            {
                var quotation = new Quotation
                {
                    measureType    = AssetMeasureTypeHelper.Parse(item.StringValue),
                    value          = (decimal)item.DoubleValue,
                    valueSpecified = true
                };

                listOfQuotations.Add(quotation);
            }
            assetValuation.quote = listOfQuotations.ToArray();
            ValuationReport valuationReport = ValuationReportGenerator.Generate("some-valuation-Id", baseParty, "0001", DateTime.Now, swaption, market, assetValuation);

            Debug.WriteLine("ValuationReport:");
            Debug.WriteLine(XmlSerializerHelper.SerializeToString(typeof(Document), valuationReport));
            string s1 = XmlSerializerHelper.SerializeToString(typeof(Document), valuationReport);

            XmlSerializerHelper.DeserializeFromString <ValuationReport>(typeof(Document), s1);
            XmlSerializerHelper.SerializeToFile(typeof(Document), valuationReport, "some-valuation-Id");
            XmlSerializerHelper.DeserializeFromFile <ValuationReport>(typeof(Document), "some-valuation-Id");
        }
        public void BuildMultilistingUSFBAExcel(IList <FBAItemInfo> fbaItems)
        {
            var resultItems = new List <ExcelProductUSViewModel>();

            var marketplaceManager = new MarketplaceKeeper(_dbFactory, false);

            marketplaceManager.Init();

            IMarketApi api = new MarketFactory(marketplaceManager.GetAll(), _time, _log, _dbFactory, null)
                             .GetApi(AccessManager.Company.Id, MarketType.Amazon, MarketplaceKeeper.AmazonComMarketplaceId);

            var htmlScraper = new HtmlScraperService(_log, _time, _dbFactory);

            var filename = String.Empty;

            using (var db = _dbFactory.GetRWDb())
            {
                var parentASINList = fbaItems.Select(i => i.ParentASIN).Distinct().ToList();

                foreach (var parentASIN in parentASINList)
                {
                    var childFBAItems = fbaItems.Where(f => f.ParentASIN == parentASIN).ToList();

                    var newItems = ExcelProductUSViewModel.GetItemsFor(_log,
                                                                       _time,
                                                                       _categoryService,
                                                                       htmlScraper,
                                                                       api,
                                                                       db,
                                                                       _company,
                                                                       parentASIN,
                                                                       ExportToExcelMode.FBA,
                                                                       childFBAItems,
                                                                       MarketType.Amazon,
                                                                       MarketplaceKeeper.AmazonComMarketplaceId,
                                                                       UseStyleImageModes.Auto,
                                                                       out filename);

                    resultItems.AddRange(newItems);
                }
            }

            var templateFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                            "Files/Templates/Flat.File.Clothing-full.OneSheet.US.xls");
            var stream = ExcelHelper.ExportIntoFile(templateFile,
                                                    "Template",
                                                    resultItems);

            var outputFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, String.Format("USFBAListings_{0}.xls", _time.GetAppNowTime().ToString("MM_dd_yyyy_hh_mm_ss")));

            stream.Seek(0, SeekOrigin.Begin);
            using (FileStream file = new FileStream(outputFile, FileMode.Create, System.IO.FileAccess.Write))
            {
                byte[] bytes = new byte[stream.Length];
                stream.Read(bytes, 0, (int)stream.Length);
                file.Write(bytes, 0, bytes.Length);
                stream.Close();
            }
        }
        public virtual ActionResult GetBarcode(string barcode)
        {
            LogI("GetBarcode, barcode=" + barcode);

            ItemBarcodeViewModel model = new ItemBarcodeViewModel();
            string message             = null;
            bool   isSuccess           = false;

            if (string.IsNullOrEmpty(barcode))
            {
                return(JsonGet(new ValueResult <ItemBarcodeViewModel>(isSuccess, "barcode is empty", model)));
            }
            if (barcode.Length != 12 && barcode.Length != 13)
            {
                return(JsonGet(new ValueResult <ItemBarcodeViewModel>(isSuccess, "incorect barcode format", model)));
            }

            try
            {
                var marketplaceManager = new MarketplaceKeeper(DbFactory, false);
                marketplaceManager.Init();

                IMarketApi api = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                                 .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.Amazon, MarketplaceKeeper.AmazonComMarketplaceId);

                model.Items.AddRange(ItemBarcodeViewModel.GetUrlItemsByBarcodeFromAmazonApi(api, barcode)
                                     .Select(x => new ItemBarcodeListingViewModel()
                {
                    Marketplace = "Amazon", Url = x
                }));

                var openApi = new WalmartOpenApi(LogService, "trn9fdghvb8p9gjj9j6bvjwx");
                model.Items.AddRange(ItemBarcodeViewModel.GetUrlItemsByBarcodeFromWalmartApi(openApi, new ItemBarcodeSearchFilter
                {
                    Keywords   = barcode,
                    CategoryId = "",
                    MinPrice   = null,
                    MaxPrice   = null,
                    StartIndex = 1,
                    LimitCount = 10,
                }).Select(x => new ItemBarcodeListingViewModel()
                {
                    Marketplace = "Walmart", Url = x
                }));

                isSuccess = true;
            }
            catch (Exception ex)
            {
                LogE("GetRank", ex);
                message   = ex.Message;
                isSuccess = false;
            }

            return(JsonGet(new ValueResult <ItemBarcodeViewModel>(isSuccess, message, model)));
        }
Beispiel #11
0
 public StateGT008(botWindow botwindow)   //, GotoTrade gototrade)
 {
     this.botwindow     = botwindow;
     this.serverFactory = new ServerFactory(botwindow);
     this.server        = serverFactory.create(); // создали конкретный экземпляр класса server по паттерну "простая Фабрика" (Америка, Европа или Синг)
     this.town          = server.getTown();
     this.marketFactory = new MarketFactory(botwindow);
     this.market        = marketFactory.createMarket();
     this.tekStateInt   = 8;
 }
        public virtual ActionResult GetCloseoutForm()
        {
            LogI("GetCloseoutForm");

            var marketplaceManager = new MarketplaceKeeper(DbFactory, false);

            marketplaceManager.Init();

            IMarketApi mbgApi = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                                .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.DropShipper, MarketplaceKeeper.DsToMBG);
            IMarketApi tmxApi = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                                .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.DropShipper, MarketplaceKeeper.DsToTMX);

            var shipmentProvider = ServiceFactory.GetShipmentProviderByType(
                ShipmentProviderType.IBC,
                LogService,
                Time,
                DbFactory,
                WeightService,
                AccessManager.Company.ShipmentProviderInfoList,
                AppSettings.DefaultCustomType,
                AppSettings.LabelDirectory,
                AppSettings.ReserveDirectory,
                AppSettings.TemplateDirectory);

            var externalApis = new List <DropShipperApi>();

            if (mbgApi != null)
            {
                externalApis.Add((DropShipperApi)mbgApi);
            }
            if (tmxApi != null)
            {
                externalApis.Add((DropShipperApi)tmxApi);
            }

            var model  = new IbcCloseoutFormViewModel(LogService, Time);
            var result = model.Closeout(Db,
                                        shipmentProvider,
                                        externalApis,
                                        PdfMaker,
                                        AppSettings.LabelDirectory,
                                        AppSettings.IsSampleLabels,
                                        AccessManager.UserId);

            if (result.IsSuccess)
            {
                return(JsonGet(ValueResult <string> .Success("", result.Data)));
            }
            else
            {
                return(JsonGet(ValueResult <string> .Error(result.Message)));
            }
        }
        protected override void RunCallback()
        {
            var dbFactory = new DbFactory();

            var log  = GetLogger();
            var time = new TimeService(dbFactory);


            using (var db = dbFactory.GetRWDb())
            {
                var orderIdsToMove = (from o in db.Orders.GetAll()
                                      join sh in db.OrderShippingInfos.GetAll() on o.Id equals sh.OrderId
                                      where o.BatchId.HasValue &&
                                      o.OrderStatus == OrderStatusEnumEx.Unshipped &&
                                      sh.IsActive
                                      //&& !String.IsNullOrEmpty(sh.LabelPurchaseMessage)
                                      && sh.LabelPurchaseResult == (int)LabelPurchaseResultType.Error
                                      select o.Id)
                                     .Distinct()
                                     .ToList();
                var dbOrdersToMove = db.Orders.GetAll().Where(o => orderIdsToMove.Contains(o.Id)).ToList();
                log.Info("Orders to move: " + dbOrdersToMove.Count);
                log.Info("OrderIds to move: " + String.Join(", ", dbOrdersToMove.Select(o => o.AmazonIdentifier).ToList()));
                dbOrdersToMove.ForEach(o => o.BatchId = null);
                db.Commit();
            }


            var marketplaceManager = new MarketplaceKeeper(dbFactory, false);

            marketplaceManager.Init();

            var marketplaces = marketplaceManager.GetAll();
            var factory      = new MarketFactory(marketplaceManager.GetAll(), time, log, dbFactory, null);

            using (var db = dbFactory.GetRWDb())
            {
                foreach (var market in marketplaces)
                {
                    if (market.Market == (int)MarketType.Walmart ||
                        market.Market == (int)MarketType.WalmartCA)
                    {
                        var api = factory.GetApi(CompanyId, (MarketType)market.Market, market.MarketplaceId);
                        if (api is IMarketOrderUpdaterApi)
                        {
                            log.Info("Reset IsFulfilledStatus, for market: " + api.Market + "-" + api.MarketplaceId);

                            var service = new BaseOrderUpdater(api as IMarketOrderUpdaterApi, log, time);
                            service.ResetIsFulfilledStatus(db);
                        }
                    }
                }
            }
        }
Beispiel #14
0
        public virtual ActionResult GetCloseoutForm()
        {
            LogI("GetCloseoutForm");

            var marketplaceManager = new MarketplaceKeeper(DbFactory, false);

            marketplaceManager.Init();

            IMarketApi mbgApi = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                                .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.DropShipper, MarketplaceKeeper.DsToMBG);

            //NOTE: Direct from Marketplaces because TMX is hidden (in active marketplace)
            IMarketApi tmxApi = new MarketFactory(Db.Marketplaces.GetAllAsDto(), Time, LogService, DbFactory, null)
                                .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.DropShipper, MarketplaceKeeper.DsToTMX);


            var shipmentProvider = ServiceFactory.GetShipmentProviderByType(
                ShipmentProviderType.IBC,
                LogService,
                Time,
                DbFactory,
                WeightService,
                AccessManager.Company.ShipmentProviderInfoList,
                AppSettings.DefaultCustomType,
                AppSettings.LabelDirectory,
                AppSettings.ReserveDirectory,
                AppSettings.TemplateDirectory);

            var model  = new IbcCloseoutFormViewModel(LogService, Time);
            var result = model.Closeout(Db,
                                        shipmentProvider,
                                        new List <DropShipperApi>()
            {
                (DropShipperApi)mbgApi,
                (DropShipperApi)tmxApi
            },
                                        PdfMaker,
                                        AppSettings.LabelDirectory,
                                        AppSettings.IsSampleLabels,
                                        AccessManager.UserId);

            var cacheToRemove = Url.Action("GetInfo", "IbcCloseoutController");

            HttpResponse.RemoveOutputCacheItem(path: cacheToRemove);

            if (result.IsSuccess)
            {
                return(JsonGet(ValueResult <string> .Success("", result.Data)));
            }
            else
            {
                return(JsonGet(ValueResult <string> .Error(result.Message)));
            }
        }
Beispiel #15
0
        internal static Market CreateFpMLMarketFromCurves(List <IRateCurve> uniqueCurves)
        {
            var marketFactory = new MarketFactory();

            foreach (var rateCurve in uniqueCurves)
            {
                // Add all unique curves () into market
                //
                marketFactory.AddPricingStructure(rateCurve.GetFpMLData());
            }
            return(marketFactory.Create());
        }
Beispiel #16
0
        public string CreateFraTradeValuation(ILogger logger, ICoreCache cache,
                                              IRateCurve forwardCurve, IRateCurve discountCurve,
                                              IBusinessCalendar fixingCalendar, IBusinessCalendar paymentCalendar,
                                              FraInputRange fraInputRange, string[] metrics,
                                              NamedValueSet properties, String nameSpace)
        {
            //get the balues reqired from the property bag.
            var valuationId       = new ValuationReportIdentifier(properties);
            var baseParty         = properties.GetString("BaseParty", true);
            var reportingCurrency = properties.GetString("ReportingCurrency", true);

            properties.Set("Function", "ValuationReport");
            properties.Set("Domain", "Orion.ValuationReport");
            //TODO add other properties
            //var fra = Cache.GetTrade(fraId);
            var fra = ProductFactory.GetFpMLFra(fraInputRange);
            //Get the curves and store.
            var marketFactory = new MarketFactory();
            var uniqueCurves  = new List <IRateCurve>();
            //var forwardCurve = (RateCurve)ObjectCacheHelper.GetPricingStructureFromSerialisable(fraInputRange.ForwardCurveId);
            //var discountCurve = (RateCurve)ObjectCacheHelper.GetPricingStructureFromSerialisable(fraInputRange.DiscountingCurveId);
            var market        = CreateMarket(discountCurve, forwardCurve);
            var agreement     = new FraPricer(logger, cache, null, null, fra, nameSpace);
            var modelData     = CreateInstrumentModelData(metrics, fraInputRange.ValuationDate, market, reportingCurrency);
            var asetValuation = agreement.Calculate(modelData);

            //  Add forward yield curve to the market environment ...
            //
            //var forwardCurve = (IRateCurve)ObjectCacheHelper.GetPricingStructureFromSerialisable(fraInputRange.ForwardCurveId);
            uniqueCurves.Add(forwardCurve);
            //  ... if discount curve is not the same as forward curve - add a discount curve too.
            //
            //if (fraInputRange.ForwardCurveId != fraInputRange.DiscountingCurveId)
            //{
            //    var discountingCurve = (IRateCurve)ObjectCacheHelper.GetPricingStructureFromSerialisable(fraInputRange.DiscountingCurveId);
            //    uniqueCurves.Add(discountingCurve);
            //}
            //TODO Add the FX curve if the reporting currency is different.
            foreach (var rateCurve in uniqueCurves)
            {
                // Add all unique curves into market
                //
                Pair <PricingStructure, PricingStructureValuation> pair = rateCurve.GetFpMLData();
                marketFactory.AddPricingStructure(pair);
            }
            var valuation = new Valuation();

            //  create ValuationReport and add it to in-memory collection.
            //
            valuation.CreateFraValuationReport(cache, nameSpace, valuationId.UniqueIdentifier, baseParty, fra, marketFactory.Create(), asetValuation, properties);
            return(valuationId.UniqueIdentifier);
        }
        public virtual ActionResult GetInfo()
        {
            LogI("GetInfo");

            var marketplaceManager = new MarketplaceKeeper(DbFactory, false);

            marketplaceManager.Init();

            IMarketApi api = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null)
                             .GetApi((AccessManager.Company ?? AccessManager.DefaultCompany).Id, MarketType.DropShipper, MarketplaceKeeper.DsToMBG);

            var infoes = FedexCloseoutInfoViewModel.GetInfo(Db, Time, (DropShipperApi)api);

            return(JsonGet(CallResult <IList <FedexCloseoutInfoViewModel> > .Success(infoes)));
        }
        private ValuationReport CreateSwapValuationReport(string valuationReportId)
        {
            var  rateCurve     = CreateInterestRateStreamTestEnvironment(DateTime.Now);
            Swap swap          = GenerateSwapParametricWithCashflows();
            var  fpml          = rateCurve.GetDiscountRateCurveFpML();
            var  pair          = new Pair <YieldCurve, YieldCurveValuation>(fpml.First, fpml.Second);
            var  marketFactory = new MarketFactory();

            marketFactory.AddYieldCurve(pair);
            Market       market    = marketFactory.Create();
            const string baseParty = "NAB";
            string       tradeId   = valuationReportId;
            DateTime     tradeDate = DateTime.Today;

            return(ValuationReportGenerator.Generate(valuationReportId, baseParty, tradeId, tradeDate, swap, market, new AssetValuation()));
        }
Beispiel #19
0
        /// <summary>
        /// перевод из состояния 09 (в магазине) в состояние 12 (всё продано, в городе)                 // аква кнопка
        /// </summary>
        public void StateSelling()
        {
            botwindow.Pause(300);
            if (botwindow.getNomerTeleport() >= 100)
            {
                KatoviaMarketFactory marketFactory = new KatoviaMarketFactory(botwindow);
                KatoviaMarket        kMarket       = marketFactory.createMarket();
                if (kMarket.isSale())                                                            //проверяем, находимся ли в магазине
                {
                    StateDriverRun(new StateGT157(botwindow), new StateGT161(botwindow));
                }
            }
            else
            {
                MarketFactory marketFactory = new MarketFactory(botwindow);
                Market        market        = marketFactory.createMarket();

                if (market.isSale())                                 //проверяем, находимся ли в магазине
                {
                    StateDriverRun(new StateGT009(botwindow), new StateGT012(botwindow));
                }
            }
        }
Beispiel #20
0
        public GameInitializator()
        {
            this.ingredientFactory = MarketFactory.Get(Category.Ingredient);
            this.presentFactory    = new PresentFactory();

            this.gameObjects = new List <GameObject>
            {
                new Raspberry(new MatrixCoords(10, 10)),
                new Blueberry(new MatrixCoords(20, 5)),
                new Raspberry(new MatrixCoords(20, 25)),
                new Hen(new MatrixCoords(1, 4)),
                new Hen(new MatrixCoords(9, 9)),
                new Lamb(new MatrixCoords(20, 20)),
                new Lamb(new MatrixCoords(5, 20)),
                new Rabbit(new MatrixCoords(12, 12)),
                new Rabbit(new MatrixCoords(2, 20)),
            };

            this.inventoryItems = new List <IStorable>
            {
                new Raspberry(),
                new Hen(),
                new Rabbit(),
                new Lamb(),
                new EasterEgg(ByproductColor.Blue),
                new EasterEgg(ByproductColor.Red),
                new TrophyEgg(ByproductColor.Blue),
                new TrophyEgg(ByproductColor.Red),
                new Milk(),
            };

            this.marketIngredients = new List <IBuyable>();
            this.FillIngredients();

            this.presents = new List <IStorable>();
            this.FillPresents();
        }
        public static MemoryStream ExportToWFSExcel(long pickListId,
                                                    IUnitOfWork db,
                                                    IDbFactory dbFactory,
                                                    CompanyDTO company,
                                                    IMarketCategoryService categoryService,
                                                    IHtmlScraperService htmlScraper,
                                                    ILogService log,
                                                    ITime time,
                                                    out string filename)
        {
            var resultItems = new List <ExcelWFSProductUSViewModel>();

            var pickListEntries = db.FBAPickListEntries.GetAllAsDto()
                                  .Where(p => p.FBAPickListId == pickListId)
                                  .ToList();

            IList <FBAItemInfo> fbaItems = pickListEntries.Select(e => new FBAItemInfo()
            {
                ParentASIN = e.ListingParentASIN,
                ASIN       = e.ListingASIN,
                SKU        = e.ListingSKU,
                Quantity   = e.Quantity,
            }).ToList();

            var marketplaceManager = new MarketplaceKeeper(dbFactory, false);

            marketplaceManager.Init();

            IMarketApi api = new MarketFactory(marketplaceManager.GetAll(), time, log, dbFactory, null)
                             .GetApi(AccessManager.Company.Id, MarketType.Amazon, MarketplaceKeeper.AmazonComMarketplaceId);

            var parentASINList = fbaItems.Select(i => i.ParentASIN).Distinct().ToList();

            foreach (var parentASIN in parentASINList)
            {
                var childFBAItems = fbaItems.Where(f => f.ParentASIN == parentASIN).ToList();
                var newItems      = ExcelWFSProductUSViewModel.GetItemsFor(log,
                                                                           time,
                                                                           categoryService,
                                                                           htmlScraper,
                                                                           api,
                                                                           db,
                                                                           company,
                                                                           parentASIN,
                                                                           ExportToExcelMode.FBA,
                                                                           childFBAItems,
                                                                           MarketType.Amazon,
                                                                           MarketplaceKeeper.AmazonComMarketplaceId,
                                                                           UseStyleImageModes.Auto,
                                                                           out filename);

                var parentItem       = newItems.FirstOrDefault(i => i.Parentage == ExcelHelper.ParentageParent);
                var wasAddedAny      = false;
                var notExistNewItems = new List <ExcelWFSProductUSViewModel>();
                foreach (var item in newItems.Where(i => i.Parentage != ExcelHelper.ParentageParent))
                {
                    var existListing = db.Listings.GetAll().FirstOrDefault(l => l.SKU == item.SKU && !l.IsRemoved);
                    if (existListing == null)
                    {
                        notExistNewItems.Add(item);
                        wasAddedAny = true;
                    }
                }
                if (wasAddedAny)
                {
                    if (parentItem != null)
                    {
                        resultItems.Add(parentItem);
                    }
                    resultItems.AddRange(notExistNewItems);
                }
            }

            var output = ExcelHelper.ExportIntoFile(HttpContext.Current.Server.MapPath(ExcelWFSProductUSViewModel.USTemplatePath),
                                                    "Template",
                                                    resultItems);

            filename = String.Format("WFSListings_{0}.xls", time.GetAppNowTime().ToString("MM_dd_yyyy_hh_mm_ss"));

            return(output);
        }
        public void BuildMultilistingUKExcel(IList <string> usASINList)
        {
            var resultItems = new List <ExcelProductUKViewModel>();

            var marketplaceManager = new MarketplaceKeeper(_dbFactory, false);

            marketplaceManager.Init();
            IMarketApi api = new MarketFactory(marketplaceManager.GetAll(), _time, _log, _dbFactory, null)
                             .GetApi(AccessManager.Company.Id, MarketType.Amazon, MarketplaceKeeper.AmazonUkMarketplaceId);

            var htmlScraper = new HtmlScraperService(_log, _time, _dbFactory);

            var filename = String.Empty;

            using (var db = _dbFactory.GetRWDb())
            {
                foreach (var asin in usASINList)
                {
                    var newItems = ExcelProductUKViewModel.GetItemsFor(_log,
                                                                       _time,
                                                                       _categoryService,
                                                                       htmlScraper,
                                                                       api,
                                                                       db,
                                                                       _company,
                                                                       asin,
                                                                       MarketType.Amazon,
                                                                       MarketplaceKeeper.AmazonComMarketplaceId,
                                                                       UseStyleImageModes.Auto,
                                                                       out filename);

                    var resultList = new List <ExcelProductUKViewModel>();
                    foreach (var newItem in newItems)
                    {
                        if (newItem.StyleItemId.HasValue)
                        {
                            var styleItem =
                                db.StyleItemCaches.GetForStyleItemId(newItem.StyleItemId.Value).FirstOrDefault();
                            if (styleItem != null && styleItem.RemainingQuantity > 0)
                            {
                                resultList.Add(newItem);
                            }
                        }
                        else
                        {
                            //Parent record w/o StyleItemId
                            resultList.Add(newItem);
                        }
                    }

                    resultItems.AddRange(resultList);
                }
            }

            var templateFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                                            "Files/Templates/Flat.File.Clothing.OneSheet.UK.xls");
            var stream = ExcelHelper.ExportIntoFile(templateFile,
                                                    "Template",
                                                    resultItems);

            var outputFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, String.Format("UKListings_{0}.xls", _time.GetAppNowTime().ToString("MM_dd_yyyy_hh_mm_ss")));

            stream.Seek(0, SeekOrigin.Begin);
            using (FileStream file = new FileStream(outputFile, FileMode.Create, System.IO.FileAccess.Write))
            {
                byte[] bytes = new byte[stream.Length];
                stream.Read(bytes, 0, (int)stream.Length);
                file.Write(bytes, 0, bytes.Length);
                stream.Close();
            }
        }
        public void Setup()
        {
            Database.SetInitializer <AmazonContext>(null);
            XmlConfigurator.Configure(new FileInfo(AppSettings.log4net_Config));

            _dbFactory = new DbFactory();
            _time      = new TimeService(_dbFactory);
            _settings  = new SettingsService(_dbFactory);

            _styleHistoryService = new StyleHistoryService(_log, _time, _dbFactory);
            _styleManager        = new StyleManager(_log, _time, _styleHistoryService);
            _actionService       = new SystemActionService(_log, _time);
            _quantityManager     = new QuantityManager(_log, _time);
            _priceManager        = new PriceManager(_log, _time, _dbFactory, _actionService, _settings);
            _cacheService        = new CacheService(_log, _time, _actionService, _quantityManager);
            _barcodeService      = new BarcodeService(_log, _time, _dbFactory);
            _weightService       = new WeightService();

            IEmailSmtpSettings smtpSettings = new EmailSmtpSettings();

            using (var db = new UnitOfWork())
            {
                _company = db.Companies.GetFirstWithSettingsAsDto();

                if (AppSettings.IsDebug)
                {
                    smtpSettings = SettingsBuilder.GetSmtpSettingsFromAppSettings();
                }
                else
                {
                    smtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(_company);
                }

                _addressService = AddressService.Default;
                _emailService   = new EmailService(_log, smtpSettings, _addressService);

                //todo check itemHist
                _autoCreateNonameListingService = new AutoCreateNonameListingService(_log,
                                                                                     _time,
                                                                                     _dbFactory,
                                                                                     _cacheService,
                                                                                     _barcodeService,
                                                                                     _emailService, null,
                                                                                     AppSettings.IsDebug);

                var marketplaces = new MarketplaceKeeper(_dbFactory, true);
                marketplaces.Init();

                var shipmentPrividers = db.ShipmentProviders.GetByCompanyId(_company.Id);

                var apiFactory = new MarketFactory(marketplaces.GetAll(), _time, _log, _dbFactory, AppSettings.JavaPath);

                var weightService = new WeightService();

                var serviceFactory = new ServiceFactory();
                var rateProviders  = serviceFactory.GetShipmentProviders(_log,
                                                                         _time,
                                                                         _dbFactory,
                                                                         weightService,
                                                                         shipmentPrividers,
                                                                         null,
                                                                         null,
                                                                         null,
                                                                         null);

                _magentoApi    = (Magento20MarketApi)apiFactory.GetApi(_company.Id, MarketType.Magento, MarketplaceKeeper.ShopifyDWS);
                _shopifyDWSApi = (ShopifyApi)apiFactory.GetApi(_company.Id, MarketType.Shopify, MarketplaceKeeper.ShopifyDWS);
                _eBayApi       = (eBayApi)apiFactory.GetApi(_company.Id, MarketType.eBay, "");
                _amazonApi     = (AmazonApi)apiFactory.GetApi(_company.Id, MarketType.Amazon, MarketplaceKeeper.AmazonComMarketplaceId);
                _walmartApi    = (WalmartApi)apiFactory.GetApi(_company.Id, MarketType.Walmart, "");
            }
        }