Example #1
0
        public static Color GetOrderStateColour(eOrderStatus orderStatus, bool flaggedReadyForInvoicing)
        {
            switch (orderStatus)
            {
            case eOrderStatus.Approved:
                return(Color.White);

            case eOrderStatus.Delivered:
                if (flaggedReadyForInvoicing)
                {
                    return(Color.Yellow);
                }
                else
                {
                    return(Color.LightBlue);
                }

            case eOrderStatus.Invoiced:
                return(Color.Gold);

            case eOrderStatus.Cancelled:
                return(Color.Khaki);

            default:
                return(Color.Empty);
            }
        }
        void grdOrders_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item.ItemType == GridItemType.Item || e.Item.ItemType == GridItemType.AlternatingItem)
            {
                if (e.Item.OwnerTableView.Name == grdOrders.MasterTableView.Name)
                {
                    DataRowView  drv         = (DataRowView)e.Item.DataItem;
                    eOrderStatus orderStatus = (eOrderStatus)drv["OrderStatusID"];

                    e.Item.Style["background-color"] = Orchestrator.WebUI.Utilities.GetOrderStateColourForHTML(orderStatus, false);

                    Telerik.Web.UI.RadNumericTextBox rntForiegnRate = e.Item.FindControl("rntForeignRate") as Telerik.Web.UI.RadNumericTextBox;
                    rntForiegnRate.Value = double.Parse(drv["ForeignRate"].ToString());

                    // Set the rate culture
                    CultureInfo culture = new CultureInfo(this.OrderGroup.LCID);
                    if (_decimalPlaces != 2)
                    {
                        culture.NumberFormat.CurrencyDecimalDigits = _decimalPlaces;
                    }

                    rntForiegnRate.Culture = culture;

                    HtmlAnchor hypRun = e.Item.FindControl("hypRun") as HtmlAnchor;
                    if (hypRun != null)
                    {
                        if (drv["JobId"] != DBNull.Value)
                        {
                            hypRun.HRef      = "javascript:ViewJob(" + drv["JobId"].ToString() + ");";
                            hypRun.InnerHtml = drv["JobId"].ToString();
                        }
                    }
                }
            }
        }
 public void SetOrderStatus(int orderId, eOrderStatus status)
 {
     if (Cache.ContainsKey(orderId))
     {
         Cache[orderId].Status = status;
         if (status == eOrderStatus.DELIVERED) Cache[orderId].DeliveredAt = DateTime.Now;
     }
 }
        public async Task <ActionResult <OrderResource> > SetStatus(string orderId, eOrderStatus status)
        {
            var orderEntity = await Repository.Get(orderId);

            if (orderEntity == null)
            {
                return(NotFound(orderId));
            }
            orderEntity.Status = status;
            await Repository.Update(orderEntity);

            return(await Map(orderEntity));
        }
Example #5
0
 public void SetOrderStatus(int orderId, eOrderStatus status)
 {
     DataStore.SetOrderStatus(orderId, status);
     if (Cache.ContainsKey(orderId))
     {
         Cache[orderId].Status = status;
         if (status == eOrderStatus.DELIVERED) Cache[orderId].DeliveredAt = DateTime.Now;
     }
     else
     {
         Cache.Add(orderId, DataStore.GetOrderById(orderId));
     }
 }
Example #6
0
        public void SetOrderStatus(int orderId, eOrderStatus status)
        {
            List<Order> orders = AllOrders();
            Order o = orders.Where(x => x.OrderID == orderId).FirstOrDefault();
            if (o != null)
            {
                o.Status = status;
                if (status == eOrderStatus.DELIVERED) o.DeliveredAt = DateTime.Now;

                using (FileStream stream = File.Open(FilePath, FileMode.Create))
                {
                    Serializer.Serialize(stream, orders);
                }
            }
        }
Example #7
0
 void IMT4ServerConnectorHost.OnResponse(
     ReturnCode errorcode, string errormessage, eMT4ServerType serverIndex, MT4REQ reqType,
     eOrderStatus trans_status, int masterLogin, /*int orderOrLogin,*/ Guid server_trans_id,
     eAccountType accType, MT4REQMODE reqMode, MT4Request request)
 {
     try
     {
         OnResponseAsync(
             errorcode, errormessage, serverIndex, reqType,
             trans_status, masterLogin, /*orderOrLogin,*/ server_trans_id,
             accType, reqMode, request, CancellationToken.None).Wait();
     }
     catch (Exception exception)
     {
         m_ptrLogger.LogException(exception);
     }
 }
Example #8
0
        void btnConfirmOrders_Click(object sender, EventArgs e)
        {
            // If the user can approve orders, automatically mark these orders as approved.
            bool         autoApprove    = Security.Authorise.CanAccess(eSystemPortion.ApproveOrder);
            eOrderStatus newOrderStatus = autoApprove ? eOrderStatus.Approved : eOrderStatus.Awaiting_Approval;

            List <int> orderIDs = new List <int>();

            foreach (GridItem row in gvOrders2.SelectedItems)
            {
                int orderID = int.Parse(row.OwnerTableView.DataKeyValues[row.ItemIndex]["OrderID"].ToString());
                orderIDs.Add(orderID);
            }
            if (orderIDs.Count > 0)
            {
                Facade.IOrder facOrder = new Facade.Order();
                facOrder.Update(orderIDs, newOrderStatus, ((Entities.CustomPrincipal)Page.User).UserName);
            }
        }
Example #9
0
        public static string GetOrderStateColourForHTML(eOrderStatus orderStatus, bool flaggedReadyForInvoicing)
        {
            Color colour = GetOrderStateColour(orderStatus, flaggedReadyForInvoicing);

            byte zeroValue = 0;

            if (colour.R == zeroValue && colour.G == zeroValue && colour.B == zeroValue)
            {
                if (colour.Name.Length > 0)
                {
                    return("#" + colour.Name);
                }
                else
                {
                    return("#000000");
                }
            }
            else
            {
                return("#" + ConvertToHexString(colour.R, 2) + ConvertToHexString(colour.G, 2) + ConvertToHexString(colour.B, 2));
            }
        }
