public static List <OrderModel> GetListOrders() { List <BOLOrder> userorsers = RentOrder.GetUserFrom_db(); try { List <OrderModel> returneduserorsers = new List <OrderModel>(); foreach (var item in userorsers) { returneduserorsers.Add(new OrderModel { StartDate = item.StartDate, ReturnDate = item.ReturnDate, UserName = RentUser.GetUserName(item.UserID), VehicleNumber = RentCarsInVehicleInventory.GetVehicleNumber(item.VehiclesID), ActualReturnDate = item.ActualReturnDate }); } return(returneduserorsers); } catch { } return(null); }
private void IsExistsCode(ISession session, RentOrder rent) { ICriteria criteria = session.CreateCriteria(typeof(ReqOrder)); ICriterion criterion = null; if (rent.Id != Guid.Empty) { criterion = Restrictions.Not(Restrictions.IdEq(rent.Id)); criteria.Add(criterion); } criterion = Restrictions.Eq("RentOrderCode", rent.RentOrderCode); criteria.Add(criterion); //统计 criteria.SetProjection( Projections.ProjectionList() .Add(Projections.Count("Id")) ); int count = (int)criteria.UniqueResult(); if (count > 0) { throw new EasyJob.Tools.Exceptions.RentOrderIsExistsException();//领用主单号已经存在 } }
public async Task <IActionResult> Return(int id) { RentOrder selectedRent = _rentOrders.GetObjectById(id).Result; if (selectedRent.CurrentRentedDay == DateTime.Today) { SetTempData("Error", "You can't return a game on the same day you rent it!"); return(RedirectToAction("DisplayRents", "Rent")); } Game returnedGame = _games.GetAllObjects().Result.Where(g => g.Name.Equals(selectedRent.GameRented)).FirstOrDefault(); var user = _users.GetAllObjects().Result.FirstOrDefault(u => u.UserName.Equals(HttpContext.Session.GetString("Username"))); // DDD operations (kind of) returnedGame = returnedGame.ReturnGame(); selectedRent = await selectedRent.InterruptRentAsync(_broker); user = user.RemoveRent(selectedRent); // database operations await _users.Update(user); await _rentOrders.Delete(selectedRent.Id); HttpContext.Session.SetString("Balance", user.Balance.ToString()); return(RedirectToAction("DisplayRents", "Rent")); }
public IHttpActionResult Delete(string username, int carNumber, DateTime start) { var RetrievedOrder = GetOrdersFilter.RetrieveOrder(username, carNumber, start); RentOrder.deleteFrom_db(RetrievedOrder.UserID, RetrievedOrder.VehiclesID, RetrievedOrder.StartDate); return(Ok()); }
static void Main(string[] args) { /* * we can only access "public" class members - * because "Customer" is a class from external DLL * * we can not access class member with the following: * - private * - internal * - protected internal * - protected * */ Customer customer = new Customer(); customer.FullName = "Bob"; RentOrder carOrder = new RentOrder(); carOrder.RentItem = new Car { Color = "Red" }; carOrder.DayOfRenting = 4; carOrder.CustomerInfo = customer; Console.WriteLine(carOrder); }
public async Task <IActionResult> Return(int id) { RentOrder selectedRent = _rentOrders.GetObjectById(id).Result; if (selectedRent.CurrentRentedDay == DateTime.Today) { TempData["Error"] = "You can't return a game on the same day you rent it!"; return(RedirectToAction("DisplayRents", "Rent")); } Game returnedGame = _games.GetAllObjects().Result.Where(g => g.Name.Equals(selectedRent.GameRented)).FirstOrDefault(); returnedGame.Quantity += 1; var user = _users.GetAllObjects().Result.FirstOrDefault(u => u.UserName.Equals(HttpContext.Session.GetString("Username"))); var selectedRentJson = JsonConvert.SerializeObject(selectedRent, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore } ); await _broker.SendMessage(selectedRentJson, "ReturnToWorker"); var receivedRent = await _broker.ReceiveMessage("ReturnToWeb"); user.Balance += receivedRent.TotalPayment; await _users.Update(user); await _rentOrders.Delete(selectedRent.Id); HttpContext.Session.SetString("Balance", user.Balance.ToString()); return(RedirectToAction("DisplayRents", "Rent")); }
public HttpResponseMessage RentCar(RentOrder arent) { int result = 0; try { dbContext.RentOrder.Add(arent); dbContext.SaveChanges(); using (StreamWriter file = new StreamWriter(@"C:\Intel\filewebapi.txt", true)) { file.WriteLine("Customer Id: " + arent.customer_id); file.WriteLine("Customer Name: " + arent.customer_name); file.WriteLine("Car Id: " + arent.car_id); file.WriteLine("Pick Up Date: " + arent.pick_up_date); file.WriteLine("Drop Off Date: " + arent.drop_off_date); file.WriteLine("//===============================//"); } result = 1; } catch (Exception e) { Console.WriteLine(e); result = 0; } return(Request.CreateResponse(HttpStatusCode.OK, result)); }
internal static BOLOrder updateOrder(OrderModel order) { try { return(RentOrder.SaveUpDataTo_db(RetrieveOrder(order), order.oldStart)); } catch { return(null); } }
public ActionResult Update(RentOrder rentOrder) { return(Json(rentOrderOper.Update(rentOrder, delegate(object sender, ISession session) { //判断是否存在领用主单号 IsExistsCode(session, rentOrder); } ))); }
public IHttpActionResult returnCar([FromBody] OrderModel order) { BOLOrder RetrievedOrder = GetOrdersFilter.RetrieveOrder(order); BOLOrder getOrder = RentOrder.UpDataTo_db(RetrievedOrder); var a = (getOrder.ActualReturnDate.Value - getOrder.StartDate.Date).TotalDays; int CarsTypeID = RentCarsInVehicleInventory.GetCarsTypeID(getOrder.VehiclesID); decimal carPriceForDay = RentTypeOfCars.getDaylyCost(CarsTypeID); return(Ok(carPriceForDay)); }
public void RentInsuficientBalance() { //arrange var httpContext = new DefaultHttpContext(); var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>()); tempData["Funds"] = ""; var controller = new RentController(_rents.Object, _games.Object, _broker, _users.Object) { TempData = tempData }; var testUser = new User { Id = 1, UserName = "******", Balance = 10, RentOrders = new List <RentOrder>() }; var testRent = new RentOrder { Id = 1, GameRented = "God of War", user = testUser, RentPeriod = 5 }; var testGame = new Game { Id = 1, Name = "God of War", Quantity = 5, }; _gameList.Add(testGame); RentViewModel rentView = new RentViewModel { Rent = testRent, RentedGame = testRent.GameRented }; // inject http session variables _mockSession["Balance"] = testUser.Balance; _mockSession["Username"] = testUser.UserName; _mockHttpContext.Setup(s => s.Session).Returns(_mockSession); controller.ControllerContext.HttpContext = _mockHttpContext.Object; _usersList.Add(testUser); // act var result = controller.Rent(rentView); //assert Assert.AreEqual(0, testUser.RentOrders.Count); Assert.AreEqual(0, _rentList.Count); Assert.AreEqual("Not enough funds, payment is 15$!", tempData["Funds"]); var viewResult = (ViewResult)result.Result; Assert.AreEqual("Index", viewResult.ViewName); }
public HttpResponseMessage AvailableDate(RentOrder rnt) { int result = 1; //RentOrder usrid = null; //RentOrder dateCheck = null; try { //usrid = dbContext.RentOrder.Where(x => x.car_id == rnt.car_id && (x.pick_up_date >= rnt.pick_up_date && x.drop_off_date <= rnt.drop_off_date)).SingleOrDefault(); var start = rnt.pick_up_date.Value.Date; var end = rnt.drop_off_date.Value.Date; foreach (var v in dbContext.RentOrder) { if ((v.car_id == rnt.car_id) && ((v.pick_up_date.Value.Date <= start) && (v.drop_off_date.Value.Date >= end))) { result = 0; break; } if (start < DateTime.Now.AddDays(-1) || end < DateTime.Now.AddDays(-1)) { result = 2; break; } if (end < start) { result = 3; break; } } //dateCheck = (from x in dbContext.RentOrder // where ((x.car_id == rnt.car_id) && // (x.pick_up_date.Value.Date >= start && x.drop_off_date.Value.Date <= end)) // select x).SingleOrDefault(); // if (dateCheck != null) // { result = 0; } // else // { result = 1; } } catch (Exception e) { //Console.WriteLine(e); result = 1; } return(Request.CreateResponse(HttpStatusCode.OK, result)); }
public async Task DisplayRents() { //Arrange _broker = new MessageBroker(new ConnectionFactory() { Uri = new Uri("amqp://*****:*****@reindeer.rmq.cloudamqp.com/zswjrhxx") }.CreateConnection()); var controller = new RentController(_rents.Object, _games.Object, _broker, _users.Object); var testUser = new User { Id = 1, UserName = "******", Balance = 120, RentOrders = new List <RentOrder>() }; var testGame = new Game { Id = 1, Name = "God of War", Quantity = 4 }; var testRent = new RentOrder { Id = 1, GameRented = "God of War", user = testUser, CurrentRentedDay = DateTime.Today, RentPeriod = 5 }; _mockSession["Balance"] = testUser.Balance; _mockSession["Username"] = testUser.UserName; _mockHttpContext.Setup(s => s.Session).Returns(_mockSession); controller.ControllerContext.HttpContext = _mockHttpContext.Object; _gameList.Add(testGame); _usersList.Add(testUser); RentViewModel rentView = new RentViewModel { Rent = testRent, RentedGame = testGame.Name }; //Act var firstRent = controller.Rent(rentView); //Assert Assert.AreEqual(1, _rentList.Count); Assert.AreEqual(1, testUser.RentOrders.Count); //verify quantity for the games after rent Assert.AreEqual(3, testGame.Quantity); // verify expiring dates Assert.AreEqual(DateTime.Today.AddDays(5), testRent.ExpiringDate); // verify user balance Assert.AreEqual(105, testUser.Balance); _rents.Verify(m => m.GetAllObjects(), Times.Never); }
/// <summary> /// Creates new rentOrder record /// </summary> /// <param name="rentOrder">new RentOrder entity</param> public void CreateRent(RentOrder rentOrder) { using (var connection = new SqlConnection(_connectionString)) { connection.Open(); using (var command = new SqlCommand() { CommandType = CommandType.Text, Connection = connection, CommandText = CreateRentText }) { command.Parameters.Add(new SqlParameter("@idTool", SqlDbType.Int) { Value = rentOrder.IdTool }); command.Parameters.Add(new SqlParameter("@IdCustomer", SqlDbType.Int) { Value = rentOrder.IdCustomer }); command.Parameters.Add(new SqlParameter("@IdOperator", SqlDbType.Int) { Value = rentOrder.IdOperator }); command.Parameters.Add(new SqlParameter("@DateStart", SqlDbType.DateTime) { Value = rentOrder.DateStart }); command.Parameters.Add(new SqlParameter("@DateEnd", SqlDbType.DateTime) { Value = rentOrder.DateEnd }); command.Parameters.Add(new SqlParameter("@RentStatus", SqlDbType.Int) { Value = rentOrder.RentStatus }); command.Parameters.Add(new SqlParameter("@RentPrice", SqlDbType.Decimal) { Value = rentOrder.RentPrice }); command.ExecuteNonQuery(); } } }
public void ExtendPeriodFailed() { // arrange var httpContext = new DefaultHttpContext(); var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>()); tempData["Error"] = ""; var controller = new RentController(_rents.Object, _games.Object, _broker, _users.Object) { TempData = tempData }; var testUser = new User { Id = 1, UserName = "******", Balance = 10, RentOrders = new List <RentOrder>() }; var testRent = new RentOrder { Id = 1, GameRented = "God of War", user = testUser, CurrentRentedDay = DateTime.Today, ExpiringDate = DateTime.Today.AddDays(5), RentPeriod = 5 }; testUser.RentOrders.Add(testRent); // inject http session variables _mockSession["Balance"] = testUser.Balance; _mockSession["Username"] = testUser.UserName; _mockHttpContext.Setup(s => s.Session).Returns(_mockSession); controller.ControllerContext.HttpContext = _mockHttpContext.Object; _usersList.Add(testUser); _rentList.Add(testRent); // act // user initially had 115 balance var result = controller.Extend(testRent.Id, 5); //assert Assert.AreEqual(DateTime.Today.AddDays(5), testRent.ExpiringDate); Assert.AreEqual(10, testUser.Balance); var viewResult = (RedirectToActionResult)result.Result; Assert.AreEqual("DisplayRents", viewResult.ActionName); Assert.AreEqual("You don't have enough money to extend it's rent duartion", tempData["Error"]); }
public static OrderModel PostOrders(OrderModel Order) { try { BOLOrder newOrder = new BOLOrder(); newOrder.StartDate = Order.StartDate; newOrder.ReturnDate = Order.ReturnDate; newOrder.UserID = RentUser.GetUserid(Order.UserName); newOrder.VehiclesID = RentCarsInVehicleInventory.GetVehicleid(Order.VehicleNumber); newOrder.ActualReturnDate = Order.ActualReturnDate; if (RentOrder.AddBranchTo_db(newOrder)) { return(Order); } return(null); } catch { return(null); } }
public void ReturnGame() { // arrange _broker = new MessageBroker(new ConnectionFactory() { Uri = new Uri("amqp://*****:*****@reindeer.rmq.cloudamqp.com/zswjrhxx") }.CreateConnection()); var controller = new RentController(_rents.Object, _games.Object, _broker, _users.Object); var testUser = new User { Id = 1, UserName = "******", Balance = 100, RentOrders = new List <RentOrder>() }; var testRent = new RentOrder { Id = 1, GameRented = "God of War", user = testUser, CurrentRentedDay = DateTime.Today.AddDays(-3) , ExpiringDate = DateTime.Today.AddDays(2), RentPeriod = 5 }; testUser.RentOrders.Add(testRent); var testGame = new Game { Id = 1, Name = "God of War", Quantity = 4 }; _rentList.Add(testRent); _usersList.Add(testUser); _gameList.Add(testGame); _mockSession["Balance"] = testUser.Balance; _mockSession["Username"] = testUser.UserName; _mockHttpContext.Setup(s => s.Session).Returns(_mockSession); controller.ControllerContext.HttpContext = _mockHttpContext.Object; //act var result = controller.Return(testRent.Id); Console.WriteLine(testUser.RentOrders.ToList().ToString()); //assert var viewResult = (RedirectToActionResult)result.Result; Assert.AreEqual("DisplayRents", viewResult.ActionName); Assert.AreEqual(0, testUser.RentOrders.Count); // rent has been removed Assert.AreEqual(91, testUser.Balance); Assert.AreEqual(5, testGame.Quantity); }
public void ExtendGamePeriod() { // arrange _broker = new MessageBroker(new ConnectionFactory() { Uri = new Uri("amqp://*****:*****@reindeer.rmq.cloudamqp.com/zswjrhxx") }.CreateConnection()); var controller = new RentController(_rents.Object, _games.Object, _broker, _users.Object); var testUser = new User { Id = 1, UserName = "******", Balance = 100, RentOrders = new List <RentOrder>() }; var testRent = new RentOrder { Id = 1, GameRented = "God of War", user = testUser, CurrentRentedDay = DateTime.Today, ExpiringDate = DateTime.Today.AddDays(5), RentPeriod = 5 }; testUser.RentOrders.Add(testRent); // inject http session variables _mockSession["Balance"] = testUser.Balance; _mockSession["Username"] = testUser.UserName; _mockHttpContext.Setup(s => s.Session).Returns(_mockSession); controller.ControllerContext.HttpContext = _mockHttpContext.Object; _usersList.Add(testUser); _rentList.Add(testRent); // act // user initially had 115 balance var result = controller.Extend(testRent.Id, 5); //assert Assert.AreEqual(DateTime.Today.AddDays(10), testRent.ExpiringDate); Assert.AreEqual(85, testUser.Balance); var viewResult = (RedirectToActionResult)result.Result; Assert.AreEqual("DisplayRents", viewResult.ActionName); }
public static List <OrderModel> GetUserOrdesrByUserName(string userName) { try { List <OrderModel> orderList = new List <OrderModel>(); List <BOLOrder> orders = RentOrder.GetUsersOrdesrByUserName(userName); foreach (var item in orders) { orderList.Add(new OrderModel { StartDate = item.StartDate, ReturnDate = item.ReturnDate, UserName = userName, VehicleNumber = RentCarsInVehicleInventory.GetVehicleNumber(item.VehiclesID), ActualReturnDate = item.ActualReturnDate }); } return(orderList); } catch { return(null); } }
public ActionResult SubmitForm(RentOrder rentalOrderEntity, int?keyValue) { if (!keyValue.HasValue) { rentalOrderEntity.F_Tenant = CurrentUser.UserName; rentalOrderEntity.F_UserId = CurrentUser.UserId; rentalOrderEntity.F_CreatorTime = DateTime.Now; rentalOrderEntity.F_CreatorUserId = CurrentUser.UserId; rentalOrderEntity.F_LastModifyTime = DateTime.Now; rentalOrderEntity.F_LastModifyUserId = CurrentUser.UserId; rentalOrderEntity.F_OrderID = string.Format("{0:yyyyMMddHHmmssffff}", DateTime.Now); } else { rentalOrderEntity.F_LastModifyTime = DateTime.Now; rentalOrderEntity.F_LastModifyUserId = CurrentUser.UserId; } rentalApp.SubmitForm(rentalOrderEntity, keyValue); return(Success("操作成功。")); }
public async Task <IActionResult> Rent(RentOrder rent) { rent.CurrentRentedDay = DateTime.Today; rent.GameRented = gameRented.Name; var rentJson = JsonConvert.SerializeObject(rent); await _broker.SendMessage(rentJson, "RentToWorker"); var rentReceived = _broker.ReceiveMessage("WorkerToRent").Result; rent.ExpiringDate = rentReceived.ExpiringDate; rent.TotalPayment = rentReceived.TotalPayment; var user = _users.GetAllObjects().Result.FirstOrDefault(u => u.UserName.Equals(HttpContext.Session.GetString("Username"))); user.RentOrders = new Collection <RentOrder>(); if (user.Balance > rent.TotalPayment && gameRented.Quantity >= 1) { user.Balance -= rent.TotalPayment; // update game quantity gameRented.Quantity -= 1; await _rentOrders.Insert(rent); user.RentOrders.Add(rent); await _games.Update(gameRented); await _users.Update(user); HttpContext.Session.SetString("Balance", Convert.ToString(user.Balance)); return(RedirectToAction("Index", "Game")); } else { TempData["Funds"] = $"Not enough funds, payment is {rent.TotalPayment}$!"; return(View("Index")); } }
public void ReturnGameSameDayFail() { //arrange var httpContext = new DefaultHttpContext(); var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>()); tempData["Error"] = ""; var controller = new RentController(_rents.Object, _games.Object, _broker, _users.Object) { TempData = tempData }; var testUser = new User { Id = 1, UserName = "******", Balance = 10, RentOrders = new List <RentOrder>() }; var testRent = new RentOrder { Id = 1, GameRented = "God of War", user = testUser, RentPeriod = 5, CurrentRentedDay = DateTime.Today, TotalPayment = 15f }; _rentList.Add(testRent); _usersList.Add(testUser); //act var result = controller.Return(testRent.Id); //assert Assert.AreEqual("You can't return a game on the same day you rent it!", tempData["Error"]); var redirectResult = (RedirectToActionResult)result.Result; Assert.AreEqual("DisplayRents", redirectResult.ActionName); Assert.AreEqual(5, testRent.RentPeriod); Assert.AreEqual(15f, testRent.TotalPayment); }
public ActionResult PlaceOrderForm(RentOrder rentOrderEntity, int?keyValue) { return(Success("操作成功。")); }
public void UpdateForm(RentOrder userEntity) { service.Update(userEntity); }
public void SubmitForm(RentOrder salverEntity, int?keyValue) { service.SubmitForm(salverEntity, keyValue); }
public RentOperations(RentOrder rentOrder) { _rentOrder = rentOrder; }
public ActionResult Del(RentOrder rentOrder) { return(Json(rentOrderOper.Del(rentOrder))); }
public IHttpActionResult GetOrderByDate(DateTime start, DateTime end) { List <int> value = RentOrder.GetListOrderByDate(start, end); return(Ok(value)); }
public Task <RentOrder> AddOrUpdate([FromBody] RentOrder entity) { return(_crudService.AddOrUpdate(entity)); }