public virtual ActionResult StatusResponse() { try { var viewModel = ConstructPaymentResponseModel(); var log = ConstructLogPayment(viewModel); var salesOrderID = int.Parse(log.RefNo); var pendingStatusID = Util.GetStatusID(Status.Pending.ToString()); using (var context = new TTTEntities()) { context.logpayments.Add(log); context.SaveChanges(); var salesOrder = context.trnsalesorders .Include(a => a.refstatu) .SingleOrDefault(a => a.ID == salesOrderID); if (salesOrder == null) throw new ApplicationException("Order not found."); if (salesOrder.refstatu.Name != Status.Open.ToString()) throw new ApplicationException("Invalid order status."); if (log.Status == Settings.Default.iPay88_Status_Success) { salesOrder.StatusID = pendingStatusID; salesOrder.PaymentGatewayTransID = log.TransId; salesOrder.UpdateDT = DateTime.Now; context.SaveChanges(); var soItems = context.lnksalesorders .Where(a => a.Active && a.SalesOrderID == salesOrderID && a.ModelSizeID.HasValue) .ToList(); foreach (var item in soItems) { var modelSize = context.lnkmodelsizes.Single(a => a.ID == item.ModelSizeID.Value); modelSize.Quantity -= item.Quantity; } context.SaveChanges(); return RedirectToAction(MVC.Checkout.Success(salesOrderID)); } else { var errMsg = string.Format("Payment failed for Sales Order ID:{0}. Error Description: {1}", salesOrderID, log.ErrDesc); throw new ApplicationException(errMsg); } } } catch (Exception ex) { LogException(ex); return RedirectException(ex); } }
public virtual ActionResult Index(ColourPriorityViewModel viewModel, FormCollection collection) { using (var context = new TTTEntities()) { var Colours = context.refcolours.Where(a => a.Active).ToList(); //var ColourPriorities = context.lnkcolourpriorities.Where(a => a.ColourID).SingleOrDefault(); foreach (var Colour in Colours) { var ColourPriority = context.lnkcolourpriorities.Where(a => a.ColourID == Colour.ID).SingleOrDefault(); if (collection[string.Format("txt_{0}", Colour.ID)].ToString() != "") { if (ColourPriority != null) ColourPriority.Sequence = Convert.ToInt16(collection[string.Format("txt_{0}", Colour.ID)]); else context.lnkcolourpriorities.Add(new lnkcolourpriority() { Active = true, CreateDT = DateTime.Now, ColourID = Colour.ID, Sequence = Convert.ToInt16(collection[string.Format("txt_{0}", Colour.ID)]) }); } else { if (ColourPriority != null) context.lnkcolourpriorities.Remove(ColourPriority); } } context.SaveChanges(); } return RedirectToAction("Index"); }
public virtual ActionResult Edit(MyAccountEditViewModel viewModel) { if (!ModelState.IsValid) return View(viewModel); using (var trans = new TransactionScope()) { using (var context = new TTTEntities()) { var access = context.tblaccesses.Single(a => a.ID == viewModel.AccessID); access.Email = viewModel.Email; //TODO: Validation on existing email if (!string.IsNullOrEmpty(viewModel.Password) && !viewModel.IsFBLogin) access.Password = Util.GetMD5Hash(viewModel.Password); access.FirstName = viewModel.FirstName; access.LastName = viewModel.LastName; access.BirthDateDay = viewModel.BirthDateDay; access.BirthDateMonth = viewModel.BirthDateMonth; access.BirthDateYear = viewModel.BirthDateYear; access.Gender = viewModel.Gender.HasValue ? viewModel.Gender.Value.ToString() : null; access.Phone = viewModel.Phone; context.SaveChanges(); Util.SessionAccess = access; EditAddresses(viewModel, context); context.SaveChanges(); } trans.Complete(); } return RedirectToAction(MVC.MyAccount.Index()); }
public virtual ActionResult Details(ModelDetailsViewModel viewModel, FormCollection collection) { try { if (collection["submit"].ToString() == "+ ADD TO BAG") { ConstructShoppingBagCookie(); #region Add to Cart var salesOrder = new trnsalesorder(); using (var context = new TTTEntities()) { var query = from modelSize in context.lnkmodelsizes join model in context.refmodels on modelSize.ModelID equals model.ID select new { ModelSizeID = modelSize.ID, Model = model }; var modelDetails = query.Where(a => a.ModelSizeID == viewModel.ModelSizeID).Single(); var discountPrice = modelDetails.Model.DiscountPrice.HasValue ? modelDetails.Model.DiscountPrice.Value : 0; var modelPrice = discountPrice != 0 ? modelDetails.Model.DiscountPrice.Value : modelDetails.Model.Price; var customerEmail = Util.SessionAccess == null ? "" : Util.SessionAccess.Email; ; if (!string.IsNullOrEmpty(customerEmail)) // login customer { var openStatusID = Util.GetStatusID(Status.Open.ToString()); salesOrder = context.trnsalesorders.Where(a => a.Email == customerEmail && a.StatusID == openStatusID).SingleOrDefault(); using (var trans = new TransactionScope()) { if (salesOrder == null) { salesOrder = context.trnsalesorders.Add(new trnsalesorder() { StatusID = openStatusID, Email = customerEmail, SubTotal = 0, GrandTotal = modelPrice, CreateDT = DateTime.Now }); context.SaveChanges(); AddSalesOrderItem(salesOrder.ID, viewModel.ModelSizeID, viewModel.SKU, modelPrice, context); } else { // update sales order grand total salesOrder.GrandTotal += modelPrice; var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == salesOrder.ID && a.ModelSizeID == viewModel.ModelSizeID).SingleOrDefault(); if (soItem == null) { salesOrder.UpdateDT = DateTime.Now; AddSalesOrderItem(salesOrder.ID, viewModel.ModelSizeID, viewModel.SKU, modelPrice, context); } else { soItem.Active = true; soItem.UpdateDT = DateTime.Now; } } context.SaveChanges(); trans.Complete(); } } else { ConstructShoppingBagCookie(); var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == null && a.ModelSizeID == viewModel.ModelSizeID && a.CookieID == cookieID).SingleOrDefault(); if (soItem == null) { AddSalesOrderItem(null, viewModel.ModelSizeID, viewModel.SKU, modelPrice, context); } else { soItem.Active = true; soItem.UpdateDT = DateTime.Now; } context.SaveChanges(); } } #endregion } else if (collection["submit"].ToString() == "+ ADD TO WISH LIST") { #region Add to Wishlist if (!Request.IsAuthenticated) { return RedirectToAction(MVC.SignIn.Index(Url.Action("Details", new { modelID = viewModel.ModelID, colourDescID = viewModel.ColourDescID }))); } AddToWishList(viewModel); #endregion } } catch (Exception ex) { throw; } return RedirectToAction("Details", new { modelID = viewModel.ModelID, colourDescID = viewModel.ColourDescID }); }
public virtual ActionResult Create(BrandModel viewModel) { ValidateIsAdmin(); using (var context = new TTTEntities()) { var newRecord = new refbrand { Active = viewModel.Active, Name = viewModel.Name, CreateDT = DateTime.Now, CategoryID = viewModel.CategoryID }; context.refbrands.Add(newRecord); context.SaveChanges(); } return RedirectToAction(MVC.Admin.Brand.Index()); }
public virtual ActionResult Update(OrderStatusViewModel viewModel) { var updateModel = viewModel.UpdateModel; using (var context = new TTTEntities()) { var salesOrder = context.trnsalesorders .Include(a => a.refstatu) .Single(a => a.ID == updateModel.SalesOrderID); var status = salesOrder.refstatu.Name; var processingStatus = Status.Processing.ToString(); var deliveryStatus = Status.Delivery.ToString(); var closedStatus = Status.Closed.ToString(); if (status == Status.Pending.ToString()) { salesOrder.StatusID = context.refstatus.Single(a => a.Name == processingStatus && a.Active).ID; } else if (status == processingStatus) { salesOrder.StatusID = context.refstatus.Single(a => a.Name == deliveryStatus && a.Active).ID; salesOrder.DeliveryDT = updateModel.DeliveryDT; } else if (status == deliveryStatus) { salesOrder.StatusID = context.refstatus.Single(a => a.Name == closedStatus && a.Active).ID; salesOrder.DeliveryDT = updateModel.DeliveryDT; } context.SaveChanges(); } return RedirectToAction(MVC.Admin.OrderStatus.Index()); }
public virtual ActionResult Edit(CategoryModel viewModel, HttpPostedFileBase file) { ValidateIsAdmin(); SaveImage(viewModel, file); using (var context = new TTTEntities()) { var record = context.refcategories.Single(a => a.ID == viewModel.ID); record.Name = viewModel.Name; record.Active = viewModel.Active; record.Type = viewModel.Type; if (!string.IsNullOrEmpty(viewModel.Image)) record.Image = viewModel.Image; context.SaveChanges(); } return RedirectToAction(MVC.Admin.Category.Index()); }
public virtual ActionResult Create(MaintainModelViewModel viewModel) { try { var modelColourDesc = new lnkmodelcolourdesc(); using (var trans = new TransactionScope()) { using (var context = new TTTEntities()) { var brandID = context.refbrands.Where(a => a.Name == viewModel.BrandName && a.CategoryID == viewModel.CategoryID).Single().ID; // Model details********************************************************************************** var model = new refmodel(); if (!string.IsNullOrEmpty(viewModel.NewModelName)) { model = new refmodel() { BrandID = brandID, Price = viewModel.Price, DiscountPrice = viewModel.DiscountPrice, CreateDT = DateTime.Now, Active = true, Gender = "Female", Name = viewModel.NewModelName, Description = "-" }; context.refmodels.Add(model); context.SaveChanges(); } else { model = context.refmodels.Where(a => a.ID == viewModel.ModelID).Single(); } //*************************************************************************************************** // Model colour description details****************************************************************** modelColourDesc = new lnkmodelcolourdesc() { ModelID = model.ID, ColourDescID = viewModel.ColourDescID, Active = viewModel.Active, SKU = viewModel.SKU, HeelHeight = viewModel.HeelHeight, Style = viewModel.Style, Description = viewModel.Description, LiningSock = viewModel.LiningSock, Sole = viewModel.Sole, Make = viewModel.Make, UpperMaterial = viewModel.UpperMaterial, HeelDesc = viewModel.HeelDesc, CreateDT = DateTime.Now }; context.lnkmodelcolourdescs.Add(modelColourDesc); context.SaveChanges(); // **************************************************************************************************** // Model lifestyle************************************************************ var selectedLifestyleIDs = viewModel.SelectedLifestyleIDText.Replace(",,", ",").Split(',').Select(int.Parse).ToList(); var selectedLifeStyles = context.reflifestyles.Where(a => selectedLifestyleIDs.Contains(a.ID)).ToList(); foreach (var lifeStyle in selectedLifeStyles) { context.lnkmodellifestyles.Add(new lnkmodellifestyle() { ColourDescID = viewModel.ColourDescID, ModelID = model.ID, Active = true, CreateDT = DateTime.Now, LifeStyleID = lifeStyle.ID, }); } //******************************************************************************** // Model trend******************************************************************************** var selectedTrendIDs = viewModel.SelectedTrendIDText.Replace(",,", ",").Split(',').Select(int.Parse).ToList(); var selectedTrends = context.reftrends.Where(a => selectedTrendIDs.Contains(a.ID)).ToList(); foreach (var trend in selectedTrends) { context.lnkmodeltrends.Add(new lnkmodeltrend() { ColourDescID = viewModel.ColourDescID, ModelID = model.ID, Active = true, CreateDT = DateTime.Now, TrendID = trend.ID, }); } // ************************************************************************************************ context.SaveChanges(); } trans.Complete(); } return RedirectToAction("Edit", new { id = modelColourDesc.ID }); } catch (Exception ex) { throw ex; } }
public virtual ActionResult Size(ModelSizeViewModel viewModel, FormCollection collection) { using (var trans = new TransactionScope()) { using (var context = new TTTEntities()) { var modelSizes = context.lnkmodelsizes .Where(a => a.ModelID == viewModel.ModelID && a.ColourDescID == viewModel.ColourDescID) .ToList(); var beginSize = Convert.ToInt16((Properties.Settings.Default.InitialSize.Split(',')[0]).Split('|')[0]); var sizeRange = Convert.ToInt16((Properties.Settings.Default.InitialSize.Split(',')[1])); for (var i = beginSize; i <= beginSize + sizeRange; i++) { var modelSize = modelSizes.Where(a => a.Size == i.ToString()).SingleOrDefault(); if (modelSize == null) { context.lnkmodelsizes.Add(new lnkmodelsize() { ModelID = viewModel.ModelID, ColourDescID = viewModel.ColourDescID, Active = true, CreateDT = DateTime.Now, Size = i.ToString(), Quantity = Convert.ToInt32(collection[string.Format("txt_{0}", i.ToString())]) }); } else { modelSize.Quantity = Convert.ToInt32(collection[string.Format("txt_{0}", modelSize.Size)]); modelSize.UpdateDT = DateTime.Now; } } context.SaveChanges(); } trans.Complete(); } return RedirectToAction("Edit", new { id = viewModel.ModelColourDescID }); }
public virtual ActionResult Remove(int soID) { decimal price = 0; using (var context = new TTTEntities()) { var soItem = context.lnksalesorders.Where(a => a.ID == soID).Single(); soItem.Active = false; soItem.UpdateDT = DateTime.Now; if (soItem.ModelSizeID.HasValue) // normal model { var query = from modelSize in context.lnkmodelsizes join model in context.refmodels on modelSize.ModelID equals model.ID select new { modelSize, model }; var soItemModelSize = query.Where(a => a.modelSize.ID == soItem.ModelSizeID).Single(); var discountPrice = soItemModelSize.model.DiscountPrice.HasValue ? soItemModelSize.model.DiscountPrice.Value : 0; price = discountPrice != 0 ? soItemModelSize.model.DiscountPrice.Value : soItemModelSize.model.Price; } else // customize model { var query = from customizeModelImage in context.lnkcustomizemodelimages join customizeModel in context.refcustomizemodels on customizeModelImage.CustomizeModelID equals customizeModel.ID select new { customizeModelImage, customizeModel }; price = query.Where(a => a.customizeModelImage.SKU == soItem.SKU).Single().customizeModel.Price; } if (!string.IsNullOrEmpty(Util.GetCustomerEmail())) { var so = context.trnsalesorders.Where(a => a.ID == soItem.SalesOrderID).SingleOrDefault(); if (so != null) { so.GrandTotal -= soItem.Quantity * price; so.UpdateDT = DateTime.Now; } } context.SaveChanges(); } return RedirectToAction("Index"); }
private void CreateUpdateSOItems() { SetShoppingBagCookie(); var salesOrderItems = new List<lnksalesorder>(); var customerEmail = Util.GetCustomerEmail(); using (var trans = new TransactionScope()) { using (var context = new TTTEntities()) { var openStatusID = Util.GetStatusID(Status.Open.ToString()); var so = context.trnsalesorders.Where(a => a.Email == customerEmail && a.StatusID == openStatusID).SingleOrDefault(); salesOrderItems = context.lnksalesorders.Where(a => a.Active && a.CookieID == cookieID).ToList(); if (so == null) { so = context.trnsalesorders.Add(new trnsalesorder() { StatusID = openStatusID, Email = customerEmail, SubTotal = 0, GrandTotal = salesOrderItems.Sum(b => b.UnitPrice), CreateDT = DateTime.Now }); } foreach (var soItem in salesOrderItems) { soItem.CookieID = ""; soItem.SalesOrderID = so.ID; soItem.UpdateDT = DateTime.Now; } context.SaveChanges(); } trans.Complete(); } }
public virtual ActionResult AddToCartNormal(int modelSizeID, string sku) { try { ConstructShoppingBagCookie(); #region Add to Cart var salesOrder = new trnsalesorder(); using (var context = new TTTEntities()) { var query = from modelSize in context.lnkmodelsizes join model in context.refmodels on modelSize.ModelID equals model.ID select new { ModelSizeID = modelSize.ID, Model = model }; var modelDetails = query.Where(a => a.ModelSizeID == modelSizeID).Single(); var modelPrice = (modelDetails.Model.DiscountPrice.HasValue && modelDetails.Model.DiscountPrice.Value > 0) ? modelDetails.Model.DiscountPrice.Value : modelDetails.Model.Price; var customerEmail = Util.SessionAccess == null ? "" : Util.SessionAccess.Email; ; if (!string.IsNullOrEmpty(customerEmail)) // login customer { var openStatusID = Util.GetStatusID(Status.Open.ToString()); salesOrder = context.trnsalesorders.Where(a => a.Email == customerEmail && a.StatusID == openStatusID).SingleOrDefault(); using (var trans = new TransactionScope()) { if (salesOrder == null) { salesOrder = context.trnsalesorders.Add(new trnsalesorder() { StatusID = openStatusID, Email = customerEmail, SubTotal = modelPrice, GrandTotal = modelPrice, CreateDT = DateTime.Now }); context.SaveChanges(); AddNormalSalesOrderItem(salesOrder.ID, modelSizeID, sku, modelPrice, context); } else { // update sales order grand total salesOrder.GrandTotal += modelPrice; var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == salesOrder.ID && a.ModelSizeID == modelSizeID).FirstOrDefault(); if (soItem == null) { salesOrder.UpdateDT = DateTime.Now; AddNormalSalesOrderItem(salesOrder.ID, modelSizeID, sku, modelPrice, context); } else { soItem.Active = true; soItem.UpdateDT = DateTime.Now; } } context.SaveChanges(); trans.Complete(); } } else { ConstructShoppingBagCookie(); var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == null && a.ModelSizeID == modelSizeID && a.CookieID == cookieID).FirstOrDefault(); if (soItem == null) { AddNormalSalesOrderItem(null, modelSizeID, sku, modelPrice, context); } else { soItem.Active = true; soItem.UpdateDT = DateTime.Now; } context.SaveChanges(); } } #endregion } catch (Exception ex) { throw; } return RedirectToAction("Index"); }
public virtual ActionResult AddToCartCustomize(string size, string sku) { try { #region Add to Cart var salesOrder = new trnsalesorder(); using (var context = new TTTEntities()) { var query = from customizeModelImage in context.lnkcustomizemodelimages join customizeModel in context.refcustomizemodels on customizeModelImage.CustomizeModelID equals customizeModel.ID select new { CustomizeModel = customizeModel, CustomizeModelImage = customizeModelImage }; var customizeModelDetails = query.Where(a => a.CustomizeModelImage.SKU == sku).Single(); var customerEmail = Util.SessionAccess == null ? "" : Util.SessionAccess.Email; if (!string.IsNullOrEmpty(customerEmail)) // login customer { var openStatusID = Util.GetStatusID(Status.Open.ToString()); salesOrder = context.trnsalesorders.Where(a => a.Email == customerEmail && a.StatusID == openStatusID).SingleOrDefault(); using (var trans = new TransactionScope()) { if (salesOrder == null) { salesOrder = context.trnsalesorders.Add(new trnsalesorder() { StatusID = openStatusID, Email = customerEmail, SubTotal = customizeModelDetails.CustomizeModel.Price, GrandTotal = customizeModelDetails.CustomizeModel.Price, CreateDT = DateTime.Now }); context.SaveChanges(); AddCustomizeSalesOrderItem(salesOrder.ID, sku, size, customizeModelDetails.CustomizeModel.Price, context); } else { var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == salesOrder.ID && a.Size == size && a.SKU == sku).FirstOrDefault(); if (soItem == null) { salesOrder.GrandTotal += customizeModelDetails.CustomizeModel.Price; salesOrder.UpdateDT = DateTime.Now; AddCustomizeSalesOrderItem(salesOrder.ID, sku, size, customizeModelDetails.CustomizeModel.Price, context); } else { soItem.Active = true; soItem.UpdateDT = DateTime.Now; } } context.SaveChanges(); trans.Complete(); } } else // Anonymous user { ConstructShoppingBagCookie(); var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == null && a.Size == size && a.SKU == sku && a.CookieID == cookieID).FirstOrDefault(); if (soItem == null) { AddCustomizeSalesOrderItem(null, sku, size, customizeModelDetails.CustomizeModel.Price, context); } else { soItem.Active = true; soItem.UpdateDT = DateTime.Now; } context.SaveChanges(); } } #endregion } catch (Exception ex) { throw; } return RedirectToAction("Index"); }
public virtual ActionResult Remove(int wishlistItemID) { using (var context = new TTTEntities()) { var wishlistItem = context.lnkwishlists.Where(a => a.ID == wishlistItemID).Single(); wishlistItem.Active = false; wishlistItem.UpdateDT = DateTime.Now; context.SaveChanges(); } return RedirectToAction("Index"); }
public virtual JsonResult RemoveVoucherCode(string voucherCode, int soID) { var voucherValue = 0; decimal grandTotal = 0; using (var context = new TTTEntities()) { // retrieve voucher details var voucherDetails = context.tblvouchers.Where(a => a.Code == voucherCode).ToList(); // retrieve sales order var salesOrder = context.trnsalesorders.Where(a => a.ID == soID).Single(); //// current voucher code //if (salesOrder.VoucheID == voucherDetails[0].ID) // return Json(new { voucherValue = voucherDetails[0].Value, grandTotal = salesOrder.GrandTotal, message = message }); //if (!string.IsNullOrEmpty(voucherCode)) //{ // if (voucherDetails.Count > 1) // voucher code more than one // message = string.Format("Voucher appeared more than once"); // else if (voucherDetails.Count == 0) // voucher code not found // message = string.Format("Voucher not found"); // else //voucher code found // { // if (!voucherDetails[0].Active) // voucher code // message = string.Format("Voucher already used"); // } //} if (salesOrder.VoucheID.HasValue) { var currentVoucher = context.tblvouchers.Where(a => a.ID == salesOrder.VoucheID).SingleOrDefault(); // update voucher as un-used currentVoucher.Active = true; currentVoucher.UpdateDT = DateTime.Now; //update sales order amount salesOrder.VoucheID = null; salesOrder.UpdateDT = DateTime.Now; salesOrder.GrandTotal += currentVoucher.Value; } //if (string.IsNullOrEmpty(message)) // valid voucher code //{ // //update sales order amount // salesOrder.VoucheID = voucherDetails[0].ID; // salesOrder.UpdateDT = DateTime.Now; // salesOrder.GrandTotal -= voucherDetails[0].Value; // // update voucher as used // voucherDetails[0].Active = false; // voucherDetails[0].UpdateDT = DateTime.Now; // voucherValue = voucherDetails[0].Value; //} grandTotal = salesOrder.GrandTotal; context.SaveChanges(); } return Json(new { voucherValue = voucherValue, grandTotal = grandTotal }); }
public virtual ActionResult Shipping(CheckoutShippingViewModel viewModel) { var access = Util.SessionAccess; using (var context = new TTTEntities()) { if (viewModel.SalesOrderAddressID == 0) { var salesOrderID = context.trnsalesorders .Include(a => a.refstatu) .Single(a => a.Email == access.Email && a.refstatu.Name == "Open") .ID; var oldAddress = context.lnksoaddresses .Where(a => a.Active && a.IsShipping && a.SalesOrderID == salesOrderID).ToList(); oldAddress.ForEach(a => { a.Active = false; a.UpdateDT = DateTime.Now; }); context.lnksoaddresses.Add(new lnksoaddress { Active = true, AddressLine1 = viewModel.Address.AddressLine1, AddressLine2 = viewModel.Address.AddressLine2, CityTown = viewModel.Address.CityTown, CountryID = viewModel.Address.CountryID, CreateDT = DateTime.Now, FirstName = viewModel.FirstName, IsShipping = true, LastName = viewModel.LastName, Postcode = viewModel.Address.Postcode, SalesOrderID = salesOrderID, State = viewModel.Address.State, ChooseAddress = viewModel.AddressTypeID, Phone = viewModel.Phone }); } else { var salesOrderShippingAddress = context.lnksoaddresses.Single(a => a.ID == viewModel.SalesOrderAddressID); salesOrderShippingAddress.AddressLine1 = viewModel.Address.AddressLine1; salesOrderShippingAddress.AddressLine2 = viewModel.Address.AddressLine2; salesOrderShippingAddress.CityTown = viewModel.Address.CityTown; salesOrderShippingAddress.CountryID = viewModel.Address.CountryID; salesOrderShippingAddress.UpdateDT = DateTime.Now; salesOrderShippingAddress.FirstName = viewModel.FirstName; salesOrderShippingAddress.IsShipping = true; salesOrderShippingAddress.LastName = viewModel.LastName; salesOrderShippingAddress.ChooseAddress = viewModel.AddressTypeID; salesOrderShippingAddress.Postcode = viewModel.Address.Postcode; salesOrderShippingAddress.State = viewModel.Address.State; salesOrderShippingAddress.Phone = viewModel.Phone; } var addressType = (CheckoutAddressType)viewModel.AddressTypeID; if (addressType != CheckoutAddressType.Others) { var isPrimary = addressType == CheckoutAddressType.Primary; var accountAddress = context.tbladdresses .FirstOrDefault(a => a.IsPrimary == isPrimary && a.Active && a.AccessID == access.ID); var shippingExist = context.tbladdresses .Any(a => a.Active && a.AccessID == access.ID && a.IsShipping && a.IsPrimary != isPrimary); var isShipping = shippingExist ? false : true; if (accountAddress == null) { accountAddress = new tbladdress { AccessID = access.ID, Active = true, AddressLine1 = viewModel.Address.AddressLine1, AddressLine2 = viewModel.Address.AddressLine2, CityTown = viewModel.Address.CityTown, CountryID = viewModel.Address.CountryID, CreateDT = DateTime.Now, IsShipping = isShipping, IsPrimary = isPrimary, Postcode = viewModel.Address.Postcode, State = viewModel.Address.State }; context.tbladdresses.Add(accountAddress); } else { accountAddress.IsShipping = isShipping; } } context.SaveChanges(); } return RedirectToAction(MVC.Checkout.Summary()); }
public virtual ActionResult Edit(ColourDescModel viewModel) { ValidateIsAdmin(); using (var context = new TTTEntities()) { var record = context.refcolourdescs.Single(a => a.ID == viewModel.ID); record.Name = viewModel.Name; record.Active = viewModel.Active; record.ColourID = viewModel.ColourID; context.SaveChanges(); } return RedirectToAction(MVC.Admin.ColourDesc.Index()); }
public virtual ActionResult Index(FormCollection collection) { if (collection["submit"].ToString() == "VIEW WISH LIST") return RedirectToAction("Index", "Wishlist"); else if (collection["submit"].ToString() == "PROCEED TO CHECKOUT") return RedirectToAction("Billing", "Checkout"); // here update SalesOrder using (var context = new TTTEntities()) { var customerEmail = Util.GetCustomerEmail(); var openStatusID = Util.GetStatusID(Status.Open.ToString()); var openSalesOrder = context.trnsalesorders.Where(a => (a.Email == customerEmail && a.StatusID == openStatusID)).SingleOrDefault(); var salesItems = GetPendingSOItems(context, null);; // update sales order quantity and total amount foreach (var item in salesItems) { var txtQty = string.Format("qty_{0}",item.ID); //var hdfPrice = string.Format("price_{0}", item.ID); var newQty = Convert.ToInt32(collection[txtQty].ToString()); var nowDT = DateTime.Now; // price = price_[soID] if (!(newQty == item.Quantity)) { openSalesOrder.GrandTotal -= item.Quantity * item.UnitPrice; item.Quantity = newQty; item.UpdateDT = nowDT; openSalesOrder.GrandTotal += item.Quantity * item.UnitPrice; } } // update database context.SaveChanges(); } return RedirectToAction("Index"); }
public virtual ActionResult Create(ColourDescModel viewModel) { ValidateIsAdmin(); using (var context = new TTTEntities()) { var newRecord = new refcolourdesc { Active = viewModel.Active, Name = viewModel.Name, CreateDT = DateTime.Now, ColourID = viewModel.ColourID }; context.refcolourdescs.Add(newRecord); context.SaveChanges(); } return RedirectToAction(MVC.Admin.ColourDesc.Index()); }
public void ConstructRecentViewCookie(string imageUrl, string linkUrl) { try { var recentViewCookie = GetRecentViewCookie(); var cookieID = recentViewCookie.Value; using (var context = new TTTEntities()) { if (string.IsNullOrEmpty(cookieID)) // create new cookie { var guid = System.Guid.NewGuid().ToString(); context.tblrecentviews.Add(new tblrecentview() { Active = true, CookieID = guid, CreateDT = DateTime.Now, UpdateDT = DateTime.Now, ImageUrl = imageUrl, LinkUrl = linkUrl }); recentViewCookie.Value = guid; Response.Cookies.Add(recentViewCookie); } else //cookie create early { // check if item already exist, if yes then update var existingItem = context.tblrecentviews.Where(a => a.CookieID == cookieID && a.ImageUrl == imageUrl && a.LinkUrl == linkUrl).SingleOrDefault(); if (existingItem != null) { existingItem.UpdateDT = DateTime.Now; } else { var recentItems = context.tblrecentviews.Where(a => a.CookieID == cookieID).ToList(); if (recentItems.Count < 5) { context.tblrecentviews.Add(new tblrecentview() { Active = true, CookieID = cookieID, CreateDT = DateTime.Now, UpdateDT = DateTime.Now, ImageUrl = imageUrl, LinkUrl = linkUrl }); } else if (recentItems.Count == 5) { var itemToUpdate = context.tblrecentviews.Where(a => a.CookieID == cookieID) .OrderBy(a => a.UpdateDT) .First(); itemToUpdate.ImageUrl = imageUrl; itemToUpdate.LinkUrl = linkUrl; itemToUpdate.UpdateDT = DateTime.Now; } } } context.SaveChanges(); } } catch (Exception ex) { throw; } }
public virtual ActionResult Edit(MaintainModelViewModel viewModel) { using (var trans = new TransactionScope()) { using (var context = new TTTEntities()) { var model = context.refmodels.Where(a => a.ID == viewModel.ModelID).Single(); var modelColourDesc = context.lnkmodelcolourdescs.Where(a => a.ID == viewModel.ModelColourDescID).Single(); var brandID = context.refbrands.Where(a => a.Name == viewModel.BrandName && a.CategoryID == viewModel.CategoryID).Single().ID; // Model details**************************************************** model.BrandID = brandID; model.Price = viewModel.Price; model.DiscountPrice = viewModel.DiscountPrice; // ***************************************************************** // Model colour description details***************************************** modelColourDesc.Active = viewModel.Active; modelColourDesc.SKU = viewModel.SKU; modelColourDesc.HeelHeight = viewModel.HeelHeight; modelColourDesc.Style = viewModel.Style; modelColourDesc.Description = viewModel.Description; modelColourDesc.LiningSock = viewModel.LiningSock; modelColourDesc.Sole = viewModel.Sole; modelColourDesc.Make = viewModel.Make; modelColourDesc.UpperMaterial = viewModel.UpperMaterial; modelColourDesc.HeelDesc = viewModel.HeelDesc; // *************************************************************************** // Model lifestyle************************************************************ var selectedLifestyleIDs = viewModel.SelectedLifestyleIDText.Replace(",,",",").Split(',').Select(int.Parse).ToList(); var selectedLifeStyles = context.reflifestyles.Where(a => selectedLifestyleIDs.Contains(a.ID)).ToList(); var modelLifestyles = context.lnkmodellifestyles.Where(a => a.ModelID == viewModel.ModelID && a.ColourDescID == viewModel.ColourDescID).ToList(); modelLifestyles.ForEach(a => { a.Active = false; a.UpdateDT = DateTime.Now; }); foreach (var lifeStyle in selectedLifeStyles) { var modelLifestyle = modelLifestyles.Where(a => a.LifeStyleID == lifeStyle.ID).SingleOrDefault(); if (modelLifestyle != null) { modelLifestyle.Active = true; modelLifestyle.UpdateDT = DateTime.Now; } else { context.lnkmodellifestyles.Add(new lnkmodellifestyle() { ColourDescID = viewModel.ColourDescID, ModelID = viewModel.ModelID, Active=true, CreateDT=DateTime.Now, LifeStyleID=lifeStyle.ID, }); } } //******************************************************************************** // Model trend******************************************************************************** var selectedTrendIDs = viewModel.SelectedTrendIDText.Replace(",,", ",").Split(',').Select(int.Parse).ToList(); var selectedTrends = context.reftrends.Where(a => selectedTrendIDs.Contains(a.ID)).ToList(); var modelTrends = context.lnkmodeltrends.Where(a => a.ModelID == viewModel.ModelID && a.ColourDescID == viewModel.ColourDescID).ToList(); modelTrends.ForEach(a => { a.Active = false; a.UpdateDT = DateTime.Now; }); foreach (var trend in selectedTrends) { var modelTrend = modelTrends.Where(a => a.TrendID == trend.ID).SingleOrDefault(); if (modelTrend != null) { modelTrend.Active = true; modelTrend.UpdateDT = DateTime.Now; } else { context.lnkmodeltrends.Add(new lnkmodeltrend() { ColourDescID = viewModel.ColourDescID, ModelID = viewModel.ModelID, Active = true, CreateDT = DateTime.Now, TrendID = trend.ID, }); } } // ************************************************************************************************ context.SaveChanges(); } trans.Complete(); } return RedirectToAction("Edit", new { id = viewModel.ModelColourDescID }); }
public virtual ActionResult BackendResponse() { try { var viewModel = ConstructPaymentResponseModel(); var log = ConstructLogPayment(viewModel); var salesOrderID = int.Parse(log.RefNo); var pendingStatusID = Util.GetStatusID(Status.Pending.ToString()); using (var context = new TTTEntities()) { context.logpayments.Add(log); context.SaveChanges(); var salesOrder = context.trnsalesorders .Include(a => a.refstatu) .SingleOrDefault(a => a.ID == salesOrderID); if (salesOrder == null) throw new ApplicationException("Order not found."); if (salesOrder.refstatu.Name == Status.Open.ToString()) { if (log.Status == Settings.Default.iPay88_Status_Success) { salesOrder.StatusID = pendingStatusID; salesOrder.PaymentGatewayTransID = log.TransId; salesOrder.UpdateDT = DateTime.Now; context.SaveChanges(); var soItems = context.lnksalesorders .Where(a => a.Active && a.SalesOrderID == salesOrderID && a.ModelSizeID.HasValue) .ToList(); foreach (var item in soItems) { var modelSize = context.lnkmodelsizes.Single(a => a.ID == item.ModelSizeID.Value); modelSize.Quantity -= item.Quantity; } context.SaveChanges(); } } else { if(string.IsNullOrEmpty(salesOrder.PaymentGatewayTransID)) throw new ApplicationException("Invalid order status."); } } } catch (Exception ex) { LogException(ex); throw; } return Content("RECEIVEOK"); }
public virtual ActionResult UploadImage(ModelImageViewModel viewModel, HttpPostedFileBase fileMain, HttpPostedFileBase fileSub, HttpPostedFileBase fileThumbnail1, HttpPostedFileBase fileThumbnail2, HttpPostedFileBase fileThumbnail3, HttpPostedFileBase fileThumbnail4, HttpPostedFileBase fileImage1, HttpPostedFileBase fileImage2, HttpPostedFileBase fileImage3, HttpPostedFileBase fileImage4) { try { using (var context = new TTTEntities()) { var modelColourDesc = context.lnkmodelcolourdescs.Where(a => a.ID == viewModel.ModelColourDescID).Single(); var modelImages = context.lnkmodelimages.Where(a => a.ModelColourDescID == viewModel.ModelColourDescID).ToList(); if (fileMain != null) { SaveImage(viewModel, fileMain); modelColourDesc.MainImage = Path.GetFileName(fileMain.FileName); } if (fileSub != null) { SaveImage(viewModel, fileSub); modelColourDesc.SubImage = Path.GetFileName(fileSub.FileName); } for (int i = 0; i < 4; i++) { var modelImage = new lnkmodelimage() { CreateDT = DateTime.Now, Active = true, ModelColourDescID = viewModel.ModelColourDescID, }; //existing model images if (modelImages.Count() > i) modelImage = modelImages[i]; switch (i) { case 0: UploadModelImage(viewModel, fileThumbnail1, fileImage1, modelImage); break; case 1: UploadModelImage(viewModel, fileThumbnail2, fileImage2, modelImage); break; case 2: UploadModelImage(viewModel, fileThumbnail3, fileImage3, modelImage); break; case 3: UploadModelImage(viewModel, fileThumbnail4, fileImage4, modelImage); break; } // new model images if (modelImage.ID == 0) context.lnkmodelimages.Add(modelImage); } context.SaveChanges(); } } catch (Exception ex) { throw ex; } return RedirectToAction("Edit", new { id = viewModel.ModelColourDescID }); }
public virtual ActionResult Edit(BaseRefCreateUpdateViewModel viewModel) { ValidateIsAdmin(); using (var context = new TTTEntities()) { var record = context.reflifestyles.Single(a => a.ID == viewModel.ID); record.Name = viewModel.Name; record.Active = viewModel.Active; context.SaveChanges(); } return RedirectToAction(MVC.Admin.LifeStyle.Index()); }
public virtual ActionResult ShoeDetails(ShoeDetailsViewModel viewModel, FormCollection collection) { try { if (collection["submit"].ToString() == "+ ADD TO BAG") { #region Add to Cart var salesOrder = new trnsalesorder(); using (var context = new TTTEntities()) { var query = from customizeModelImage in context.lnkcustomizemodelimages join customizeModel in context.refcustomizemodels on customizeModelImage.CustomizeModelID equals customizeModel.ID select new { CustomizeModel = customizeModel, CustomizeModelImage = customizeModelImage }; var customizeModelDetails = query.Where(a => a.CustomizeModelImage.SKU == viewModel.ModelImage.SKU).Single(); var customerEmail = Util.SessionAccess == null ? "" : Util.SessionAccess.Email; if (!string.IsNullOrEmpty(customerEmail)) // login customer { var openStatusID = Util.GetStatusID(Status.Open.ToString()); salesOrder = context.trnsalesorders.Where(a => a.Email == customerEmail && a.StatusID == openStatusID).SingleOrDefault(); using (var trans = new TransactionScope()) { if (salesOrder == null) { salesOrder = context.trnsalesorders.Add(new trnsalesorder() { StatusID = openStatusID, Email = customerEmail, SubTotal = customizeModelDetails.CustomizeModel.Price, GrandTotal = customizeModelDetails.CustomizeModel.Price, CreateDT = DateTime.Now }); context.SaveChanges(); AddSalesOrderItem(salesOrder.ID, viewModel.ModelImage.SKU, viewModel.Size, viewModel.CustomizeModel.Price, context); } else { var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == salesOrder.ID && a.Size == viewModel.Size && a.SKU == viewModel.ModelImage.SKU).SingleOrDefault(); if (soItem == null) { salesOrder.GrandTotal += customizeModelDetails.CustomizeModel.Price; salesOrder.UpdateDT = DateTime.Now; AddSalesOrderItem(salesOrder.ID, viewModel.ModelImage.SKU, viewModel.Size, viewModel.CustomizeModel.Price, context); } else { soItem.Active = true; soItem.UpdateDT = DateTime.Now; } } context.SaveChanges(); trans.Complete(); } } else // Anonymous user { ConstructShoppingBagCookie(); var soItem = context.lnksalesorders.Where(a => a.SalesOrderID == null && a.Size == viewModel.Size && a.SKU == viewModel.ModelImage.SKU && a.CookieID == cookieID).SingleOrDefault(); if (soItem == null) { AddSalesOrderItem(null, viewModel.ModelImage.SKU, viewModel.Size, viewModel.CustomizeModel.Price, context); } else { soItem.Active = true; soItem.UpdateDT = DateTime.Now; } context.SaveChanges(); } } #endregion } else if (collection["submit"].ToString() == "+ ADD TO WISH LIST") { #region Add to Wishlist if (!Request.IsAuthenticated) { return RedirectToAction(MVC.SignIn.Index(Url.Action("ShoeDetails", new { sku = viewModel.ModelImage.SKU }))); } AddToWishList(viewModel); #endregion } } catch (Exception ex) { throw; } return RedirectToAction("ShoeDetails", new { sku = viewModel.ModelImage.SKU }); }
public virtual ActionResult Create(CategoryModel viewModel, HttpPostedFileBase file) { ValidateIsAdmin(); SaveImage(viewModel, file); using (var context = new TTTEntities()) { var newRecord = new refcategory { Active = viewModel.Active, Name = viewModel.Name, CreateDT = DateTime.Now, Type = viewModel.Type, Image = viewModel.Image }; context.refcategories.Add(newRecord); context.SaveChanges(); } return RedirectToAction(MVC.Admin.Category.Index()); }
private void AddToWishList(ShoeDetailsViewModel viewModel) { var wishlistID = 0; using (var context = new TTTEntities()) { using (var trans = new TransactionScope()) { var customerEmail = Util.SessionAccess.Email; var wishlist = context.trnwishlists.Where(a => a.Email == customerEmail).SingleOrDefault(); if (wishlist == null) { wishlistID = context.trnwishlists.Add(new trnwishlist() { Active = true, CreateDT = DateTime.Now, Email = customerEmail }).ID; AddWishlistItem(wishlistID, viewModel.ModelImage.SKU, viewModel.Size, context); } else { wishlistID = wishlist.ID; var wishlistItem = context.lnkwishlists.Where(a => a.SKU == viewModel.ModelImage.SKU && a.Size == viewModel.Size && a.WishlistID == wishlistID).SingleOrDefault(); if (wishlistItem == null) AddWishlistItem(wishlistID, viewModel.ModelImage.SKU, viewModel.Size, context); else { wishlistItem.Active = true; wishlistItem.UpdateDT = DateTime.Now; } } context.SaveChanges(); trans.Complete(); } } }
public virtual ActionResult Edit(BrandModel viewModel) { ValidateIsAdmin(); using (var context = new TTTEntities()) { var record = context.refbrands.Single(a => a.ID == viewModel.ID); record.Name = viewModel.Name; record.Active = viewModel.Active; record.CategoryID = viewModel.CategoryID; context.SaveChanges(); } return RedirectToAction(MVC.Admin.Brand.Index()); }
public virtual ActionResult Create(BaseRefCreateUpdateViewModel viewModel) { ValidateIsAdmin(); using (var context = new TTTEntities()) { var newRecord = new reflifestyle { Active = viewModel.Active, Name = viewModel.Name, CreateDT = DateTime.Now }; context.reflifestyles.Add(newRecord); context.SaveChanges(); } return RedirectToAction(MVC.Admin.LifeStyle.Index()); }
public virtual ActionResult ForgotPassword(ForgotPasswordViewModel viewModel) { if(string.IsNullOrEmpty(viewModel.Email)) return View(new ForgotPasswordViewModel()); using (var context = new TTTEntities()) { var user = context.tblaccesses.Where(a => a.Email == viewModel.Email).SingleOrDefault(); if (user == null) { viewModel.ErrorMessage = "Email account does not exist."; return View(viewModel); } var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; var random = new Random(); viewModel.NewPassword = new string( Enumerable.Repeat(chars, 8) .Select(s => s[random.Next(s.Length)]) .ToArray()); user.Password = Util.GetMD5Hash(viewModel.NewPassword); user.UpdateDT = DateTime.Now; context.SaveChanges(); } SendForgotPasswordEmail(viewModel); return View("ForgotPasswordSuccess", viewModel); }