Example #10
0
        ActionOutput <AddUpdateImageEditorModel> IEditorManager.GetPostCardDetailsByID(int PostCardID = 0, int userID = 0)
        {
            var result = new ActionOutput <AddUpdateImageEditorModel>();

            if (PostCardID > 0)
            {
                var postcard = Context.UserPostCards.FirstOrDefault(x => x.ID == PostCardID);
                if (postcard != null)
                {
                    if (userID > 0 && postcard.UserID != userID)
                    {
                        return new ActionOutput <AddUpdateImageEditorModel>()
                               {
                                   Message = "No acess for this record.", Status = ActionStatus.Error
                               }
                    }
                    ;
                    var model = new AddUpdateImageEditorModel();
                    model            = Mapper.Map <UserPostCard, AddUpdateImageEditorModel>(postcard, model);
                    model.Recipients = Mapper.Map <List <UserPostCardRecipient>, List <UserRecipientModel> >(postcard.UserPostCardRecipients.ToList(), model.Recipients.ToList());
                    result.Object    = model;
                    result.Message   = "Post card details";
                    result.Status    = ActionStatus.Successfull;
                }
                else
                {
                    result.Message = "No Record found.";
                    result.Status  = ActionStatus.Error;
                }
            }
            return(result);
        }

        ActionOutput <AddUpdateImageEditorModel> IEditorManager.GetDemoPostCardListing()
        {
            var emailId = Config.DemoPostCardEmail;

            var result = new ActionOutput <AddUpdateImageEditorModel>();

            if (!string.IsNullOrEmpty(emailId))
            {
                var postcard = Context.UserPostCards.Where(x => x.IsDeleted != true && x.User.Email == emailId).OrderByDescending(x => x.ID).Take(8).ToList();
                if (postcard.Count > 0)
                {
                    var model = new List <AddUpdateImageEditorModel>();
                    model = Mapper.Map <List <UserPostCard>, List <AddUpdateImageEditorModel> >(postcard.ToList(), model);

                    result.List = model.ToList();
                }

                result.Message = string.Empty;
                result.Status  = ActionStatus.Successfull;
            }
            return(result);
        }

        ActionOutput IEditorManager.DeletePostCardByID(int PostCardID, int userID = 0)
        {
            var postcard = Context.UserPostCards.FirstOrDefault(c => c.ID == PostCardID);

            if (userID > 0 && postcard.UserID != userID)
            {
                return new ActionOutput()
                       {
                           Message = "No access for this postcard.", Status = ActionStatus.Error
                       }
            }
            ;
            postcard.IsDeleted = true;
            postcard.DeletedOn = DateTime.UtcNow;
            Context.SaveChanges();
            return(new ActionOutput()
            {
                Message = "Post card deleted successfully", Status = ActionStatus.Successfull
            });
        }

        ActionOutput IEditorManager.RejectWithReason(RejectWithReasonModel model)
        {
            var postcard = Context.UserPostCardRecipients.FirstOrDefault(c => c.ID == model.RecipientCardID);
            var msg      = "";

            if (postcard.IsRejected == true)
            {
                postcard.CardStatus = PreviousCardStatus(ref postcard);

                postcard.IsRejected = false;
            }

            else
            {
                postcard.IsRejected     = true;
                postcard.IsApproved     = false;
                postcard.IsCompleted    = false;
                postcard.IsError        = false;
                postcard.RejectedOn     = DateTime.UtcNow;
                postcard.RejectedReason = model.Reason;
                postcard.CardStatus     = (int)CardStatusTypes.Rejected;
                msg = "Rejected successfully";
                IEmailManager _em = new EmailManager();
                if (postcard.UserPostCard.User.OrderStatusNotification != null && postcard.UserPostCard.User.OrderStatusNotification == true)
                {
                    _em.SendRejectionEmailToUser(postcard.ID, model.Reason);
                }
                postcard.UserHistories.Add(new UserHistory()
                {
                    UserFK = postcard.UserPostCard.UserID, Type = "Order Rejected", TokenChange = "+1", AddedOn = DateTime.UtcNow, TokenAvailable = postcard.UserPostCard.User.CardsCount
                });

                if (postcard.IsError == false || postcard.IsError == null)
                {
                    postcard.UserPostCard.User.CardsCount += 1;
                }
            }
            Context.SaveChanges();
            return(new ActionOutput()
            {
                Message = msg, Status = ActionStatus.Successfull
            });
        }

        ActionOutput IEditorManager.ApprovePostCardByID(int PostCardID)
        {
            IEmailManager _emailManager = new EmailManager();
            var           status        = "";

            var message  = "";
            var postcard = Context.UserPostCards.FirstOrDefault(c => c.ID == PostCardID);

            if (postcard.IsApproved == true)
            {
                postcard.IsApproved = false;
                postcard.ApprovedOn = null;

                status  = "disapproved";
                message = "Post card disapproved successfully";
            }
            else
            {
                postcard.IsApproved = true;
                postcard.ApprovedOn = DateTime.UtcNow;

                status  = "approved";
                message = "Post card approved successfully";
            }
            Context.SaveChanges();
            if (postcard.User.OrderPlacedNotification == true && postcard.User.OrderPlacedNotification != null)
            {
                _emailManager.SendOrderStatusChangeMailForUser(postcard.User, status);
            }
            return(new ActionOutput()
            {
                Message = message, Status = ActionStatus.Successfull
            });
        }

        ActionOutput IEditorManager.RejectPostCardByID(int PostCardID)
        {
            IEmailManager _emailManager = new EmailManager();
            var           status        = "";
            var           message       = "";
            var           postcard      = Context.UserPostCards.FirstOrDefault(c => c.ID == PostCardID);

            if (postcard.IsRejected == true)
            {
                postcard.IsRejected = false;
                postcard.RejectedOn = null;
                message             = "Rejection removed successfully";
            }
            else
            {
                postcard.IsRejected = true;
                postcard.RejectedOn = DateTime.UtcNow;
                message             = "Post card rejected successfully";
                status = "Rejected";
            }
            if (postcard.User.OrderPlacedNotification == true && postcard.User.OrderPlacedNotification != null)
            {
                _emailManager.SendOrderStatusChangeMailForUser(postcard.User, status);
            }
            Context.SaveChanges();
            return(new ActionOutput()
            {
                Message = message, Status = ActionStatus.Successfull
            });
        }

        ActionOutput IEditorManager.UpdateOrderStatus(int orderID, short Status)
        {
            IEmailManager _emailManager = new EmailManager();
            eOrderStatus  status        = (eOrderStatus)Status;

            var result = new ActionOutput();
            var order  = Context.UserOrders.FirstOrDefault(c => c.ID == orderID);

            if (order != null)
            {
                order.OrderStatus = Status;
                Context.SaveChanges();
                result.Message = "Order status updated successfully";
                result.Status  = ActionStatus.Successfull;
            }
            else
            {
                result.Message = "No record found";
                result.Status  = ActionStatus.Error;
            }
            if (order.UserPostCard.User.OrderPlacedNotification == true && order.UserPostCard.User.OrderPlacedNotification != null)
            {
                _emailManager.SendOrderStatusChangeMailForUser(order.UserPostCard.User, status.ToString());
            }

            return(result);
        }

        ActionOutput IEditorManager.CancelPostCardByID(int PostCardID)
        {
            IEmailManager _emailManager = new EmailManager();

            ActionOutput result = new ActionOutput();

            result.Message = "Post card request cancelled successfully";
            var postcard = Context.UserPostCards.FirstOrDefault(c => c.ID == PostCardID);

            if (postcard != null)
            {
                if (postcard.IsApproved == true)
                {
                    result.Message = "Card already approved by the admin.";
                    result.Status  = ActionStatus.Failed;
                }
                if (postcard.IsCancel == true)
                {
                    result.Message = "Card already cancelled by you.";
                    result.Status  = ActionStatus.Failed;
                }
                if (postcard.IsCompleted == true)
                {
                    result.Message = "Card already completed by the admin.";
                    result.Status  = ActionStatus.Failed;
                }
                if (postcard.IsDeleted == true)
                {
                    result.Message = "You can not cancel the deleted card.";
                    result.Status  = ActionStatus.Failed;
                }
                if (postcard.IsRejected == true)
                {
                    result.Message = "Card already rejected by the admin.";
                    result.Status  = ActionStatus.Failed;
                }

                if (postcard.AddedOn.Value.AddMinutes(15) >= DateTime.UtcNow)
                {
                    postcard.IsCancel    = true;
                    postcard.CancelledOn = DateTime.UtcNow;
                    foreach (var item in postcard.UserPostCardRecipients)
                    {
                        item.IsCancelled = true;

                        item.CancelledOn          = DateTime.UtcNow;
                        item.CardStatus           = (int)CardStatusTypes.Cancelled;
                        postcard.User.CardsCount += 1;
                    }
                    Context.SaveChanges();
                    //if (postcard.User.OrderPlacedNotification == true && postcard.User.OrderPlacedNotification != null)
                    //    _emailManager.SendOrderStatusChangeMailForUser(postcard.User, "Cancelled");

                    _emailManager.SendOrderStatusToAdmin("Cancelled", postcard.User);

                    result.Status = ActionStatus.Successfull;
                }
                else
                {
                    result.Message = "Time expired and now your order is placed.";
                    result.Status  = ActionStatus.Failed;
                }
            }
            else
            {
                result.Message = "No record found.";
                result.Status  = ActionStatus.Failed;
            }
            return(result);
        }

        ActionOutput IEditorManager.ApproveReceiptent(int ReceiptentID)
        {
            IEmailManager _emailManager = new EmailManager();

            var message  = "";
            var postcard = Context.UserPostCardRecipients.FirstOrDefault(c => c.ID == ReceiptentID);

            if (postcard.IsApproved == false || postcard.IsApproved == null)
            {
                postcard.IsApproved  = true;
                postcard.IsCompleted = false;
                postcard.IsError     = false;
                postcard.IsRejected  = false;
                postcard.CardStatus  = (int)CardStatusTypes.Approved;
                message = "Post card recipient approved successfully";
                //if (postcard.UserPostCard.User.OrderPlacedNotification == true && postcard.UserPostCard.User.OrderPlacedNotification != null)
                //    _emailManager.SendOrderStatusChangeMailForUser(postcard.UserPostCard.User, "recipient approved");

                postcard.UserHistories.Add(new UserHistory()
                {
                    UserFK = postcard.UserPostCard.UserID, Type = "Order", Status = "Order Approved", TokenChange = "", AddedOn = DateTime.UtcNow, TokenAvailable = postcard.UserPostCard.User.CardsCount
                });
            }
            else
            {
                if (postcard.IsApproved == true)
                {
                    postcard.CardStatus = PreviousCardStatus(ref postcard);
                    postcard.IsApproved = false;
                    postcard.IsError    = false;
                    postcard.IsRejected = false;
                    message             = "Post card recipients disapproved successfully";
                }
                //if (postcard.UserPostCard.User.OrderPlacedNotification == true && postcard.UserPostCard.User.OrderPlacedNotification != null)
                //    _emailManager.SendOrderStatusChangeMailForUser(postcard.UserPostCard.User, "recipient disapproved");
            }
            Context.SaveChanges();
            return(new ActionOutput()
            {
                Message = message, Status = ActionStatus.Successfull
            });
        }

        ActionOutput IEditorManager.CompletePostCard(int postcardID)
        {
            IEmailManager _emailManager = new EmailManager();

            var          message = "";
            ActionStatus status;
            var          postcard = Context.UserPostCards.FirstOrDefault(c => c.ID == postcardID);

            if (postcard != null)
            {
                postcard.IsCompleted = true;
                postcard.CompletedOn = DateTime.UtcNow;
                message = "Post card completed successfully";
                status  = ActionStatus.Successfull;
                Context.SaveChanges();
                if (postcard.User.OrderStatusNotification == true && postcard.User.OrderStatusNotification != null)
                {
                    _emailManager.SendOrderStatusChangeMailForUser(postcard.User, "completed");
                }
            }
            else
            {
                message = "No record found."; status = ActionStatus.Error;
            }
            return(new ActionOutput()
            {
                Message = message, Status = status
            });
        }

        ActionOutput IEditorManager.CompleteRecipientPostCard(int ReceiptentID)
        {
            IEmailManager _emailManager = new EmailManager();
            var           message       = "";
            ActionStatus  status;
            var           postcard = Context.UserPostCardRecipients.FirstOrDefault(c => c.ID == ReceiptentID);

            if (postcard != null)
            {
                postcard.IsCompleted = true;
                postcard.IsApproved  = true;
                postcard.IsRejected  = false;
                postcard.IsError     = false;
                postcard.ApprovedOn  = DateTime.UtcNow;
                postcard.CompletedOn = DateTime.UtcNow;
                postcard.CardStatus  = (int)CardStatusTypes.Completed;
                message = "Post card completed successfully";
                status  = ActionStatus.Successfull;
                Context.SaveChanges();
                if (postcard.UserPostCard.User.OrderStatusNotification == true && postcard.UserPostCard.User.OrderStatusNotification != null)
                {
                    _emailManager.SendCardWasMailedEmail(postcard.UserPostCard.User);
                    _emailManager.SendOrderStatusChangeMailForUser(postcard.UserPostCard.User, "completed");
                }

                postcard.UserHistories.Add(new UserHistory()
                {
                    UserFK = postcard.UserPostCard.UserID, Type = "Order", Status = "Order Completed", TokenChange = "", AddedOn = DateTime.UtcNow, TokenAvailable = postcard.UserPostCard.User.CardsCount
                });
            }
            else
            {
                message = "No record found."; status = ActionStatus.Error;
            }
            return(new ActionOutput()
            {
                Message = message, Status = status
            });
        }

        ActionOutput IEditorManager.DispproveReceiptent(int ReceiptentID)
        {
            var message  = "";
            var postcard = Context.UserPostCardRecipients.FirstOrDefault(c => c.ID == ReceiptentID);

            if (postcard.IsApproved == true)
            {
                postcard.CardStatus = PreviousCardStatus(ref postcard);
                postcard.IsApproved = false;
                postcard.IsRejected = false;
                postcard.IsError    = false;

                message = "Post card recipient disapproved successfully";
                Context.SaveChanges();
            }
            else
            {
                message = "Post card recipients is already in disapproved state";
            }

            return(new ActionOutput()
            {
                Message = message, Status = ActionStatus.Successfull
            });
        }

        ActionOutput IEditorManager.SentToError(int ReceiptentID)
        {
            var message  = "";
            var postcard = Context.UserPostCardRecipients.FirstOrDefault(c => c.ID == ReceiptentID);

            if (postcard.IsError == true)
            {
                postcard.CardStatus = PreviousCardStatus(ref postcard);
                postcard.IsError    = false;
                postcard.IsRejected = false;

                message = "remove from errors successfully";

                if (postcard.IsRejected == false || postcard.IsRejected == null)
                {
                    postcard.UserPostCard.User.CardsCount -= 1;
                }
            }
            else
            {
                postcard.IsError    = true;
                postcard.IsRejected = false;
                postcard.CardStatus = (int)CardStatusTypes.Error;
                message             = "Sent to errors successfully";

                if (postcard.IsRejected == false || postcard.IsRejected == null)
                {
                    postcard.UserPostCard.User.CardsCount += 1;
                }
            }
            Context.SaveChanges();
            return(new ActionOutput()
            {
                Message = message, Status = ActionStatus.Successfull
            });
        }

        ActionOutput IEditorManager.GetPostCardBackSideJsonResult(int ReceiptentID)
        {
            List <string> result   = new List <string>();
            var           message  = "";
            var           postcard = Context.UserPostCardRecipients.FirstOrDefault(c => c.ID == ReceiptentID);

            if (postcard != null)
            {
                if (postcard.UserPostCard.CardBackJsonWithIFrame != null)
                {
                    result.Add(postcard.UserPostCard.CardBackJsonWithIFrame);
                }
                else
                {
                    result.Add(postcard.UserPostCard.CardBackJson);
                }
                message = "remove from errors successfully";
            }
            else
            {
                postcard.IsError = true;
                message          = "Sent to errors successfully";
            }
            return(new ActionOutput()
            {
                Message = message, Results = result, Status = ActionStatus.Successfull
            });
        }
