private TransactionInstance ParseTransactionInstance(XElement element)
        {
            var id                = int.Parse(element.Attribute(XmlParsersConfig.AttributeId).Value);
            var kindId            = int.Parse(element.Attribute(XmlParsersConfig.AttributeKindId).Value);
            var identificator     = element.Attribute(XmlParsersConfig.AttributeIdentificator).Value;
            var completionType    = (TransactionCompletion)int.Parse(element.Attribute(XmlParsersConfig.AttributeCompletionType).Value);
            var processInstanceId = int.Parse(element.Attribute(XmlParsersConfig.AttributeProcessInstanceId).Value);

            var initiatorId = Int32.TryParse(element.Attribute(XmlParsersConfig.AttributeInitiatorId).Value, out var tmpInitiatorId) ? tmpInitiatorId : (int?)null;
            var executorId  = Int32.TryParse(element.Attribute(XmlParsersConfig.AttributeExecutorId).Value, out var tmpExecutorId) ? tmpExecutorId : (int?)null;
            var parentId    = Int32.TryParse(element.Attribute(XmlParsersConfig.AttributeParentid).Value, out var tmpParentId) ? tmpParentId : (int?)null;

            var instance = new TransactionInstance()
            {
                Completion        = completionType,
                ExecutorId        = executorId,
                Id                = id,
                Identificator     = identificator,
                InitiatorId       = initiatorId,
                ParentId          = parentId,
                ProcessInstanceId = processInstanceId,
                TransactionKindId = kindId
            };

            return(instance);
        }
Exemple #2
0
        /// <summary>
        /// Gets the data.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <returns>Web transation datas.</returns>
        public override object GetData(ITabContext context)
        {
            HttpContextBase     httpContext         = new HttpContextWrapper(HttpContext.Current);
            TransactionInstance transactionInstance = TransactionInstance.GetInstance(httpContext);

            return(transactionInstance.Description);
        }
        void TransactionAccepted_State_InstanceUpdated(TransactionInstance obj)
        {
            if (Application.Current.Dispatcher.Thread != Thread.CurrentThread)
            {
                Application.Current.Dispatcher.BeginInvoke(new Action <TransactionInstance>(TransactionAccepted_State_InstanceUpdated), obj);
                return;
            }

            TransactionLine line = this.Transactions.FirstOrDefault(e => e.Transaction.Id == obj.PublicMember.Id);

            if (line == null)
            {
                line = new TransactionLine()
                {
                    State = TransactionState.Accepted, Transaction = obj.PublicMember
                };
                Transactions.Add(line);
            }
            else
            {
                XComponent.Common.Clone.XCClone.Clone(obj.PublicMember, line.Transaction);
                line.State = TransactionState.Accepted;
            }

            line.XCState         = obj.StateName;
            line.XCPreviousState = obj.PublicMember.PreviousState;
            line.Context         = obj.Context;
        }
Exemple #4
0
        public void Invoke()
        {
            TransactionInstance instance = TransactionInstance.GetInstance(HttpContext.Current);

            var interfaceProxy = TransactionProxy <IInterfaceProxyTest> .Create(HttpContext.Current, new InterfaceProxyTest());

            string result = interfaceProxy.GetName();

            Assert.AreEqual(result, string.Empty);
            Assert.AreEqual(instance.Description.Details.Count(), 1);

            interfaceProxy = TransactionProxy <IInterfaceProxyTest> .Create(new HttpContextWrapper(HttpContext.Current), new InterfaceProxyTest());

            result = interfaceProxy.GetName();
            Assert.AreEqual(result, string.Empty);
            Assert.AreEqual(instance.Description.Details.First().Details.Count(), 1);

            var marshalProxy = TransactionProxy <MarshalProxyTest> .Create(HttpContext.Current, new MarshalProxyTest());

            result = marshalProxy.GetName();
            Assert.AreEqual(result, string.Empty);
            Assert.AreEqual(instance.Description.Details.First().Details.Count(), 2);

            marshalProxy = TransactionProxy <MarshalProxyTest> .Create(new HttpContextWrapper(HttpContext.Current), new MarshalProxyTest());

            result = marshalProxy.GetName();
            Assert.AreEqual(result, string.Empty);
            Assert.AreEqual(instance.Description.Details.First().Details.Count(), 3);
        }
Exemple #5
0
        public void GetInstance()
        {
            TransactionInstance instanceOne = TransactionInstance.GetInstance(HttpContext.Current);
            TransactionInstance instanceTwo = TransactionInstance.GetInstance(new HttpContextWrapper(HttpContext.Current));

            Assert.AreEqual(instanceOne, instanceTwo);
        }
Exemple #6
0
        public TransactionInstance saveTransactionInstace(TransactionInstance transactionInstance)
        {
            using (Entities db = new Entities())
            {
                if (db.Database.Exists())
                {
                    if (transactionInstance.Id == 0) //Add new record
                    {
                        db.Entry(transactionInstance).State = EntityState.Added;
                        db.TransactionInstances.Add(transactionInstance);
                    }
                    else
                    {
                        db.Entry(transactionInstance).State = EntityState.Modified;
                    }

                    db.SaveChanges();

                    return(transactionInstance);
                }
                else
                {
                    throw new CW2DatabaseUnavaiableException("Database Unavailable");
                }
            }
        }
