Esempio n. 1
0
 Callbacks()
 {
     if (null == onInitialized)
     {
         onInitialized = new BoolEvent();
     }
     if (null == onSuccess)
     {
         onSuccess = new ProductEvent();
     }
     if (null == onFailure)
     {
         onFailure = new ProductStringEvent();
     }
     if (null == onCanceled)
     {
         onCanceled = new ProductEvent();
     }
     if (null == onRestored)
     {
         onRestored = new ProductEvent();
     }
     if (null == onProductRequestSuccess)
     {
         onProductRequestSuccess = new ProductArrayEvent();
     }
     if (null == onProductRequestFailure)
     {
         onProductRequestFailure = new StringEvent();
     }
     if (null == onRestoreComplete)
     {
         onRestoreComplete = new BoolStringEvent();
     }
 }
 public override bool IsExcluded(ProductEvent pevent, Trade trade, Market market)
 {
     var isExcluded = base.IsExcluded(pevent, trade, market);
     if (isExcluded) return true;
     if (trade.Product is Swap)
     {
         var swap = trade.Product as Swap;
         if (swap.PayLeg.IsFixedRate && swap.ReceiveLeg.IsFixedRate) return true;
     }
     return false;
 }
Esempio n. 3
0
        public void TestProductEvent()
        {
            //订阅
            EventBus.Instance.Subscribe(new ProductHandler());
            var entity = new ProductEvent {
                ProductID = 1
            };

            EventBus.Instance.Publish(entity);

            Assert.IsTrue(true);
        }
Esempio n. 4
0
        private IActionResult CreateActionResult(ProductEvent result)
        {
            switch (result)
            {
            case StockUpdated stockUpdated:
                return(new OkObjectResult(new Envelope <Product> {
                    Data = stockUpdated.Product
                }));

            case ProductNotFound _:
                return(new NotFoundObjectResult(CreateErrorResponse(ErrorCode.ProductNotFound)));

            case InsufficientStock _:
                return(new BadRequestObjectResult(CreateErrorResponse(ErrorCode.InsuffientStock)));

            default:
                throw new InvalidEnumArgumentException(nameof(ProductEvent));
            }
        }
Esempio n. 5
0
        public static string Stringify(this ProductEvent productEvent)
        {
            var productString = "";

            switch (productEvent.EventType)
            {
            case ProductEventType.Sold:
                productString += "[PRODUTO VENDIDO]";
                break;

            default:
                productString += "[?]";
                break;
            }

            productString += "\n" + productEvent.Product.ToString();

            return(productString);
        }
        public void MessagesProcessor_NoEventTypeProperty_Ignore()
        {
            ResetCalls();

            var saleId    = new Guid("3832896B-3CF1-4B78-BAF8-22DBEA26B633");
            var itemId    = new Guid("D0E8C5CB-E787-4B83-97FC-67C5A9AF6880");
            var countryId = "AS";
            var encoding  = new UTF8Encoding();

            var message = new Message {
                ItemId = itemId, EventAction = "Create"
            };
            var eventData    = new EventData(encoding.GetBytes(JsonConvert.SerializeObject(message).ToLower()));
            var productEvent = new ProductEvent {
                CountryId = countryId
            };

            ProductEventConsumer.Setup(x => x.Consume(message)).Returns(Task.FromResult <IEnumerable <IEvent> >(new List <ProductEvent> {
                productEvent
            }));
            ProductEventSender1.Setup(x => x.SendEvent(It.IsAny <IEvent>()));
            ProductEventSender1.Setup(x => x.SendEvents(It.IsAny <IEnumerable <IEvent> >()));

            var senders = new List <IProductEventSender> {
                ProductEventSender1.Object
            };
            var consumers = new List <ProductCreateConsumer> {
                new ProductCreateConsumer(ProductService.Object)
            };

            var service = new MessagesProcessor <ProductCreateConsumer, IProductEventSender>(consumers, senders);

            var items = service.ProcessEventsAsync(new PartitionContext(), new List <EventData> {
                eventData
            });

            ProductEventConsumer.Verify(x => x.Consume(message), Times.Never);
            ProductEventSender1.Verify(x => x.SendEvent(It.IsAny <IEvent>()), Times.Never);
            ProductEventSender1.Verify(x => x.SendEvents(It.IsAny <IEnumerable <IEvent> >()), Times.Never);
        }
