Пример #1
0
        //Orders and Items
        public SystemOperationResult OrdersUpdateItemQuantity(long itemId, int quantity, Order o)
        {
            SystemOperationResult result = new SystemOperationResult();

            result.Success = true;

            LineItem item = o.Items.Where(y => y.Id == itemId).SingleOrDefault();

            if (item == null)
            {
                result.Success = false;
                result.Message = "Could not locate that item";
                return(result);
            }

            if (item.Quantity == quantity)
            {
                result.Success = true;
                return(result);
            }

            if (quantity == 0)
            {
                result.Success = o.Items.Remove(item);
            }

            item.Quantity  = quantity;
            result.Success = true;
            return(result);
        }
Пример #2
0
        private SystemOperationResult ModifyQuantities(Order o)
        {
            SystemOperationResult result = new SystemOperationResult(true, "");

            for (int i = 0; i < this.ItemsGridView.Rows.Count - 1; i++)
            {
                GridViewRow currentRow = ItemsGridView.Rows[i];

                if (currentRow.RowType == DataControlRowType.DataRow)
                {
                    long lineitemId = (long)ItemsGridView.DataKeys[currentRow.RowIndex].Value;
                    var  li         = o.Items.Where(y => y.Id == lineitemId).FirstOrDefault();
                    if (li != null)
                    {
                        TextBox qty = (TextBox)currentRow.FindControl("QtyField");
                        if (qty != null)
                        {
                            string tempQty   = qty.Text.Trim();
                            int    actualQty = li.Quantity;
                            int.TryParse(tempQty, out actualQty);
                            li.Quantity = actualQty;
                        }
                    }
                }
            }
            return(result);
        }
Пример #3
0
        private void RunOrderEditedWorkflow(SystemOperationResult saveResult)
        {
            MerchantTribe.Commerce.BusinessRules.OrderTaskContext c = new MerchantTribe.Commerce.BusinessRules.OrderTaskContext(MTApp);
            c.Order  = MTApp.OrderServices.Orders.FindForCurrentStore(this.BvinField.Value);
            c.UserId = c.Order.UserID;

            if (!MerchantTribe.Commerce.BusinessRules.Workflow.RunByName(c, MerchantTribe.Commerce.BusinessRules.WorkflowNames.OrderEdited))
            {
                foreach (MerchantTribe.Commerce.BusinessRules.WorkflowMessage msg in c.Errors)
                {
                    EventLog.LogEvent("Order Edited Workflow", msg.Description, EventLogSeverity.Warning);
                }
                if (!String.IsNullOrEmpty(saveResult.Message))
                {
                    this.MessageBox1.ShowError(saveResult.Message + " Error Occurred. Please see event log.");
                }
                else
                {
                    this.MessageBox1.ShowError("Error Occurred. Please see event log.");
                }
            }
            else
            {
                if (!String.IsNullOrEmpty(saveResult.Message))
                {
                    this.MessageBox1.ShowError(saveResult.Message);
                }
                else
                {
                    this.MessageBox1.ShowOk("Changes Saved");
                }
            }
        }
Пример #4
0
        protected void btnSaveChanges_Click(object sender, System.Web.UI.ImageClickEventArgs e)
        {
            this.MessageBox1.ClearMessage();
            SystemOperationResult saveResult = SaveOrder();

            if (saveResult.Success)
            {
                RunOrderEditedWorkflow(saveResult);
            }
            else
            {
                this.MessageBox1.ShowError(saveResult.Message);
            }
            LoadOrder();
        }
Пример #5
0
        private bool CheckForStockOnItems(CartViewModel model)
        {
            Order Basket = model.CurrentOrder;
            SystemOperationResult result = MTApp.CheckForStockOnItems(Basket);

            if (result.Success)
            {
                return(true);
            }
            else
            {
                this.FlashFailure(result.Message);
                return(false);
            }
        }