Example #11
0
        /// <summary>
        /// WitFXMT4ServerBL.onMT4Response
        /// </summary>
        private async Task OnResponseAsync(
            ReturnCode errorcode, string errormessage, eMT4ServerType serverIndex, MT4REQ reqType,
            eOrderStatus trans_status, int masterLogin, /*int orderOrLogin,*/ Guid server_trans_id,
            eAccountType accType, MT4REQMODE reqMode, MT4Request request, CancellationToken cancellationToken)
        {
            Debug.Assert(masterLogin > 0);
            //m_ptrMySqlWrapper.insertLog(Utilities.LOG_INFO,masterLogin,orderOrLogin,"X",)
            if (reqType == MT4REQ.MT4REQ_NEW_ACCOUNT)
            {
                var mt4Login = request.User?.login ?? 0;

                if (trans_status == eOrderStatus.ORD_STAT_EXECUTED)
                {
                    Debug.Assert(mt4Login > 0);
                    m_ptrLogger.LogInfo($"EXECUTED : MT4 Account {mt4Login}, master Login {masterLogin}, AccountType: {accType}");
                    MT4Account acc = new MT4Account();
                    //memset(&acc, 0, sizeof(MT4Account));
                    acc._accountType    = accType;
                    acc._masterLogin    = masterLogin;
                    acc._mt4Login       = mt4Login;
                    acc._mt4ServerIndex = serverIndex;

                    //if (serverIndex == SRV_TYPE_DEMO)
                    //{
                    //    Demo.insertMT4Account(orderOrLogin);
                    //}
                    //else
                    //{
                    //    Live.insertMT4Account(orderOrLogin);
                    //}

                    lock (_mt4LoginsByServerIndex)
                        AddMt4LoginNoLock(serverIndex, mt4Login);

                    await _mt4AccountService.InsertMT4Account(acc, cancellationToken);

                    //if (!)
                    //{
                    //    m_ptrLogger.LogError("Unable to insert MT4 account for masterlogin: %d MT4 Login: %d in database", masterLogin, orderOrLogin);
                    //}
                    //else
                    //{

                    #region Rebate
                    //TODO: Claudia: rebate
                    //if (accType == ACC_TYPE_REBATE)
                    //{
                    //    Dictionary<int, int>.iterator it2;

                    //    //lock (m_SyncMapMt4Master)
                    //    //{

                    //    it2 = m_mapMasterRebateAcc.find(masterLogin);
                    //    if (it2 == m_mapMasterRebateAcc.end())
                    //    {
                    //        m_mapMasterRebateAcc.insert(new ValueTuple<int, int>(masterLogin, orderOrLogin));
                    //    }

                    //    //}
                    //}
                    #endregion

                    ////else //if (accType != ACC_TYPE_REBATE)
                    ////{
                    //Dictionary<bool, Dictionary<int, int>>.iterator it1;
                    ////Dictionary<int, int>.iterator it2;

                    ////lock (m_SyncMapMt4Master)
                    ////{

                    //bool isDemoServer = serverIndex == SRV_TYPE_DEMO ? true : false;
                    //it1 = m_mapMT4MasterLogin.find(isDemoServer);
                    //if (it1 == m_mapMT4MasterLogin.end())
                    //{
                    //    Dictionary<int, int> mp2 = new Dictionary<int, int>();
                    //    m_mapMT4MasterLogin.insert(new ValueTuple<bool, Dictionary<int, int>>(isDemoServer, mp2));
                    //    it1 = m_mapMT4MasterLogin.find(isDemoServer);
                    //}
                    //it1.second.insert(new ValueTuple<int, int>(orderOrLogin, masterLogin));



                    ////}
                    ////}
                    ////}


                    if (accType == eAccountType.ACC_TYPE_SSP)
                    {
                        await _signalService.UpdateSignalMT4Login(server_trans_id, mt4Login, cancellationToken);

                        await _signalService.UpdateSSPSignalMT4Login(server_trans_id, mt4Login, cancellationToken);

                        //fetchAllSignal();
                        //fetchAllSSPSignal();
                        //fetchAllSMSignal();
                        //insertDBTransmitData(masterLogin, FDMT_Signal_ID);
                        //insertDBTransmitData(masterLogin, FDMT_SSPSignal_ID);
                    }
                    else if (accType == eAccountType.ACC_TYPE_SM)
                    {
                        await _signalService.UpdateSignalMT4Login(server_trans_id, mt4Login, cancellationToken);

                        await _signalService.UpdateSMSignalMT4Login(server_trans_id, mt4Login, cancellationToken);

                        //fetchAllSignal();
                        //fetchAllSSPSignal();
                        //fetchAllSMSignal();

                        //insertDBTransmitData(masterLogin, FDMT_Signal_ID);
                        //insertDBTransmitData(masterLogin, FDMT_SMSignal_ID);
                    }

                    var m_masterUserSetting = await _masterSettingsService.GetCachedMasterSettingsAsync(cancellationToken);

                    if (accType == eAccountType.ACC_TYPE_FOLLOWER_DEMO || accType == eAccountType.ACC_TYPE_SSP || accType == eAccountType.ACC_TYPE_SM)
                    {
                        MT4Request ptrMT4Req4 = (MT4Request) new MT4Request();
                        //memset(ptrMT4Req4, 0, sizeof(MT4Request));
                        //ptrMT4Req4.newLoginOrOrderID = orderOrLogin; // Alexey
                        ptrMT4Req4.masterLogin = masterLogin;
                        ptrMT4Req4.reqType     = MT4REQ.MT4REQ_BALANCE;
                        //ptrMT4Req4.socketID = socketID;
                        ptrMT4Req4.status        = eOrderStatus.ORD_STAT_RECVD;
                        ptrMT4Req4.serverTransID = TransactionService.NewTransactionId();
                        ptrMT4Req4.ptrData       = new MT4OrderInfo();
                        //memset(ptrMT4Req4.ptrData, 0, sizeof(MT4OrderInfo));
                        MT4OrderInfo ptrOrd = (MT4OrderInfo)ptrMT4Req4.ptrData;
                        ptrOrd._accountType    = accType;
                        ptrOrd._masterLogin    = masterLogin;
                        ptrOrd._mt4Login       = mt4Login;
                        ptrOrd._mt4ServerIndex = serverIndex;
                        ptrOrd._orderTransMode = eMT4OrderTransMode.ORD_TRANS_CLOSE;
                        ptrOrd._orderType      = eMT4OrderType.ORD_TYPE_BALANCE;
                        ptrOrd._price          = request.deposit;
                        if (ptrOrd._price == 0)
                        {
                            if (accType == eAccountType.ACC_TYPE_FOLLOWER_DEMO)
                            {
                                ptrOrd._price = m_masterUserSetting._deposit_followerDemo;
                            }
                            else if (accType == eAccountType.ACC_TYPE_SSP)
                            {
                                ptrOrd._price = m_masterUserSetting._deposit_SSP;
                            }
                            else if (accType == eAccountType.ACC_TYPE_SM)
                            {
                                ptrOrd._price = m_masterUserSetting._deposit_SM;
                            }
                        }

                        Demo.insertMT4Request(ptrMT4Req4);
                    }
                    else if (accType == eAccountType.ACC_TYPE_FOLLOWER_LIVE)
                    {
                        MT4Request ptrMT4Req4 = (MT4Request) new MT4Request();
                        //memset(ptrMT4Req4, 0, sizeof(MT4Request));
                        //ptrMT4Req4.newLoginOrOrderID = orderOrLogin; // Alexey
                        ptrMT4Req4.masterLogin = masterLogin;
                        ptrMT4Req4.reqType     = MT4REQ.MT4REQ_BALANCE;
                        //ptrMT4Req4.socketID = socketID;
                        ptrMT4Req4.status        = eOrderStatus.ORD_STAT_RECVD;
                        ptrMT4Req4.serverTransID = TransactionService.NewTransactionId();
                        ptrMT4Req4.ptrData       = new MT4OrderInfo();
                        //memset(ptrMT4Req4.ptrData, 0, sizeof(MT4OrderInfo));
                        MT4OrderInfo ptrOrd = (MT4OrderInfo)ptrMT4Req4.ptrData;
                        ptrOrd._accountType    = accType;
                        ptrOrd._masterLogin    = masterLogin;
                        ptrOrd._mt4Login       = mt4Login;
                        ptrOrd._mt4ServerIndex = serverIndex;
                        ptrOrd._orderTransMode = eMT4OrderTransMode.ORD_TRANS_CLOSE;
                        ptrOrd._orderType      = eMT4OrderType.ORD_TYPE_BALANCE;
                        ptrOrd._price          = request.deposit;
                        if (ptrOrd._price == 0)
                        {
                            ptrOrd._price = m_masterUserSetting._deposit_followerLive;
                        }
                        Live.insertMT4Request(ptrMT4Req4);
                    }

                    var ptrResp = new MT4AccountResponse(); //MT_MT4AccountResponse_ID
                    CppHelper.memcpy(ref ptrResp._account, acc);
                    _connectionMgr.SentDataUsingLoginID(ptrResp, MessageTypeID.MT_MT4AccountResponse_ID, masterLogin);
                }
                else if (trans_status == eOrderStatus.ORD_STAT_PROCESSING)
                {
                    // Claudia: it's normal that orderOrLogin parameter is 0, because MT4 is still processing the request
                    Debug.Assert(masterLogin > 0);
                    m_ptrLogger.LogInfo("PROCESSING : MT4 Account %d master Login %d AccountType: %d", mt4Login, masterLogin, accType);
                    var ptrResp = new SocialOrderResponse(); //MT_SocialOrderResponse_ID
                    ptrResp._serverTransID = server_trans_id;
                    ptrResp._requestMode   = reqMode;
                    ptrResp._retCode       = (eReturnCode)trans_status;
                    //SentDataUsingSocketID(ptrResp, MT_SocialOrderResponse_ID, socketID);
                    _connectionMgr.SentDataUsingLoginID(ptrResp, MessageTypeID.MT_SocialOrderResponse_ID, masterLogin);
                }
                else if (trans_status == eOrderStatus.ORD_STAT_REJECTED)
                {
                    // Claudia: it's normal that orderOrLogin parameter is 0, because MT4 is still processing the request
                    Debug.Assert(masterLogin > 0);
                    m_ptrLogger.LogInfo("REJECTED : MT4 Account %d master Login %d AccountType: %d", mt4Login, masterLogin, accType);
                    if (accType == eAccountType.ACC_TYPE_SSP)
                    {
                        await _signalService.UpdateSignalMT4Login(server_trans_id, mt4Login, cancellationToken, isRemove : true);

                        await _signalService.UpdateSSPSignalMT4Login(server_trans_id, mt4Login, cancellationToken, isRemove : true);
                    }
                    if (accType == eAccountType.ACC_TYPE_SM)
                    {
                        await _signalService.UpdateSignalMT4Login(server_trans_id, mt4Login, cancellationToken, isRemove : true);

                        await _signalService.UpdateSMSignalMT4Login(server_trans_id, mt4Login, cancellationToken, isRemove : true);
                    }
                    var ptrResp = new SocialOrderResponse(); //MT_SocialOrderResponse_ID
                    ptrResp._serverTransID = server_trans_id;
                    ptrResp._requestMode   = reqMode;
                    ptrResp._retCode       = (eReturnCode)trans_status;
                    ptrResp._mt4errorcode  = errorcode;
                    CppHelper.strcpy(out ptrResp._mt4errormessage, errormessage);
                    //SentDataUsingSocketID(ptrResp, MT_SocialOrderResponse_ID, socketID);
                    _connectionMgr.SentDataUsingLoginID(ptrResp, MessageTypeID.MT_SocialOrderResponse_ID, masterLogin);
                }
                //insertDBTransmitData(masterLogin, FDMT_MasterUser_ID);
                //insertDBTransmitData(masterLogin, FDMT_MT4Account_ID);
                //insertDBTransmitData(masterLogin, FDMT_SSPSignal_ID);
                //insertDBTransmitData(masterLogin, FDMT_SSPSignal_ID);
            }
            else
            {
                var orderId = request.OrderInfo?._orderID ?? 0;

                if (trans_status == eOrderStatus.ORD_STAT_PROCESSING)
                {
                    // Alexey: it's normal that orderOrLogin parameter is 0, because MT4 is still processing the request
                    Debug.Assert(masterLogin > 0 && server_trans_id != Guid.Empty);
                    m_ptrLogger.LogInfo($"PROCESSING : Order {orderId}, master Login {masterLogin}, UID: {server_trans_id}");
                    var ptrResp = new SocialOrderResponse(); //MT_SocialOrderResponse_ID
                    ptrResp._serverTransID = server_trans_id;
                    ptrResp._requestMode   = reqMode;
                    ptrResp._retCode       = (eReturnCode)trans_status;
                    //SentDataUsingSocketID(ptrResp, MT_SocialOrderResponse_ID, socketID);
                    _connectionMgr.SentDataUsingLoginID(ptrResp, MessageTypeID.MT_SocialOrderResponse_ID, masterLogin);
                }
                else if (trans_status == eOrderStatus.ORD_STAT_REJECTED)
                {
                    // Alexey: it's normal that orderOrLogin parameter is 0, because MT4 is still processing the request
                    Debug.Assert(masterLogin > 0 && server_trans_id != Guid.Empty);
                    m_ptrLogger.LogInfo($"REJECTED : Order {orderId}, master Login {masterLogin}, UID: {server_trans_id}");
                    var ptrResp = new SocialOrderResponse(); //MT_SocialOrderResponse_ID
                    ptrResp._serverTransID = server_trans_id;
                    ptrResp._requestMode   = reqMode;
                    ptrResp._retCode       = (eReturnCode)trans_status;
                    ptrResp._mt4errorcode  = errorcode;
                    CppHelper.strcpy(out ptrResp._mt4errormessage, errormessage);
                    //SentDataUsingSocketID(ptrResp, MT_SocialOrderResponse_ID, socketID);
                    _connectionMgr.SentDataUsingLoginID(ptrResp, MessageTypeID.MT_SocialOrderResponse_ID, masterLogin);
                }
                else if (trans_status == eOrderStatus.ORD_STAT_EXECUTED)
                {
                    if (reqMode == MT4REQMODE.OPEN_TRADE)
                    {
                        Debug.Assert(server_trans_id != Guid.Empty && orderId > 0 && request.Order != null && request.Order.OrderId == 0);
                        request.Order.OrderId = orderId;
                        await _orderService.InsertAsync(request.Order, cancellationToken);

                        //    updateTransLinking(server_trans_id, orderOrLogin);
                    }
                    //if (reqMode == MT4REQMODE.CLOSE_TRADE || reqMode == MT4REQMODE.DELETE_TRADE)
                    //{
                    //    removeTransLinking(server_trans_id);
                    //}
                    Debug.Assert(masterLogin > 0 && server_trans_id != Guid.Empty);
                    m_ptrLogger.LogInfo($"EXECUTED : Order {orderId}, master Login {masterLogin}, UID: {server_trans_id}");
                    var ptrResp = new SocialOrderResponse(); //MT_SocialOrderResponse_ID
                    ptrResp._serverTransID = server_trans_id;
                    ptrResp._requestMode   = reqMode;
                    ptrResp._retCode       = (eReturnCode)trans_status;
                    //SentDataUsingSocketID(ptrResp, MT_SocialOrderResponse_ID, socketID);
                    _connectionMgr.SentDataUsingLoginID(ptrResp, MessageTypeID.MT_SocialOrderResponse_ID, masterLogin);
                }
            }
        }