Esempio n. 7
0
        public static string Stringify(this ProductEvent productEvent)
        {
            var productString = "";

            switch (productEvent.EventType)
            {
            case ProductEventType.Created:
                productString += "[PRODUTO CRIADO]";
                break;

            case ProductEventType.Edited:
                productString += "[PRODUTO EDITADO]";
                break;

            default:
                productString += "[?]";
                break;
            }
            productString += "\n" + productEvent.Product.ToString();

            return(productString);
        }
Esempio n. 8
0
        public void ProductEventSender_SendReconciliationEvent_AddedParameterToEvent()
        {
            var saleId      = new Guid("3832896B-3CF1-4B78-BAF8-22DBEA26B633");
            var itemId      = new Guid("D0E8C5CB-E787-4B83-97FC-67C5A9AF6880");
            var countryId   = "TA";
            var productKey  = $"{itemId}_{saleId}_{countryId}";
            var sendedEvent = new EventData();

            var productEvent = new ProductEvent {
                Id = productKey, EventAction = EventAction.Updated
            };

            var EventHubSender = new Mock <IEventHubSender>();

            EventHubSender.Setup(x => x.Send(It.IsAny <EventData>())).Callback((EventData _eventData) => { sendedEvent = _eventData; });

            var sender = new ProductEventSender(EventHubSender.Object, new List <string> {
                "TA"
            });

            sender.SendRefeedEvent(productEvent);

            Assert.IsTrue(sendedEvent.Properties.Keys.Contains("EventType"));
        }
