private RentRequestResponse RentCars(IEnumerable <Car> cars, RentRequest request) { RentRequestResponse response = new RentRequestResponse(); foreach (Car car in cars) { RentCar(car, request.CompanyId.Value, request.Days); request.Company.BonusPoints += car.BonusPointsPerRental; response.CarResults.Add(new RentCarResponse() { Status = RentCarStatus.Succeded, Message = $"CarId {car.Id} rented successfully by companyId {request.CompanyId}.", RentPrice = car.PricePerDay * request.Days }); } response.Status = RentCarResponseStatus.Succeded; request.Status = RentCarResponseStatus.Succeded; request.StatusMessage = "Rental request Succeded!"; request.Company.UpdatedDate = DateTime.Now; _unitOfWork.Companies.Update(request.Company); return(response); }
public ActionResult AddRent(RentViewModel rentModel) { var planes = PlaneRequests.GetAvailablePlanes(new PlaneViewModel { StartCountPlaces = rentModel.StartCountPlaces, EndCountPlaces = rentModel.EndCountPlaces, CountPlanes = rentModel.CountPlanes }); rentModel.Planes = new List <RentPlane>(rentModel.CountPlanes); rentModel.CompanyId = CurrentUser.User.UserId; planes.ForEach(x => rentModel.Planes.Add(new RentPlane { PlaneId = x.PlaneId })); var isSuccess = RentRequest.AddRent(rentModel); if (!isSuccess || !ModelState.IsValid) { return(View("AddRent")); } return(RedirectToAction("CompanyRents", "Rents")); }
public IEnumerator callContract(ContractName contractName, object arg0, object arg1) { var address = ConvertHexStringToByteArray("cf2cc8dcffc74cfe0a079fdbb16c0d6f78290527bfbcef935553d50746ecc00f"); switch (contractName) { case ContractName.Win: var winReq = new WinRequest(address); yield return(winReq.Win((byte[])arg0, (string)arg1)); printProcessResult(winReq); //log break; case ContractName.Rent: var rentReq = new RentRequest(address); yield return(rentReq.Rent((string)arg0, (int)arg1)); printProcessResult(rentReq); break; case ContractName.CreatePatent: var patentReq = new NewVirusRequest(address); yield return(patentReq.NewVirus((string)arg0, (int)arg1)); printProcessResult(patentReq); break; } }
public async Task <IActionResult> Put([FromBody] RentRequest request) { var productId = Guid.Parse(request.ProductId); var clientId = Guid.Parse(request.ClientId); var status = StatusHelper.Parse(request.Details?.Status); var until = request.Details?.Until != null?DateHelper.Parse(request.Details.Until) : (DateTime?)null; using var ctx = serviceProvider.GetService <IVideoclubDbContext>(); var rent = await GetRent(ctx, productId, clientId).ConfigureAwait(false); var isNew = rent is null; if (isNew) { rent = new Rent(productId, clientId, status, until); ctx.Rents.Add(rent); } else { rent.ChangeStatus(status, until); } await ctx.SaveChangesAsync().ConfigureAwait(false); var result = mapper.Map <RentResponse>(rent); return(isNew ? Created(UrlUtls.URI(this, nameof(RentController), nameof(RentController.Get), new { productId, clientId, version = "1.0" }), result) : (IActionResult)Ok(result)); }
public async Task <RentRequestResponse> CreateRentAsync(RentRequest request) { RentRequestResponse response = new RentRequestResponse(); IEnumerable <Car> cars = await _fleetService.GetAsync(x => request.CarIds.Contains(x.Id)); IEnumerable <Car> alreadyRentedCars = cars.Where(x => x.Rented); request.Company = await _unitOfWork.Companies.GetByIDAsync(request.CompanyId); if (request.Company == null) { response.Status = RentCarResponseStatus.Failed; response.Message = $"Company with Id {request.CompanyId} does not exists."; return(response); } try { if (alreadyRentedCars.Any()) { request.Status = RentCarResponseStatus.Failed; request.StatusMessage = $"Some of the cars are already rented. {Environment.NewLine} {string.Join(',', alreadyRentedCars.Select(x => x.Id + Environment.NewLine))}"; response.Status = RentCarResponseStatus.Failed; response.Message = $"Cars provided cannot be rented. The following cars are already rented, remove them from the request: {Environment.NewLine} {string.Join(Environment.NewLine, alreadyRentedCars.Select(x => x.Id + Environment.NewLine))}"; } else if (cars.Any()) { response = RentCars(cars, request); } else { request.Status = RentCarResponseStatus.Failed; request.StatusMessage = $"0 carIds provided."; response.Status = RentCarResponseStatus.Failed; response.Message = $"Please provide atleast one(1) carId in the rentalRequest."; } } catch (Exception ex) { request.Status = RentCarResponseStatus.Failed; request.StatusMessage = $"Some error ocurred while processing the rental request.Rollback executed {Environment.NewLine}{ex.ToString()}"; response.Status = RentCarResponseStatus.Failed; response.Message = $"Some error ocurred while processing the rental request {ex.Message}"; await _unitOfWork.RentalRequests.InsertAsync(request); _unitOfWork.Rollback(); } finally { await _unitOfWork.RentalRequests.InsertAsync(request); _unitOfWork.Commit(); } return(response); }
public ActionResult CompleteRent(RentViewModel rent) { var isSuccess = RentRequest.CompleteRent(rent); if (!isSuccess || !ModelState.IsValid) { return(View("CompleteRent")); } return(RedirectToAction("CompanyRents", "Rents")); }
public ActionResult DeleteConfirmed(int id) { RentRequest rentrequest = db.RentRequests.Find(id); if (rentrequest != null) { rentrequest.IsDelete = true; db.Entry(rentrequest).State = EntityState.Modified; } db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "Id,FromPlace,ToPlace,StartDateTime,EndDateTime,AirCondition,VehicleQty,Description,CustomerId,VehicleTypeId")] RentRequestViewModel rentrequestviewModel) { if (ModelState.IsValid) { RentRequest rentrequest = Mapper.Map <RentRequest>(rentrequestviewModel); db.Entry(rentrequest).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.CustomerId = new SelectList(db.Customers, "Id", "Name", rentrequestviewModel.CustomerId); ViewBag.VehicleTypeId = new SelectList(db.VehicleTypes, "Id", "Name", rentrequestviewModel.VehicleTypeId); return(View(rentrequestviewModel)); }
public async Task <IActionResult> Update(RentRequest request, string id) { if (request == null || string.IsNullOrEmpty(id)) { return(BadRequest("??")); } var result = await _rent.Update(request, id); if (result == 0) { return(BadRequest("??")); } return(Ok($"Update {id} successed")); }
public async Task <int> Update(RentRequest request, string id) { if (ID.Contains(id)) { var result = _context.Rents.Find(id); if (result != null) { result.idMotel = request.idMotel; result.IDcustomer = request.IDcustomer; result.Start = request.Start; result.End = request.End; _context.Rents.Update(result); return(await _context.SaveChangesAsync()); } } return(0); }
// GET: /RentRequest/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } RentRequest rentrequest = db.RentRequests.Include(c => c.VehicleType).Include(c => c.Customer).Include(c => c.RentAssigns).SingleOrDefault(d => d.Id == id); if (rentrequest == null) { return(HttpNotFound()); } RentRequestViewModel rentrequestViewMOdel = Mapper.Map <RentRequestViewModel>(rentrequest); return(View(rentrequestViewMOdel)); }
public async Task <IActionResult> Update([FromRoute] Guid rentId, [FromBody] RentRequest request) { var rent = await _rentsService.GetByIdAsync(rentId); rent.ProductionInformationId = request.ProductionInformationId; rent.StartDate = request.StartDate; rent.EndDate = request.EndDate; rent.InsurancePrice = request.InsurancePrice; rent.RentPrice = request.RentPrice; var updated = await _rentsService.UpdateAsync(rent); if (updated) { return(Ok(RentToRentResponse(rent))); } return(NotFound()); }
public ActionResult Create([Bind(Include = "Id,FromPlace,ToPlace,StartDateTime,EndDateTime,AirCondition,VehicleQty,Description,CustomerId,VehicleTypeId")] RentRequestViewModel rentRequestViewModel) { if (ModelState.IsValid) { var loginCustomerId = User.Identity.GetUserId(); var customer = db.Customers.FirstOrDefault(c => c.UserId == loginCustomerId); if (customer == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } RentRequest rentRequest = Mapper.Map <RentRequest>(rentRequestViewModel); rentRequest.CustomerId = customer.Id; db.RentRequests.Add(rentRequest); var isSave = db.SaveChanges() > 0; if (isSave) { Notification notification = new Notification(); notification.Status = "New"; notification.Details = "New rent request "; notification.NotificatinDateTime = DateTime.Now; notification.CustomerId = rentRequest.CustomerId; notification.RentRequestId = rentRequest.Id; db.Notifications.Add(notification); db.SaveChanges(); RentRequestHistory rentRequestHistory = new RentRequestHistory(); rentRequestHistory.Status = "New"; rentRequestHistory.Text = "New rent request"; rentRequestHistory.HistoryDateTime = DateTime.Now; rentRequestHistory.RentRequestId = rentRequest.Id; db.RentRequestHistorys.Add(rentRequestHistory); db.SaveChanges(); } return(RedirectToAction("Index")); } ViewBag.CustomerId = new SelectList(db.Customers, "Id", "Name", rentRequestViewModel.CustomerId); ViewBag.VehicleTypeId = new SelectList(db.VehicleTypes, "Id", "Name", rentRequestViewModel.VehicleTypeId); return(View(rentRequestViewModel)); }
// GET: /RentRequest/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } RentRequest rentrequest = db.RentRequests.Find(id); if (rentrequest == null) { return(HttpNotFound()); } RentRequestViewModel rentRequestViewModel = Mapper.Map <RentRequestViewModel>(rentrequest); ViewBag.CustomerId = new SelectList(db.Customers, "Id", "Name", rentrequest.CustomerId); ViewBag.VehicleTypeId = new SelectList(db.VehicleTypes, "Id", "Name", rentrequest.VehicleTypeId); return(View(rentRequestViewModel)); }
// need check public RentRequest GetById(string id) { if (ID.Contains(id)) { var result = _context.Rents.Find(id); if (result != null) { var data = new RentRequest() { //End = result.End.Value., IDcustomer = result.IDcustomer, idMotel = result.idMotel, IdRent = result.IdRent, Start = result.Start }; return(data); } } return(null); }
public async Task <IActionResult> Create([FromBody] RentRequest rentRequest) { var rent = new Rent { ProductionInformationId = rentRequest.ProductionInformationId, StartDate = rentRequest.StartDate, EndDate = rentRequest.EndDate, InsurancePrice = rentRequest.InsurancePrice, RentPrice = rentRequest.RentPrice }; await _rentsService.CreateAsync(rent); var baseurl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}"; var locationuri = baseurl + "/" + ApiRoutes.Rents.Get.Replace("{rentId}", rent.Id.ToString()); var response = RentToRentResponse(rent); return(Created(locationuri, response)); }
public ActionResult RentDetails(int rentId) { var rent = RentRequest.GetRentDetailsById(rentId); return(View(rent)); }
public ActionResult CompanyRents() { var rents = RentRequest.GetRentsOfCompany(CurrentUser.User.UserId); return(View(rents)); }