Example #12
0
 public BoolResult ChangeOrderStatus(string orderId, eOrderStatus staus)
 {
     return(Update(orderId, GetUpdateStatusDefinition(staus)));
 }
Example #13
0
        protected UpdateDefinition <Order> GetUpdateStatusDefinition(eOrderStatus staus)
        {
            var update = Builders <Order> .Update;

            return(update.Set(x => x.OrderStatus, staus));
        }
Example #14
0
 public void SetOrderStatus(int orderId, eOrderStatus status)
 {
     using (MySqlOrdersDb Db = new MySqlOrdersDb(ConnectionString))
     {
         var ord = GetOrderById(orderId);
         if (ord != null)
         {
             Db.Orders.Attach(ord);
             ord.Status = status;
             if (status == eOrderStatus.DELIVERED)
             {
                 ord.DeliveredAt = DateTime.Now;
                 Db.Entry(ord).Property("DeliveredAt").IsModified = true;
             }
             Db.Entry(ord).Property("Status").IsModified = true;
             Db.SaveChanges();
         }
     }
 }
Example #15
0
        public async Task <List <OrderEntity> > GetAllByStats(eOrderStatus status)
        {
            var filter = Builders <OrderEntity> .Filter.Eq(x => x.Status, status);

            return(await Entities.Find(filter).ToListAsync());
        }