Esempio n. 9
0
        public IActionResult NewProduct(string name, int inventory, int price, string description, int category, IList <IFormFile> image, int[]  Event)
        {
            if (ModelState.IsValid)
            {
                Product product = _context.products
                                  .SingleOrDefault(c => c.name == name);
                if (product != null)
                {
                    TempData["error"] = "Product name has existed!";
                }
                else
                {
                    long   size     = 0;
                    string imageUrl = "";
                    foreach (var file in image)
                    {
                        var fileName = ContentDispositionHeaderValue
                                       .Parse(file.ContentDisposition)
                                       .FileName
                                       .Trim('"');
                        imageUrl = Convert.ToString(fileName);
                        string filename = _env.WebRootPath + $@"\images\{fileName}";
                        size += file.Length;
                        using (FileStream fs = System.IO.File.Create(filename))
                        {
                            file.CopyTo(fs);
                            fs.Flush();
                        }
                    }
                    Product newproduct = new Product();
                    newproduct.created_At  = DateTime.Now;
                    newproduct.name        = name;
                    newproduct.inventory   = inventory;
                    newproduct.description = description;
                    newproduct.price       = price;
                    newproduct.categoryId  = category;
                    newproduct.imageUrl    = "/images/" + imageUrl;
                    _context.Add(newproduct);
                    _context.SaveChanges();
                    int pid = newproduct.productId;
                    for (int i = 0; i < Event.Length; i++)
                    {
                        ProductEvent newpie = new ProductEvent();
                        newpie.productId = pid;
                        newpie.eventId   = Event[i];
                        _context.Add(newpie);
                        _context.SaveChanges();
                    }
                }
                return(RedirectToAction("ProductAdmin2"));
            }
            List <Product> products = _context.products
                                      .OrderByDescending(c => c.created_At)
                                      .ToList();
            List <Category> categories = _context.categories.ToList();
            List <Event>    events     = _context.events.ToList();

            ViewBag.categories = categories;
            ViewBag.events     = events;
            ViewBag.products   = products;
            return(View("productadmin2"));
        }
        public override string ToString(ProductEvent pevent, Trade trade, Market market)
        {
            var sb = new StringBuilder();
            string isSef = string.Empty;
            string sefClearingStatus = string.Empty;
            try
            {
                isSef = GetRegulatoryID(trade, sIsSEFProperty);
                sefClearingStatus = GetRegulatoryID(trade, sClearingStatusProperty);
            }
            catch (Exception)
            {
                return null;
                // trade doesn't have regulatory ID - ignore and treat as normal IRS
            }
            if (string.Equals(isSef, "Y", StringComparison.InvariantCultureIgnoreCase) && !string.IsNullOrWhiteSpace(sefClearingStatus))
            {
                // USIC
                var clearingSource = GetClearingID(trade, sClearingSourceProperty);
                var clearingId = GetClearingID(trade, sClearingIdProperty);
                if (string.IsNullOrWhiteSpace(clearingSource) || string.IsNullOrWhiteSpace(clearingId))
                {
                    throw new Exception(String.Format("Unable to find {0} or {1} on trade {2} to construct USIC.", sClearingSourceProperty, sClearingIdProperty, trade.Id));
                }
                var clearingTradeId = clearingSource + clearingId;
                sb.Append(clearingTradeId);
                sb.Append(Separator);

                // USI
                var sefSource = GetRegulatoryID(trade, sSEFSourceProperty);
                var sefId = GetRegulatoryID(trade, sSEFIdProperty);
                if (string.IsNullOrWhiteSpace(sefSource) || string.IsNullOrWhiteSpace(sefId))
                {
                    throw new Exception(String.Format("Unable to find {0} or {1} on trade {2} to construct USI.", sSEFSourceProperty, sSEFIdProperty, trade.Id));
                }
                var regulatoryTradeId = sefSource + sefId;
                sb.Append(regulatoryTradeId);
                sb.Append(Separator);

                // SEF Flag
                sb.Append("1").Append(Separator);

                // Clearing Status, override to Cleared for MLP
                if (sefClearingStatus == "Confirmed")
                {
                    sb.Append("Cleared").Append(Separator);
                }
                else
                {
                    sb.Append(sefClearingStatus).Append(Separator);
                }

                // ClearingHouse	Clearinghouse code will be provided
                var ccp = GetCcp(trade);
                if (ccp != null)
                    sb.Append(ccp);
                sb.Append(Separator);

                // SefTransID	SEF Transaction ID  required fields when the trade is executed on a SEF platform
                if (!Utilities.IsNullOrEmpty(trade.PartyReference))
                {
                    int allocNo = GetAllocationNo(trade);
                    var sefTransactionId = String.Format("{0}.{1}", trade.PartyReference, allocNo);
                    sb.Append(sefTransactionId);
                }
                sb.Append(Separator);

                // FCM  required fields when the trade is executed on a SEF platform
                var sefFCM = GetRegulatoryID(trade, sSEFClearerProperty);
                if (string.IsNullOrWhiteSpace(sefFCM))
                {
                    throw new Exception(String.Format("Unable to find SEFFCM property on trade {0}.", trade.Id));
                }
                else
                {
                    sb.Append(sefFCM);
                }
                sb.Append(Separator);

                // Prod Type
                sb.Append("IRS");
            }
            return sb.ToString();           
        }
        public void CreateProductEventObject()
        {
            var result = new ProductEvent();

            Assert.NotNull(result);
        }
        public override string ToString(ProductEvent pevent, Trade trade, Market market)
        {
            var product = trade.Product;
            var irs = product as Swap;
            if (irs == null) return null;

            var sb = new StringBuilder();
            var swapstring = ToStringSwap(pevent, trade, market, true);
            if (swapstring == null)
            {
                return null;
            }
            sb.Append(swapstring);
            // FeePayRecv	Pay/Recv            
            var fee = GetFee(trade, FeeType.Upfront);
            var feeAmount = double.NaN;
            var feeCcy = string.Empty;
            var feeDate = SimpleDate.Null;
            if (fee != null)
            {
                feeAmount = fee.SignedAmount;
                feeCcy = fee.Currency;
                feeDate = fee.Date;
            }
            if (!double.IsNaN(feeAmount))
            {
                if (fee.PayReceive == PayReceive.Pay)
                    sb.Append("Pay");
                else if (fee.PayReceive == PayReceive.Receive)
                    sb.Append("Recv");
            }
            sb.Append(Separator);
            // FeeAmount
            if (!double.IsNaN(feeAmount))
                sb.Append(Math.Abs(feeAmount).ToString(CultureInfo.InvariantCulture));
            sb.Append(Separator);
            // FeeCurrency	The ISO identifier for the Fee Currency of the trade.         
            sb.Append(feeCcy).Append(Separator);
            // FeeDate	Fee date in YYYYMMDD format
            if (!feeDate.Equals(SimpleDate.Null))
                sb.Append(feeDate.ToString());
            sb.Append(Separator);

            var strategy = GetStrategyName(trade);
            if (!string.IsNullOrEmpty(strategy))
                sb.Append(strategy);
            sb.Append(Separator);

            sb.Append(ToStringOptional(pevent, trade, market));
            if (SendStrategyAmendments)
            {
                sb.Append(sEventID).Append(Separator);
            }

            //AmendToDeleteInsert(trade, pevent, sb);
            return sb.ToString();
        }
        protected override string ToStringOptional(ProductEvent pevent, Trade trade, Market market)
        {
            var sb = new StringBuilder();
            // ClearingHouse	Clearinghouse code will be provided
            var ccp = GetCcp(trade);
            if (ccp != null)
                sb.Append(ccp);
            sb.Append(Separator);
            string isSef = string.Empty;
            try
            {
                isSef = GetRegulatoryID(trade, sIsSEFProperty);
            }
            catch(Exception)
            {
                // trade doesn't have regulatory ID - ignore and treat as normal IRS
            }
            if (string.Equals(isSef, "Y", StringComparison.InvariantCultureIgnoreCase))
            {
                // SefFlag
                sb.Append("1").Append(Separator);
                // SefTransID	SEF Transaction ID  required fields when the trade is executed on a SEF platform                
                if (!Utilities.IsNullOrEmpty(trade.PartyReference))
                {
                    int allocNo = GetAllocationNo(trade);
                    var sefTransactionId = String.Format("{0}.{1}", trade.PartyReference, allocNo);
                    sb.Append(sefTransactionId);
                }
                sb.Append(Separator);
                // SefName  required fields when the trade is executed on a SEF platform

                var tradeSefName = trade.GetProperty("SEFName");
                /*var sefNameAlias = Env.Current.StaticData.GetAlias(new Alias
                        {
                            EntityId = 0,
                            AliasType = "SEFName",
                            Source = trade.TradingSystem,
                            SourceReference = tradeSefName
                        });
                if (sefNameAlias == null)
                {
                    throw new Exception(String.Format("Unable to find MLP's SEFName alias for SEFName = {0} on trade {1}", tradeSefName, trade.Id));
                }
                var sefName = sefNameAlias.Name;*/
                sb.Append(tradeSefName); // the importer picks up the alias now
                sb.Append(Separator);

                // USI  required fields when the trade is executed on a SEF platform
                var sefSource = GetRegulatoryID(trade, sSEFSourceProperty);
                var sefId = GetRegulatoryID(trade, sSEFIdProperty);
                if (string.IsNullOrWhiteSpace(sefSource) || string.IsNullOrWhiteSpace(sefId))
                {
                    throw new Exception(String.Format("Unable to find {0} or {1} on trade {2} to construct USI.", sSEFSourceProperty, sSEFIdProperty, trade.Id));
                }

                var regulatoryTradeId = sefSource + sefId;
                sb.Append(regulatoryTradeId);
                sb.Append(Separator);

                // FCM  required fields when the trade is executed on a SEF platform
                var sefFCM = GetRegulatoryID(trade, sSEFClearerProperty);
                if (string.IsNullOrWhiteSpace(sefFCM))
                {
                    throw new Exception(String.Format("Unable to find SEFFCM property on trade {0}.", trade.Id));
                }
                else
                {
                    sb.Append(sefFCM);
                }
                sb.Append(Separator);

                string insertReason = "23 - Affirmation no send";
                sb.Append(insertReason).Append(Separator);
            }
            else
            {
                // non-SEF
                sb.Append(Separator);
                sb.Append(Separator);
                sb.Append(Separator);
                sb.Append(Separator);
                sb.Append(Separator);
                sb.Append(Separator);
            }
            return sb.ToString();
        }
        protected override string StrategyAmendmentRecord(ProductEvent pevent, ProductEvent prevEvent, Trade trade, Market market)
        {
            var product = trade.Product;
            var irs = product as Swap;
            if (irs == null) return null;

            var sb = new StringBuilder();
            // Source	"SYM_OT"  for trades to be booked into Murex
            sb.Append(ReferenceSource).Append(Separator);
            // Product
            sb.Append(GetSecurityCode(trade.Product, pevent)).Append(Separator);
            // Action
            sb.Append("AM").Append(Separator);
            // SourceID            
            sb.Append(sReference).Append(Separator);
            // OriginalSourceID
            sb.Append(Separator);
            // Usage
            sb.Append(Separator);
            // Portfolio
            sb.Append(Separator);
            // Direction
            sb.Append(Separator);
            // Generator
            sb.Append(Separator);
            // PayLeg
            sb.Append(Separator);
            // RecLeg
            sb.Append(Separator);
            // FixedRate
            sb.Append(Separator);
            // FirstFixingRate
            //sb.Append(Separator);
            // PaySpread
            sb.Append(Separator);
            // RecSpread
            sb.Append(Separator);
            // CounterpartyID
            sb.Append(Separator);
            // TradeDate
            sb.Append(GetTradeDate(pevent, trade).ToString()).Append(Separator);
            // EffectiveDate
            sb.Append(Separator);
            // MaturityDate
            sb.Append(Separator);
            // Notional
            sb.Append(Separator);
            // FeePayRecv
            sb.Append(Separator);
            // FeeAmount
            sb.Append(Separator);
            // FeeCurrency
            sb.Append(Separator);
            // FeeDate
            sb.Append(Separator);
            // Strategy1
            var strategy = GetStrategyName(trade.BookId);
            if (!string.IsNullOrEmpty(strategy))
                sb.Append(strategy);
            sb.Append(Separator);
            // ClearingHouse
            sb.Append(Separator);
            // SefFlag
            sb.Append(Separator);
            // SefTransID
            sb.Append(Separator);
            // SefName
            sb.Append(Separator);
            // USI
            sb.Append(Separator);
            // FCM
            sb.Append(Separator);
            // InsertReason
            sb.Append(Separator);
            // EventID
            sb.Append(sEventID).Append(Separator);
            // OrigStrategy
            var prTrade = TradeHelper.GetVersion(trade.Id, prevEvent.TradeVersion);
            if (prTrade != null)
            {
                sb.Append(GetStrategyName(prTrade));
            }
            return sb.ToString();
        }
        protected override string StrategyAmendmentRecord(ProductEvent pevent, ProductEvent prevEvent, Trade trade, Market market)
        {
            var fxopt = trade.Product as FXOption;
            if (fxopt == null) return null;
            var sb = new StringBuilder();
            //A Transaction Type   
            sb.Append("AM").Append(Separator);
            //B Reference   Unique Trader reference (used for identification only)
            sb.Append(sReference).Append(Separator);
            //C Action  
            sb.Append(Separator);
            //D Symbol
            sb.Append(Separator);
            //E Quantity
            sb.Append(Separator);
            //F Price
            sb.Append(Separator);
            //G Trade Date 
            sb.Append(FormatDate(GetTradeDate(pevent, trade))).Append(Separator);
            //H Settle Date
            sb.Append(Separator);
            //I CNBR 
            sb.Append(Separator);
            //J Security Type Code
            sb.Append("FXOPT").Append(Separator);
            //K Executing Broker
            sb.Append(Separator);
            //L Account
            var partyId = trade.ClearerId;
            var aliasType = GetSource(trade).Equals(ImagineSource) ? AccountAliasType_I : AccountAliasType_NI;
            var acc = GetAccountFromParty(Party.GetEntity(trade.BookId).Id, partyId, trade.BookId, OtSource, aliasType);
            if (acc != null)
            {
                var portfolio = GetPortfolio(trade.BookId);
                if (!string.IsNullOrEmpty(portfolio))
                    acc = acc + "-" + portfolio;
                sb.Append(acc);
            }
            sb.Append(Separator);
            //M Cross currency  
            sb.Append(Separator);
            //N Strategy
            var strategy = GetStrategyName(trade);
            if (!string.IsNullOrEmpty(strategy))
                sb.Append(strategy);
            sb.Append(Separator);
            //O Strike
            sb.Append(Separator);
            //P Put/Call
            sb.Append(Separator);
            //Q Premium
            sb.Append(Separator);
            //R Premium Date
            sb.Append(Separator);
            //S Commission
            sb.Append(Separator);
            //T Reserved
            sb.Append(Separator);
            //U Reserved
            sb.Append(Separator);
            //V Reserved
            sb.Append(Separator);
            //W Cash Settled
            sb.Append(Separator);
            //X Reserved
            sb.Append(Separator);
            //Y Reserved
            sb.Append(Separator);
            //Z CutOff
            sb.Append(Separator);
            //AA Fixing Source
            sb.Append(Separator);
            //AB EventID
            sb.Append(sEventID).Append(Separator);
            //AC ReferenceSource
            sb.Append(ReferenceSource).Append(Separator);
            //AD OrigStrategy
            var prTrade = TradeHelper.GetVersion(trade.Id, prevEvent.TradeVersion);
            if (prTrade != null)
            {
                sb.Append(GetStrategyName(prTrade));
            }

            return sb.ToString();
        }
 public override bool IsExcluded(ProductEvent pevent, Trade trade, Market market)
 {
     if (!(trade.Product is FXOption)) return true;
     if (IsExpiryTrade(trade, false)) return true;  // exclude expiry fxoption offsetting trade
     return false;
 }
        public override string ToString(ProductEvent pevent, Trade trade, Market market)
        {
            var fxopt = trade.Product as FXOption;
            if (fxopt == null) return null;
            var sb = new StringBuilder();
            StringBuilder error;
            //A Transaction Type
            //B Reference   Unique Trader reference (used for identification only)
            if (SendStrategyAmendments)
            {
                sb.Append(sAction).Append(Separator);
                sb.Append(sReference).Append(Separator);
            }
            else
            {
                var uniqueId = GetUniqueId(pevent, trade);
                sb.Append(GetTradeAction(pevent, trade)).Append(Separator);                
                sb.Append(uniqueId).Append(Separator);
            }
            //C Action  
            sb.Append(GetBuySellType(pevent, trade)).Append(Separator);
            //D Symbol
            sb.Append(GetSymbol(pevent, trade, out error)).Append(Separator);
            //E Quantity
            sb.Append(Math.Abs(fxopt.PrimaryAmount).ToString("f9", CultureInfo.InvariantCulture)).Append(Separator);
            //F Price
            var price = fxopt.InitialPremiumAmount / fxopt.PrimaryAmount * 10000;
            sb.Append(price.ToString("f9", CultureInfo.InvariantCulture)).Append(Separator);
            //G Trade Date 
            sb.Append(FormatDate(GetTradeDate(pevent, trade))).Append(Separator);
            //H Settle Date
            sb.Append(FormatDate(fxopt.ExpiryDate)).Append(Separator);
            //I CNBR 
            sb.Append(Separator);
            //J Security Type Code
            sb.Append("FXOPT").Append(Separator);
            //K Executing Broker
            sb.Append(GetPartyName(trade)).Append(Separator);
            //L Account
            var partyId = trade.ClearerId;
            var aliasType = GetSource(trade).Equals(ImagineSource) ? AccountAliasType_I : AccountAliasType_NI;
            var acc = GetAccountFromParty(Party.GetEntity(trade.BookId).Id, partyId, trade.BookId, OtSource, aliasType);
            if (acc != null)
            {
                var portfolio = GetPortfolio(trade.BookId);
                if (!string.IsNullOrEmpty(portfolio))
                    acc = acc + "-" + portfolio;
                sb.Append(acc);
            }
            sb.Append(Separator);
            //M Cross currency  
            sb.Append("SCCY " + fxopt.Currency);
            sb.Append(Separator);
            //N Strategy
            var strategy = GetStrategyName(trade);
            if (!string.IsNullOrEmpty(strategy))
                sb.Append(strategy);
            sb.Append(Separator);
            //O Strike
            sb.Append(fxopt.OptionStrike.ToString(CultureInfo.InvariantCulture));
            sb.Append(Separator);
            //P Put/Call
            sb.Append(fxopt.OptionType.ToString());
            sb.Append(Separator);
            //Q Premium
            sb.Append(fxopt.InitialPremiumAmount.ToString(CultureInfo.InvariantCulture));
            sb.Append(Separator);
            //R Premium Date
            sb.Append(FormatDate(fxopt.InitialPremiumDate));
            sb.Append(Separator);
            //S Commission
            bool hasCommission;
            var cf = GetCommissionFee(trade, out hasCommission);
            if (hasCommission)
                sb.Append(cf.ToString("f9", CultureInfo.InvariantCulture));
            sb.Append(Separator);
            //T Reserved
            sb.Append(Separator);
            //U Reserved
            sb.Append(Separator);
            //V Reserved
            sb.Append(Separator);
            //W Cash Settled
            if (fxopt.ExerciseSettlement == ExerciseSettlement.Cash)
                sb.Append("Y");
            sb.Append(Separator);
            //X Reserved
            sb.Append(Separator);
            //Y Reserved
            sb.Append(Separator);
            //Z CutOff
            var cutoff = GetCutOff(fxopt);
            if (cutoff == null)
                throw new Exception("Cannot find CutOff for FxOption trade " + trade.Id);
            sb.Append(cutoff).Append(Separator);
            //AA Fixing Source
            sb.Append(Separator);
            if (SendStrategyAmendments)
            {
                //AB EventID
                sb.Append(sEventID).Append(Separator);
                //AC ReferenceSource
                sb.Append(ReferenceSource);               
            }

            return sb.ToString();
        }