Пример #6
0
        private SystemOperationResult SaveOrder()
        {
            SystemOperationResult result = new SystemOperationResult(false, "");

            Order o = MTApp.OrderServices.Orders.FindForCurrentStore(this.BvinField.Value);

            if (o == null)
            {
                result.Success = false;
                result.Message = "Unable to reload order.";
                return(result);
            }

            o.UserID       = this.UserIdField.Value;
            o.UserEmail    = this.UserPicker1.UserName;
            o.Instructions = this.InstructionsField.Text.Trim();

            o.BillingAddress  = this.BillingAddressEditor.GetAsAddress();
            o.ShippingAddress = this.ShippingAddressEditor.GetAsAddress();

            SystemOperationResult modifyResult = ModifyQuantities(o);

            if (!modifyResult.Success)
            {
                result.Message = modifyResult.Message;
            }

            // Save Shipping Selection
            string shippingRateKey = Request.Form["shippingrate"];

            MTApp.OrderServices.OrdersRequestShippingMethodByUniqueKey(shippingRateKey, o);

            // Shipping Override
            if (this.ShippingOverride.Text.Trim().Length < 1)
            {
                o.TotalShippingBeforeDiscountsOverride = -1m;
            }
            else
            {
                decimal shipOverride = o.TotalShippingBeforeDiscountsOverride;
                decimal.TryParse(this.ShippingOverride.Text, System.Globalization.NumberStyles.Currency, System.Threading.Thread.CurrentThread.CurrentUICulture, out shipOverride);
                o.TotalShippingBeforeDiscountsOverride = shipOverride;
            }

            result.Success = MTApp.CalculateOrderAndSave(o);

            return(result);
        }
Пример #7
0
        public SystemOperationResult ValidateUser(string email, string password)
        {
            var result = new SystemOperationResult();

            var u = Customers.FindByEmail(email).FirstOrDefault();

            if (u != null)
            {
                if (DoPasswordsMatchForCustomer(password, u))
                {
                    CustomerCheckLock(u);
                    if (u.Locked == false)
                    {
                        // Reset Failed Login Count
                        if (u.FailedLoginCount > 0)
                        {
                            u.FailedLoginCount = 0;
                            UpdateCustomer(u);
                        }
                        result.Success = true;
                    }
                    else
                    {
                        result.Success = false;
                        result.Message = GlobalLocalization.GetString("AccountLocked");
                    }
                }
                else
                {
                    result.Message      = GlobalLocalization.GetString("LoginIncorrect");
                    u.FailedLoginCount += 1;
                    UpdateCustomer(u);
                    CustomerCheckLock(u);
                }
            }
            else
            {
                result.Message = GlobalLocalization.GetString("LoginIncorrect");
            }

            if (result.Success == false)
            {
                EventLog.LogEvent("Membership", "Login Failed for User: " + email, EventLogSeverity.Information);
            }

            return(result);
        }
Пример #8
0
        public SystemOperationResult ValidateUser(string email, string password)
        {
            SystemOperationResult result = new SystemOperationResult();

            CustomerAccount u = Customers.FindByEmail(email);

            if (u != null)
            {
                if (DoPasswordsMatchForCustomer(password, u) == true)
                {
                    CustomerCheckLock(u);
                    if (u.Locked == false)
                    {
                        // Reset Failed Login Count
                        if (u.FailedLoginCount > 0)
                        {
                            u.FailedLoginCount = 0;
                            UpdateCustomer(u);
                        }
                        result.Success = true;
                    }
                    else
                    {
                        result.Success = false;
                        result.Message = Content.SiteTerms.GetTerm(Content.SiteTermIds.AccountLocked);
                    }
                }
                else
                {
                    result.Message      = Content.SiteTerms.GetTerm(Content.SiteTermIds.LoginIncorrect);
                    u.FailedLoginCount += 1;
                    UpdateCustomer(u);
                    CustomerCheckLock(u);
                }
            }
            else
            {
                result.Message = Content.SiteTerms.GetTerm(Content.SiteTermIds.LoginIncorrect);
            }

            if (result.Success == false)
            {
                EventLog.LogEvent("Membership", "Login Failed for User: " + email, EventLogSeverity.Information);
            }

            return(result);
        }
