public ActionResult PlaceOrder(int prodId, int ispId, ContractTerm contractTerm) { var user = svc.GetUser(User.Identity.GetUserId()); var orderUrl = new UrlHelper(HttpContext.Request.RequestContext).Action("Edit", "Order", new { area = "ISPAdmin" }, Request.Url.Scheme); bool orderResult = false; //Process should not get this far but double check user is in Zone and can order if (user.Zone != null && user.Zone.AllowOrder) { orderResult = svc.PlaceOrder(user.Id, prodId, orderUrl, contractTerm); var product = svc.GetProduct(prodId); var cap = product.IsCapped ? product.Cap.ToString() : ""; var isCapped = product.IsCapped ? "Capped" : "Uncapped"; var email = new EmailDto { Subject = "Order confirmation", Body = "Dear " + user.FirstName + "," + "<br/><br/>Your order for " + product.ISP.Name + " " + product.LineSpeed.GetDisplayName() + " " + isCapped + " " + cap + " has been received." + "<br/><br/>If you have any queries then please contact <strong>" + product.ISP.Name + "</strong> at " + product.ISP.EmailAddress + " or on " + product.ISP.LandlineNo + "." + "<br/><br/>Warm regards" + "<br/><br/>The Frogfoot team." }; EmailSender.SendEmail(email, user); } return(RedirectToAction("OrderResult", new { user.Id, ispId, orderResult })); }
public ISet <Term <object> > GetTerms() { var contractTerm = new ContractTerm <object>("sell dealership", 1); contractTerm.As(new WrittenTerm()); return(new HashSet <Term <object> > { contractTerm, ExpresslyConditionalTerm.Value, }); }
/// <summary> /// 保存合同条款 /// </summary> /// <param name="term">条款</param> /// <param name="contractGuid">合同Guid</param> private void SaveTerm(ContractTerm term, Guid contractGuid) { string sql; term.ContractGuid = contractGuid; if (term.ContractTermGUID == Guid.Empty) { sql = @" INSERT INTO [dbo].[Geek_ContractTerm] ( [ContractTermGUID] , [CreatedTime] , [CreatedGUID] , [CreatedName] , [ModifiedTime] , [ModifiedGUID] , [ModifiedName] , [ContractGuid] , [TermToField] , [TermContent] ) VALUES ( NEWID() , GETDATE() , '4230BC6E-69E6-46A9-A39E-B929A06A84E8' , '系统管理员' , GETDATE() , '4230BC6E-69E6-46A9-A39E-B929A06A84E8' , '系统管理员' , @ContractGuid , @TermToField , @TermContent )"; } else { sql = @" UPDATE [dbo].[Geek_ContractTerm] SET [ModifiedTime] = GETDATE() , [ModifiedGUID] = '4230BC6E-69E6-46A9-A39E-B929A06A84E8' , [ModifiedName] = '系统管理员' , [TermContent] = @TermContent WHERE ContractTermGUID = @ContractTermGUID"; } using (var scope = ConnectionScope.GetExistOrCreate()) { CPQuery.Create(sql, term).ExecuteNonQuery(); } }
public void TestCompareTo() { var testSubject00 = new ContractTerm <object>("car parts", "car parts"); var testSubject01 = new ContractTerm <object>("car parts", "car parts"); var testResult = testSubject00.CompareTo(null); Assert.AreEqual(1, testResult); testResult = testSubject00.CompareTo(testSubject01); Assert.AreEqual(0, testResult); testSubject00.As(new WrittenTerm()); testResult = testSubject00.CompareTo(testSubject01); Assert.AreEqual(-1, testResult); testResult = testSubject01.CompareTo(testSubject00); Assert.AreEqual(1, testResult); }
public void TestCompareTo_StdPrefInter() { var testSubject00 = new ContractTerm <object>("car parts", "car parts", new ExpressTerm()); var testSubject01 = new ContractTerm <object>("car parts", "car parts", new ExpressTerm()); var testResult = testSubject00.CompareTo(testSubject01); Assert.AreEqual(0, testResult); testSubject00 = new ContractTerm <object>("car parts", "car parts", new ExpressTerm()); testSubject01 = new ContractTerm <object>("car parts", "car parts", new CourseOfPerformanceTerm()); testResult = testSubject00.CompareTo(testSubject01); Assert.IsTrue(testResult < 0); testResult = testSubject01.CompareTo(testSubject00); Assert.IsTrue(testResult > 0); testSubject00 = new ContractTerm <object>("car parts", "car parts", new CourseOfPerformanceTerm()); testSubject01 = new ContractTerm <object>("car parts", "car parts", new CourseOfDealingTerm()); testResult = testSubject00.CompareTo(testSubject01); Assert.IsTrue(testResult < 0); testResult = testSubject01.CompareTo(testSubject00); Assert.IsTrue(testResult > 0); testSubject00 = new ContractTerm <object>("car parts", "car parts", new CourseOfDealingTerm()); testSubject01 = new ContractTerm <object>("car parts", "car parts", new UsageOfTradeTerm()); testResult = testSubject00.CompareTo(testSubject01); Assert.IsTrue(testResult < 0); testResult = testSubject01.CompareTo(testSubject00); Assert.IsTrue(testResult > 0); }
public void EditOrder(int orderid, int ffProductId, int ispProductId, OrderStatus status, string userId, ContractTerm clientContractTerm, List <FFProdEditDto> products) { orderRepo.EditOrder(orderid, ffProductId, ispProductId, status, userId, clientContractTerm, products); }
public ActionResult Edit(int orderId, int ffProductId, int ispProductId, OrderStatus orderStatus, ContractTerm clienContractTerm, List <FFProdEditDto> ffProducts) { svc.EditOrder(orderId, ffProductId, ispProductId, orderStatus, User.Identity.GetUserId(), clienContractTerm, ffProducts); CreatePDF(orderId, orderStatus); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// UpdateContractTerm /// </summary> /// <param name="contractTerm"></param> /// <returns>Task<bool></returns> private async Task <bool> UpdateContractTerm(ContractTerm contractTerm) { var result = await iContractTermLibrary.UpdateEntityByDapper(contractTerm).ConfigureAwait(false); return(result.Result); }
public bool PlaceOrder(string userId, int prodId, string orderUrl, ContractTerm contractTerm) { return(orderRepo.ClientCreateOrder(userId, prodId, orderUrl, contractTerm)); }
public bool ClientCreateOrder(string userId, int prodId, string orderUrl, ContractTerm contractTerm) { try { var user = db.Users.Include(u => u.Location).Include(u => u.Estate).Include(u => u.Zone).FirstOrDefault(u => u.Id == userId); var product = db.ISPProducts.Include(p => p.ISP).First(p => p.ISPProductId == prodId); var special = GetSpecial(user.Zone, product.IsSpecial); var precinctCode = ""; if (user.Estate != null && !string.IsNullOrEmpty(user.Estate.EstateCode)) { precinctCode = user.Estate.EstateCode; } else if (!string.IsNullOrEmpty(user.Location.PrecinctCode)) { precinctCode = user.Location.PrecinctCode; } var currentDateTime = DateTime.Now; var order = new Order { ISPId = product.ISPId, Client = user, ClientId = userId, Status = OrderStatus.New, CreatedDate = currentDateTime, CreatedByRole = "Client", ISPProduct = product, ISPProductId = product.ISPProductId, IsSpecial = special != null, Special = special, ClientContractTerm = contractTerm, ISPOrderNo = "Please provide", FFOrderNo = "placeholder", OrderFFProducts = new List <OrderFFProduct> { new OrderFFProduct { Quantity = 1, FFProductId = db.FFProducts.FirstOrDefault(p => p.LineSpeed == product.LineSpeed).FFProductId } }, StatusList = new List <Status> { new Status { OrderStatus = OrderStatus.New, TimeStamp = currentDateTime }, } }; product.Orders.Add(order); db.Orders.Add(order); order.Logs.Add(new Log { UserId = userId, Type = UserAction.Create, OrderStatus = OrderStatus.New, TimeStamp = DateTime.Now }); SaveChanges(db); //once you have the orderId then use that as the unique order number order.FFOrderNo = string.Format("FTTH-{0}-{1}-{2:D6}", product.ISP.ISPCode, precinctCode, order.OrderId); SaveChanges(db); EmailSender.SendISPNewOrderNotification(order, product.ISP, user, orderUrl); return(true); } catch (Exception e) { throw e; } }
public void EditOrder(int orderId, int ffProductId, int ispProductId, OrderStatus?status, string userId, ContractTerm clientContractTerm, List <FFProdEditDto> products) { var order = GetOrder(orderId); order.ISPProductId = ispProductId; order.ClientContractTerm = clientContractTerm; var action = UserAction.Edit; if (status != null) { order.Status = (OrderStatus)status; order.StatusList.Add(new Status { OrderStatus = (OrderStatus)status, TimeStamp = DateTime.Now }); } //create defuaul line speed prod products.Add(new FFProdEditDto { action = true, id = ffProductId, qty = 1 }); //FFProdEditDto //true = add/update //false = delete //null = no change/do nothing foreach (var prod in products) { //add or update if (prod.action == true) { //if prod exists then update it if (order.OrderFFProducts.Any(p => p.FFProductId == prod.id)) { var prodToUpdate = order.OrderFFProducts.First(p => p.FFProductId == prod.id); prodToUpdate.Quantity = prod.qty; } else //if not exists then add it { order.OrderFFProducts.Add(new OrderFFProduct { OrderId = order.OrderId, FFProductId = prod.id, Quantity = prod.qty }); } } db.SaveChanges(); //remove if (prod.action == false) { var orderFFProdToDelete = order.OrderFFProducts.FirstOrDefault(p => p.FFProductId == prod.id); if (orderFFProdToDelete != null) { db.OrderFFProducts.Remove(orderFFProdToDelete); } db.SaveChanges(); } } order.Logs.Add(new Log { UserId = userId, Type = action, OrderStatus = order.Status, TimeStamp = DateTime.Now }); SaveChanges(db); EmailSender.SendRTNewOrderNotification(orderId); }