Example #16
0
        public int GetOrderCount(eOrderStatus Status = eOrderStatus.any,
            eFulfillmentStatus FulfillmentStatus = eFulfillmentStatus.any,
            eOrderFinancialStatus FinancialStatus = eOrderFinancialStatus.any)
        {
            int count = 0;
            _endPointURI = "admin/orders/count.json";
            RestClient c = new RestClient(_baseAddress);
            c.Authenticator = new HttpBasicAuthenticator(_apikey, _password);
            RestRequest req = new RestRequest(_endPointURI);

            if (Status != eOrderStatus.any)
                req.AddQueryParameter("status", Status.ToString());

            if (FulfillmentStatus != eFulfillmentStatus.any)
                req.AddQueryParameter("fulfillment_status", FulfillmentStatus.ToString());

            if (FinancialStatus != eOrderFinancialStatus.any)
                req.AddQueryParameter("financial_status", FinancialStatus.ToString());

            IRestResponse response = c.Execute(req);
            RawData += response.Content;

            if (response.StatusCode != HttpStatusCode.OK)
            {
                SetHTTPErrMsg(response);
            }
            else
            {
                JsonObject json = (JsonObject)SimpleJson.DeserializeObject(response.Content);
                count = Convert.ToInt32(json["count"]);
            }
            return count;
        }
        public async Task <ActionResult <IEnumerable <OrderResource> > > GetAllByStats(eOrderStatus ordered)
        {
            var entities = await(Repository as IOrdersRepository).GetAllByStats(ordered);

            return(MapMany(entities));
        }