Пример #9
0
        protected void btnUpdateQuantities_Click(object sender, System.Web.UI.ImageClickEventArgs e)
        {
            this.MessageBox1.ClearMessage();
            for (int i = 0; i <= this.ItemsGridView.Rows.Count - 1; i++)
            {
                if (ItemsGridView.Rows[i].RowType == DataControlRowType.DataRow)
                {
                    TextBox qty = (TextBox)ItemsGridView.Rows[i].FindControl("QtyField");
                    if (qty != null)
                    {
                        long itemId = (long)ItemsGridView.DataKeys[ItemsGridView.Rows[i].RowIndex].Value;

                        LineItem li = o.GetLineItem(itemId);
                        if (li == null)
                        {
                            li = new LineItem();
                        }

                        if (ValidateInventoryForLineItem(li.ProductId, qty.Text.Trim()))
                        {
                            SystemOperationResult val = MTApp.OrderServices.OrdersUpdateItemQuantity(itemId, int.Parse(qty.Text.Trim()), o);
                            if (val.Message != string.Empty)
                            {
                                MessageBox1.ShowError(val.Message);
                            }
                        }
                    }

                    //TextBox price = (TextBox)ItemsGridView.Rows[i].FindControl("PriceField");
                    //if (price != null)
                    //{
                    //    decimal temp;
                    //    if (decimal.TryParse(price.Text, System.Globalization.NumberStyles.Currency, System.Threading.Thread.CurrentThread.CurrentUICulture, out temp))
                    //    {
                    //        string bvin = (string)ItemsGridView.DataKeys[ItemsGridView.Rows[i].RowIndex].Value;
                    //        string val = MTApp.OrderServices o.SetItemAdminPrice(bvin, decimal.Parse(price.Text, System.Globalization.NumberStyles.Currency)).Message;
                    //        if (val != string.Empty)
                    //        {
                    //            MessageBox1.ShowError(val);
                    //        }
                    //    }
                    //}
                }
            }
            LoadOrder();
            ClearShipping();
        }
Пример #10
0
        public bool LoginCustomer(string email, string password, ref string errorMessage, System.Web.HttpContextBase context, ref string userId, MerchantTribeApplication app)
        {
            bool result = false;

            try
            {
                SystemOperationResult op = ValidateUser(email, password);
                if (op.Success == false)
                {
                    errorMessage = op.Message;
                    return(false);
                }

                CustomerAccount u = Customers.FindByEmail(email);
                if (u == null)
                {
                    errorMessage = "Please check your email address and password and try again.";
                    return(false);
                }

                userId = u.Bvin;

                Cookies.SetCookieString(WebAppSettings.CookieNameAuthenticationTokenCustomer(app.CurrentStore.Id),
                                        u.Bvin,
                                        context, false, new EventLog());
                result = true;
            }
            catch (Exception ex)
            {
                result = false;
                EventLog.LogEvent(ex);
                errorMessage = "Unknown login error. Contact administrator for assistance.";
            }

            return(result);
        }
Пример #11
0
        public SystemOperationResult ValidateUser(string email, string password)
        {
            SystemOperationResult result = new SystemOperationResult();

            CustomerAccount u = Customers.FindByEmail(email);
            if (u != null)
            {
                if (DoPasswordsMatchForCustomer(password, u) == true)
                {
                    CustomerCheckLock(u);
                    if (u.Locked == false)
                    {
                        // Reset Failed Login Count
                        if (u.FailedLoginCount > 0)
                        {
                            u.FailedLoginCount = 0;
                            UpdateCustomer(u);
                        }
                        result.Success = true;
                    }
                    else
                    {
                        result.Success = false;
                        result.Message = Content.SiteTerms.GetTerm(Content.SiteTermIds.AccountLocked);
                    }
                }
                else
                {
                    result.Message = Content.SiteTerms.GetTerm(Content.SiteTermIds.LoginIncorrect);
                    u.FailedLoginCount += 1;
                    UpdateCustomer(u);
                    CustomerCheckLock(u);
                }
            }
            else
            {
                result.Message = Content.SiteTerms.GetTerm(Content.SiteTermIds.LoginIncorrect);
            }

            if (result.Success == false)
            {
                EventLog.LogEvent("Membership", "Login Failed for User: " + email, EventLogSeverity.Information);
            }

            return result;
        }
Пример #12
0
        //Orders and Items                           
        public SystemOperationResult OrdersUpdateItemQuantity(long itemId, int quantity, Order o)
        {
            SystemOperationResult result = new SystemOperationResult();
            result.Success = true;

            LineItem item = o.Items.Where(y => y.Id == itemId).SingleOrDefault();
            if (item == null)
            {
                result.Success = false;
                result.Message = "Could not locate that item";
                return result;
            }

            if (item.Quantity == quantity)
            {
                result.Success = true;
                return result;
            }

            if (quantity == 0)
            {
                result.Success = o.Items.Remove(item);
            }

            item.Quantity = quantity;
            result.Success = true; 
            return result;
        }