Exemple #7
0
        /// <summary>
        /// Initializes the context.
        /// </summary>
        protected void InitializeContext()
        {
            var request      = new HttpRequest(string.Empty, "http://localhost/", string.Empty);
            var stringWriter = new StringWriter();
            var response     = new HttpResponse(stringWriter);

            HttpContext.Current = new HttpContext(request, response);
            TransactionInstance instance = TransactionInstance.GetInstance(HttpContext.Current);

            instance.StartTransaction(request.Url, string.Empty, string.Empty);
        }
        private void ParseTransactionChildren(XElement element, TransactionInstance instance)
        {
            var childElements = element.Elements(XmlParsersConfig.ElementTransactionInstance);

            foreach (var childElement in childElements)
            {
                var childInstance = ParseTransactionInstance(childElement);
                instance.AddChild(childInstance);

                ParseTransactionChildren(childElement, childInstance);
            }
        }
 private XElement CreateTransactionElement(TransactionInstance transaction)
 {
     return(new XElement(XmlParsersConfig.ElementTransactionInstance,
                         new XAttribute(XmlParsersConfig.AttributeId, transaction.Id),
                         new XAttribute(XmlParsersConfig.AttributeKindId, transaction.TransactionKindId),
                         new XAttribute(XmlParsersConfig.AttributeIdentificator, transaction.Identificator),
                         new XAttribute(XmlParsersConfig.AttributeCompletionType, (int)transaction.Completion),
                         new XAttribute(XmlParsersConfig.AttributeProcessInstanceId, transaction.ProcessInstanceId),
                         new XAttribute(XmlParsersConfig.AttributeInitiatorId, transaction.InitiatorId ?? 0),
                         new XAttribute(XmlParsersConfig.AttributeExecutorId, transaction.ExecutorId ?? 0),
                         new XAttribute(XmlParsersConfig.AttributeParentid, transaction.ParentId ?? 0)));
 }
Exemple #10
0
        public void GetData()
        {
            var request      = new HttpRequest(string.Empty, "http://localhost/", string.Empty);
            var stringWriter = new StringWriter();
            var response     = new HttpResponse(stringWriter);

            HttpContext.Current = new HttpContext(request, response);
            TransactionInstance    instance    = TransactionInstance.GetInstance(HttpContext.Current);
            TransactionDescription description = instance.StartTransaction(request.Url, string.Empty, string.Empty);
            var transactionTab = new TransactionTab();
            var result         = transactionTab.GetData(null) as TransactionDescription;

            Assert.AreEqual(result, description);
        }
Exemple #11
0
        /// <inheritdoc/>
        public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
        {
            TransactionInstance instance = TransactionInstance.GetInstance(HttpContext.Current);
            TransactionDetail   detail   = instance.StartDetail(input.MethodBase);

            try
            {
                var result = getNext()(input, getNext);
                return(result);
            }
            finally
            {
                instance.StopDetail(detail);
            }
        }
Exemple #12
0
        private void populateTransactionInstances(Transaction transaction, TransactionDto dto)
        {
            DateTime startDate  = transaction.CreatedDate;
            DateTime expireDate = (DateTime)transaction.ExpireDate;


            List <DateTime> instanceDateList = getTransactionInstanceDates(dto);

            foreach (DateTime day in instanceDateList)
            {
                TransactionInstance transactionInstance = new TransactionInstance();
                transactionInstance.TransactionDate = day;
                transactionInstance.Transaction     = transaction;
                transactionInstance.TransactionId   = transaction.Id;
                transaction.TransactionInstances.Add(transactionInstance);
            }
        }
        void ErrorOnMapping_State_InstanceUpdated(TransactionInstance obj)
        {
            if (Application.Current.Dispatcher.Thread != Thread.CurrentThread)
            {
                Application.Current.Dispatcher.BeginInvoke(new Action <TransactionInstance>(ErrorOnMapping_State_InstanceUpdated), obj);
                return;
            }

            TransactionLine line = this.Transactions.FirstOrDefault(e => e.Transaction.Id == obj.PublicMember.Id);

            if (line == null)
            {
                line = new TransactionLine()
                {
                    State = TransactionState.Error, Transaction = obj.PublicMember
                };
                line.OnReject += delegate
                {
                    ClientApiHelper.Instance.Api.TradeCapture_Component.Transaction_StateMachine.SendEvent(line.Context, new Reject());
                };
                line.OnUpdateRequested += delegate
                {
                    ClientApiHelper.Instance.Api.TradeCapture_Component.Transaction_StateMachine.SendEvent(line.Context, new Instrument()
                    {
                        Name = line.Transaction.Instrument
                    });
                };
                Transactions.Add(line);
            }
            else
            {
                XComponent.Common.Clone.XCClone.Clone(obj.PublicMember, line.Transaction);
            }

            line.XCState         = obj.StateName;
            line.XCPreviousState = obj.PublicMember.PreviousState;
            line.Context         = obj.Context;
        }
Exemple #14
0
 public TransactionViewModel(TransactionInstance instance, string name)
 {
     Instance = instance;
     Name     = name;
 }
 void ValidationError_State_InstanceUpdated(TransactionInstance obj)
 {
 }