Esempio n. 18
0
 private void Button_Cancel_Click(object sender, RoutedEventArgs e)
 {
     PopUpEvent.OnHidePopUp();
     ProductEvent.OnUpdateDataGrid();
 }
        internal static void TestInitialize(ref ClaimEvent component, ref ProductEvent pce)
        {
            component = new ClaimEvent();
            component.ProductEventID = 34;

            if (pce == null)
            {
                pce = new ProductEvent();
            }

            component.InternalClaimHeader = new ClaimHeader();
            component.ClaimHeader.InternalClaimDetails.Add(new ClaimDetail() { ClaimDetailReference = "D0001" });
            ClaimInvolvement claimInvolvement = new ClaimInvolvement() { InternalClaimHeader = component.InternalClaimHeader, ClaimInvolvementType = (short)Xiap.Metadata.Data.Enums.StaticValues.LinkableComponentType.NameInvolvement, InternalClaimNameInvolvements = new System.Data.Objects.DataClasses.EntityCollection<ClaimNameInvolvement>() };
            ClaimNameInvolvement nameInvolvement = new ClaimNameInvolvement() { NameInvolvementType = (short)StaticValues.NameInvolvementType_ClaimNameInvolvement.MainClaimHandler, NameInvolvementMaintenanceStatus = (short)StaticValues.ClaimNameInvolvementMaintenanceStatus.Latest, NameID = 1 };
            claimInvolvement.InternalClaimNameInvolvements.Add(nameInvolvement);
            component.InternalClaimHeader.InternalClaimInvolvements.Add(claimInvolvement);

            pce.ProductVersion = new ProductVersion();
            pce.ProductVersion.Product = new Product();
            pce.ProductVersion.Product.Code = "TST";

            pce.EventType = new EventType();
            pce.EventType.IsStatusChangeEvent = false;
            pce.EventType.IsSystemCreationAllowed = false;
            pce.EventType.IsManualCreationAllowed = true;
            pce.EventType.IsManualDeletionAllowed = true;
            pce.EventType.Code = "ABCD";
            pce.EventTypeReference.SetEntityKey(new System.Data.EntityKey("MetadataEntities.EventType", "Code", "ABCD"));

            IComponentMetadata metadata = MockRepository.GenerateStub<IComponentMetadata>();
            metadata.Stub(m => m.GetDefinitionComponent<EventType>()).Return(pce.EventType);

            UnityContainer container = new UnityContainer();
            container.RegisterType<IMessageService, MessageService>();
            container.RegisterInstance<IComponentMetadata>(metadata);

            var metadataMock = MockRepository.GenerateStub<IMetadataQuery>();
            var list = new List<ProductEvent>() { pce };
            long productEventID = 34;

            metadataMock.Stub(m => m.GetProductEvent(productEventID));

            var listEventType = new List<EventType>() { pce.EventType };
            metadataMock.Stub(m => m.GetEventType("ABCD")).Return(listEventType.AsQueryable());

            EventTypeVersion etv = new EventTypeVersion();
            etv.EventTypeVersionID = 34;
            var listTypeVersion = new List<EventTypeVersion>() { etv };
            metadataMock.Stub(m => m.GetEventTypeVersion("ABCD")).Return(listTypeVersion.AsQueryable());

         

            container.RegisterInstance<IMetadataQuery>(metadataMock);
            container.RegisterType<ObjectContext, MetadataEntities>("MetadataEntities", new InjectionConstructor[] { new InjectionConstructor(new object[] { }) });
            container.RegisterType<MetadataEntities>("MetadataEntities", new InjectionConstructor[] { new InjectionConstructor(new object[] { }) });
            IConfigurationManager configurationManager = MockRepository.GenerateStub<IConfigurationManager>();
            configurationManager.Stub(m => m.AppSettings).Return(new System.Collections.Specialized.NameValueCollection());
            container.RegisterInstance<IConfigurationManager>(configurationManager);
            ObjectFactory.Instance = new ObjectFactory(container);

            component.Context = new ClaimsTransactionContext(string.Empty, string.Empty, string.Empty);
        }
 protected override string StrategyAmendmentRecord(ProductEvent pevent, ProductEvent prevEvent, Trade trade, Market market)
 {
     return null;
 }