/// <summary>
        /// Validate MasterTrade Detail Line Item
        /// </summary>
        /// <param name="masterTrade"></param>
        /// <param name="dataService"></param>
        public void ValidateMasterTradeDetailLineItem(tmastertrade masterTrade, IMasterTradesDataService dataService)
        {
            masterTradesDataService = dataService;
            InitializeValidationRules(masterTrade);

            //ValidateGreaterThanZero("Quantity", "Order Quantity");
        }
        public HttpResponseMessage GetMasterTrade(int masterID)
        {
            MasterTradeInfo             objMasterTradeInfo = new MasterTradeInfo();
            TransactionalInformation    transaction        = new TransactionalInformation();
            MasterTradesBusinessService masterTradesBusinessService;

            objMasterTradeInfo.IsAuthenicated = true;
            masterTradesBusinessService       = new MasterTradesBusinessService(masterTradesDataService);

            tmastertrade mTrade = masterTradesBusinessService.GetMasterTrade(masterID, out transaction);

            objMasterTradeInfo.MasterTrade    = mTrade;
            objMasterTradeInfo.IsAuthenicated = true;
            objMasterTradeInfo.ReturnStatus   = transaction.ReturnStatus;
            objMasterTradeInfo.ReturnMessage  = transaction.ReturnMessage;

            if (transaction.ReturnStatus == true)
            {
                var response = Request.CreateResponse <MasterTradeInfo>(HttpStatusCode.OK, objMasterTradeInfo);
                return(response);
            }

            var badResponse = Request.CreateResponse <MasterTradeInfo>(HttpStatusCode.BadRequest, objMasterTradeInfo);

            return(badResponse);
        }
        /// <summary>
        /// Validate MasterTrade
        /// </summary>
        /// <param name="masterTrade"></param>
        /// <param name="dataService"></param>
        public void ValidateMasterTrade(tmastertrade masterTrade, IMasterTradesDataService dataService)
        {
            masterTradesDataService = dataService;

            InitializeValidationRules(masterTrade);

            //ValidateRequired("ShipName", "Ship To Name");
            //ValidateRequired("ShipCity", "Ship To City");
            //ValidateRequired("ShipRegion", "Ship To Region");
            //ValidateRequired("ShipPostalCode", "Ship To Postal Code");
            //ValidateRequired("ShipCountry", "Ship To Country");
            //ValidateRequired("ShipAddress", "Ship To Address");
            //ValidateRequiredDate("RequiredDate", "Required Ship Date");
            //ValidateSelectedValue("ShipVia", "Ship Via");
        }
        public HttpResponseMessage UpdateMasterTrade(HttpRequestMessage request, [FromBody] MasterTradeInfo objMasterTradeInfo)
        {
            TransactionalInformation    transaction = new TransactionalInformation();
            MasterTradesBusinessService masterTradesBusinessService;

            objMasterTradeInfo.IsAuthenicated = true;

            masterTradesBusinessService = new MasterTradesBusinessService(masterTradesDataService);

            tmastertrade masterTrade = masterTradesBusinessService.UpdateMasterTrade(
                objMasterTradeInfo.MASTERID,
                objMasterTradeInfo.ACCOUNTID,
                objMasterTradeInfo.EXCHANGE,
                objMasterTradeInfo.TRADETYPE,
                objMasterTradeInfo.TRADINGPAIR,
                objMasterTradeInfo.BUYPRICE,
                objMasterTradeInfo.BUYQUANTITY,
                objMasterTradeInfo.BUYTOTAL,
                objMasterTradeInfo.SELLPRICE,
                objMasterTradeInfo.SELLQUANTITY,
                objMasterTradeInfo.FIRSTACTION,
                objMasterTradeInfo.LASTRUN,
                objMasterTradeInfo.NEXTRUN,
                objMasterTradeInfo.RUNFREQUENCY,
                objMasterTradeInfo.RUNLIMIT,
                objMasterTradeInfo.RUNCOUNT,
                objMasterTradeInfo.ACTIVE,
                objMasterTradeInfo.SELLTOTAL,
                out transaction);

            if (transaction.ReturnStatus == false)
            {
                objMasterTradeInfo.ReturnMessage    = transaction.ReturnMessage;
                objMasterTradeInfo.ReturnStatus     = transaction.ReturnStatus;
                objMasterTradeInfo.ValidationErrors = transaction.ValidationErrors;
                var badResponse = Request.CreateResponse <MasterTradeInfo>(HttpStatusCode.BadRequest, objMasterTradeInfo);
                return(badResponse);
            }

            objMasterTradeInfo.ReturnStatus  = transaction.ReturnStatus;
            objMasterTradeInfo.ReturnMessage = transaction.ReturnMessage;
            objMasterTradeInfo.MasterTrade   = masterTrade;

            var response = Request.CreateResponse <MasterTradeInfo>(HttpStatusCode.OK, objMasterTradeInfo);

            return(response);
        }
        public tmastertrade GetMasterTrade(int MASTERID, out TransactionalInformation transaction)
        {
            transaction = new TransactionalInformation();
            tmastertrade masterTrade = new tmastertrade();

            try
            {
                masterTradesDataService.CreateSession();
                masterTrade = masterTradesDataService.GetMasterTrade(MASTERID);
                transaction.ReturnStatus = true;
            }
            catch (Exception ex)
            {
                transaction.ReturnMessage = new List <string>();
                string errorMessage = ex.Message;
                transaction.ReturnStatus = false;
                transaction.ReturnMessage.Add(errorMessage);
            }
            finally
            {
                masterTradesDataService.CloseSession();
            }
            return(masterTrade);
        }
        public tmastertrade UpdateMasterTrade(int MASTERID, int ACCOUNTID, string EXCHANGE, string TRADETYPE, string TRADINGPAIR, string BUYPRICE,
                                              string BUYQUANTITY, decimal BUYTOTAL, string SELLPRICE, string SELLQUANTITY, string FIRSTACTION, DateTime LASTRUN, DateTime NEXTRUN,
                                              int RUNFREQUENCY, int RUNLIMIT, int RUNCOUNT, string ACTIVE, string SELLTOTAL,
                                              out TransactionalInformation transaction)

        {
            transaction = new TransactionalInformation();
            MasterTradesBusinessRules masterTradesBusinessRules = new MasterTradesBusinessRules();
            tmastertrade masterTrade = new tmastertrade();

            try
            {
                masterTradesDataService.CreateSession();

                masterTrade              = masterTradesDataService.GetMasterTrade(MASTERID);
                masterTrade.ACCOUNTID    = ACCOUNTID;
                masterTrade.EXCHANGE     = EXCHANGE;
                masterTrade.TRADETYPE    = TRADETYPE;
                masterTrade.TRADINGPAIR  = TRADINGPAIR;
                masterTrade.BUYPRICE     = BUYPRICE;
                masterTrade.BUYQUANTITY  = BUYQUANTITY;
                masterTrade.BUYTOTAL     = BUYTOTAL;
                masterTrade.SELLPRICE    = SELLPRICE;
                masterTrade.SELLQUANTITY = SELLQUANTITY;
                masterTrade.FIRSTACTION  = FIRSTACTION;
                masterTrade.LASTRUN      = LASTRUN;
                masterTrade.NEXTRUN      = NEXTRUN;
                masterTrade.RUNFREQUENCY = RUNFREQUENCY;
                masterTrade.RUNLIMIT     = RUNLIMIT;
                masterTrade.RUNCOUNT     = RUNCOUNT;
                masterTrade.ACTIVE       = ACTIVE;
                masterTrade.SELLTOTAL    = SELLTOTAL;

                masterTradesBusinessRules.ValidateMasterTrade(masterTrade, masterTradesDataService);

                if (masterTradesBusinessRules.ValidationStatus == true)
                {
                    masterTradesDataService.BeginTransaction();
                    masterTradesDataService.UpdateMasterTrade(masterTrade);
                    masterTradesDataService.CommitTransaction(true);
                    transaction.ReturnStatus = true;
                    transaction.ReturnMessage.Add("MasterTrade successfully updated at " + DateTime.Now.ToShortDateString());
                }
                else
                {
                    transaction.ReturnStatus     = masterTradesBusinessRules.ValidationStatus;
                    transaction.ReturnMessage    = masterTradesBusinessRules.ValidationMessage;
                    transaction.ValidationErrors = masterTradesBusinessRules.ValidationErrors;
                }
            }
            catch (Exception ex)
            {
                transaction.ReturnMessage = new List <string>();
                string errorMessage = ex.Message;
                transaction.ReturnStatus = false;
                transaction.ReturnMessage.Add(errorMessage);
            }
            finally
            {
                masterTradesDataService.CloseSession();
            }

            return(masterTrade);
        }
 /// <summary>
 /// Initialize MasterTrade Business Rules
 /// </summary>
 /// <param name="masterTrade"></param>
 /// <param name="dataService"></param>
 public void InitializeMasterTradeBusinessRules(tmastertrade masterTrade, IMasterTradesDataService dataService)
 {
     masterTradesDataService = dataService;
     InitializeValidationRules(masterTrade);
 }
        public tmastertrade GetMasterTrade(int MASTERID)
        {
            tmastertrade masterTrade = dbConnection.tmastertrades.SingleOrDefault(o => o.MASTERID == MASTERID);

            return(masterTrade);
        }
 public void UpdateMasterTrade(tmastertrade masterTrade)
 {
     //trade.DateUpdated = DateTime.Now;
 }
 public void CreateMasterTrade(tmastertrade masterTrade)
 {
     dbConnection.tmastertrades.Add(masterTrade);
 }