Example #18
0
 void cboOrderStatus_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)
 {
     // filter the list of orders by status
     this._orderStatus = (eOrderStatus)Enum.Parse(typeof(eOrderStatus), e.Text);
     this.grdOrders.Rebind();
 }
Example #19
0
        private void grdOrders_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            this.grdOrders.DataSource = null;

            Facade.IOrder facOrder = new Facade.Order();

            DateTime dateFrom = dteOrderFilterDateFrom.SelectedDate.Value;
            DateTime dateTo   = dteOrderFilterDateTo.SelectedDate.Value;

            this._orderStatus = (eOrderStatus)Enum.Parse(typeof(eOrderStatus), cboOrderStatus.SelectedValue);

            bool IsCollectionDate = rbCollection.Checked;

            dateFrom = dateFrom.AddHours(-dateFrom.Hour).AddMinutes(-dateFrom.Minute).AddSeconds(-dateFrom.Second);
            dateTo   = dateTo.AddHours(-dateTo.Hour).AddMinutes(-dateTo.Minute).AddSeconds(-dateTo.Second);

            DataSet orderData = facOrder.GetOrdersForClientAndStatusByDates(_clientIdentityId, _orderStatus, IsCollectionDate, dateFrom, dateTo);

            orderData.Tables[0].Columns.Add(new DataColumn("DisplayRate"));

            GridColumn deliveringResourceColumn = this.grdOrders.Columns.FindByUniqueName("DeliveringResource");

            Facade.IAllocation facAllocation = new Facade.Allocation();
            if (facAllocation.IsAllocationEnabled)
            {
                if (deliveringResourceColumn != null)
                {
                    deliveringResourceColumn.Visible = true;
                }
            }
            else
            if (deliveringResourceColumn != null)
            {
                deliveringResourceColumn.Visible = false;
            }

            // Iterate over the dataset to set the rates, specifically for grouped orders.
            DataRow previousRow          = null;
            string  previousOrderGroupId = string.Empty;

            foreach (DataRow row in orderData.Tables[0].Rows)
            {
                string orderGroupId = string.Empty;
                if (previousRow != null)
                {
                    if (row["OrderGroupId"].ToString() != "")
                    {
                        orderGroupId = row["OrderGroupId"].ToString();

                        // If the group is the same as the previous, blank the rate
                        if (previousOrderGroupId == orderGroupId)
                        {
                            row["DisplayRate"] = "";
                        }
                        else
                        {
                            // otherwise, show the group rate
                            row["DisplayRate"] = row["OrderGroupForeignRate"];
                        }

                        // Set the previous order group id for the next iteration
                        previousOrderGroupId = orderGroupId;
                    }
                    else
                    {
                        previousOrderGroupId = string.Empty;
                        row["DisplayRate"]   = row["ForeignRate"];
                    }
                }
                else
                {
                    row["DisplayRate"] = row["ForeignRate"];

                    if (row["OrderGroupId"].ToString() != "")
                    {
                        previousOrderGroupId = row["OrderGroupId"].ToString();
                    }
                    else
                    {
                        previousOrderGroupId = string.Empty;
                    }
                }

                previousRow = row;
            }

            this.grdOrders.DataSource = orderData;
        }
Example #20
0
        void grdOrders_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item.ItemType == GridItemType.AlternatingItem || e.Item.ItemType == GridItemType.Item)
            {
                Telerik.Web.UI.GridItem item = e.Item as Telerik.Web.UI.GridItem;

                int          invoiceId          = Convert.ToInt32(((System.Data.DataRowView)e.Item.DataItem)["InvoiceId"].ToString());
                string       invoicePdfLocation = ((System.Data.DataRowView)e.Item.DataItem)["InvoicePdfLocation"].ToString();
                int          orderId            = Convert.ToInt32(((System.Data.DataRowView)e.Item.DataItem)["OrderId"].ToString());
                bool         isPalletNetwork    = (bool)(((System.Data.DataRowView)e.Item.DataItem)["IsPalletNetwork"]);
                bool         isExported         = !string.IsNullOrEmpty((((System.Data.DataRowView)e.Item.DataItem)["IntegrationReference"]).ToString());
                eOrderStatus orderStatus        = (eOrderStatus)(Convert.ToInt32(((System.Data.DataRowView)e.Item.DataItem)["OrderStatusId"].ToString()));

                string collectionPointDescription = ((System.Data.DataRowView)e.Item.DataItem)["CollectionPointDescription"].ToString();
                string deliveryPointDescription   = ((System.Data.DataRowView)e.Item.DataItem)["DeliveryPointDescription"].ToString();

                Label lblCollectFromPoint = (Label)item.FindControl("lblCollectFromPoint");
                lblCollectFromPoint.Text = collectionPointDescription;

                Label lblDeliverToPoint = (Label)item.FindControl("lblDeliverToPoint");
                lblDeliverToPoint.Text = deliveryPointDescription;

                int orderLcid = Convert.ToInt32(((System.Data.DataRowView)e.Item.DataItem)["OrderLcid"].ToString());

                int orderGroupLcid = 0;
                if (((System.Data.DataRowView)e.Item.DataItem)["OrderGroupLcid"].ToString() != string.Empty)
                {
                    orderGroupLcid = Convert.ToInt32(((System.Data.DataRowView)e.Item.DataItem)["OrderGroupLcid"].ToString());
                }

                System.Globalization.CultureInfo culture = null;

                if (orderGroupLcid > 0)
                {
                    culture = new CultureInfo(orderGroupLcid);
                }
                else
                {
                    culture = new CultureInfo(orderLcid);
                }

                // Rate:: formatted for current order culture.
                Label lblRate = (Label)item.FindControl("lblRate");
                if (((System.Data.DataRowView)e.Item.DataItem)["DisplayRate"].ToString() != string.Empty)
                {
                    lblRate.Text = Convert.ToDecimal(((System.Data.DataRowView)e.Item.DataItem)["DisplayRate"]).ToString("C", culture);
                }
                else
                {
                    lblRate.Text = "&nbsp;";
                }

                // Pod link
                Facade.POD facPod = new Orchestrator.Facade.POD();
                Orchestrator.Entities.POD scannedPOD = facPod.GetForOrderID(orderId);
                HyperLink hypPod = (HyperLink)item.FindControl("hypPod");

                if (scannedPOD != null)
                {
                    hypPod.Visible     = true;
                    hypPod.Text        = string.Format("POD:{0}", scannedPOD.PODId);
                    hypPod.NavigateUrl = scannedPOD.ScannedFormPDF.Trim();
                    hypPod.Target      = "_blank";
                }
                else if (scannedPOD == null && (orderStatus == eOrderStatus.Delivered || orderStatus == eOrderStatus.Invoiced))
                {
                    hypPod.Visible     = false;
                    hypPod.Text        = "";
                    hypPod.NavigateUrl = "";
                }


                // Invoice link
                HyperLink hypInvoice = (HyperLink)e.Item.FindControl("hypInvoice");
                if (invoiceId <= 0)
                {
                    hypInvoice.Text        = "";
                    hypInvoice.NavigateUrl = "";
                }
                else
                {
                    hypInvoice.NavigateUrl = Orchestrator.Globals.Configuration.WebServer + invoicePdfLocation;
                    hypInvoice.Text        = string.Format("Invoice:{0}", invoiceId);
                    hypInvoice.Target      = "_blank";
                }

                // order id link
                HyperLink hypOrderId = (HyperLink)e.Item.FindControl("hypOrderId");
                hypOrderId.Text = orderId.ToString();

                // If the order is unapproved, take the client to the update order page
                // otherwise take the user to the client order profile screen.
                if (orderStatus == eOrderStatus.Pending || orderStatus == eOrderStatus.Awaiting_Approval)
                {
                    hypOrderId.NavigateUrl = string.Format("ClientManageOrder.aspx?Oid={0}", orderId);
                }
                else
                {
                    // show the order profile link.
                    hypOrderId.NavigateUrl = string.Format("javascript:openResizableDialogWithScrollbars('ClientOrderProfile.aspx?wiz=true&Oid={0}',560,700);", orderId);
                    hypOrderId.Target      = "";
                }

                //Order status
                Label  lblOrderStatus  = (Label)e.Item.FindControl("lblOrderStatus");
                string orderStatusText = string.Empty;
                switch (orderStatus)
                {
                case eOrderStatus.Pending:
                    orderStatusText = "Pending";
                    break;

                case eOrderStatus.Awaiting_Approval:
                    orderStatusText = "Unapproved";
                    break;

                case eOrderStatus.Approved:
                    orderStatusText = "Approved";
                    break;

                case eOrderStatus.Delivered:
                    orderStatusText = "Delivered";
                    break;

                case eOrderStatus.Invoiced:
                    orderStatusText = "Invoiced";
                    break;

                case eOrderStatus.Cancelled:
                    orderStatusText = "Cancelled";
                    break;

                case eOrderStatus.Rejected:
                    orderStatusText = "Rejected";
                    break;

                default:
                    break;
                }

                lblOrderStatus.Text = orderStatusText;

                if (Orchestrator.Globals.Configuration.PalletNetworkLabelID == eReportType.PalletNetworkLabel)
                {
                    if (isExported)
                    {
                        e.Item.BackColor = System.Drawing.Color.LightGreen;
                    }
                }
            }
        }
Example #21
0
        /// <summary>
        /// Get all orders
        /// </summary>
        /// <returns></returns>
        public List<SIOrder> GetOrders(eOrderStatus Status = eOrderStatus.any,
            eFulfillmentStatus FulfillmentStatus = eFulfillmentStatus.any,
            eOrderFinancialStatus FinancialStatus = eOrderFinancialStatus.any,
            int Page = 1)
        {
            List<SIOrder> allOrders = new List<SIOrder>();
            _endPointURI = "admin/orders.json";
            RestClient c = new RestClient(_baseAddress);
            c.Authenticator = new HttpBasicAuthenticator(_apikey, _password);
            RestRequest req = new RestRequest(_endPointURI);
            req.AddParameter("limit", 250);

            if (Page != 1)
                req.AddParameter("page", Page);

            if (Status != eOrderStatus.any)
                req.AddQueryParameter("status", Status.ToString());

            if (FulfillmentStatus != eFulfillmentStatus.any)
                req.AddQueryParameter("fulfillment_status", FulfillmentStatus.ToString());

            if (FinancialStatus != eOrderFinancialStatus.any)
                req.AddQueryParameter("financial_status", FinancialStatus.ToString());

            IRestResponse response = c.Execute(req);
            RawData += response.Content;

            if (response.StatusCode != HttpStatusCode.OK)
            {
                SetHTTPErrMsg(response);
            }
            else
            {
                JsonObject json = (JsonObject)SimpleJson.DeserializeObject(response.Content);
                JsonArray orders = (JsonArray)json["orders"];
                //allOrders = SimpleJson.DeserializeObject<List<SIOrder>>(orders.ToString());
                foreach (JsonObject jo in orders)
                {
                    SIOrder o = SimpleJson.DeserializeObject<SIOrder>(jo.ToString());
                    allOrders.Add(o);
                }
            }

            return allOrders;
        }