public static int CreateAccountsForOwnersWithoutAccount(PortugalVillasContext db) { //get all ownersIDs var owners = db.PropertyOwners.ToList(); //checks they all have an account is accounts var accounts = db.PropertyOwnerAccounts.ToList(); List <PropertyOwnerAccount> accountsToCreate = new List <PropertyOwnerAccount>(); foreach (var propertyOwner in owners) { var account = accounts.Where(x => x.PropertyOwnerID == propertyOwner.PropertyOwnerID).FirstOrDefault(); if (account == null) { db.PropertyOwnerAccounts.Add(new PropertyOwnerAccount { AccountBalance = 0.00M, PropertyOwnerID = propertyOwner.PropertyOwnerID }); } } return(db.SaveChanges()); }
//insert a booking private static bool CreateBooking(Booking aBooking) { PortugalVillasContext _db = new PortugalVillasContext(); _db.Bookings.Add(aBooking); if (_db.SaveChanges() > 0) { return(true); } ; return(false); }
public ActionResult Create(PropertyTown propertytown) { if (ModelState.IsValid) { using (var _db = new PortugalVillasContext()) { _db.PropertyTowns.Add(propertytown); _db.SaveChanges(); ViewBag.PropertyRegionID = new SelectList(db.PropertyRegions, "PropertyRegionID", "RegionName", propertytown.PropertyRegionID); return RedirectToAction("Edit", new {id = propertytown.PropertyTownID}); } } ViewBag.PropertyRegionID = new SelectList(db.PropertyRegions, "PropertyRegionID", "RegionName", propertytown.PropertyRegionID); return View(propertytown); }
public CustomerBankDetail CreateCustomerBankDetail(CustomerBankDetail customerBankDetail, Customer customer, PortugalVillasContext db) { customer.CustomerID = customer.CustomerID; db.CustomerBankDetails.Add(customerBankDetail); //whack it in the session if (db.SaveChanges() > 0) { //customer now has an ID if the save has worked } return customerBankDetail; }
public BookingExtraSelection CreateBookingExtraSelection(BookingExtraSelection bookingExtraSelection, BookingExtra extra, Customer theCustomer, PortugalVillasContext db) { bookingExtraSelection.BESCurrencyConversionSymbol = theCustomer.PreferredCurrencySymbol; bookingExtraSelection.BESPreferredCurrency = theCustomer.PreferredCurrency; var cc = new CurrencyConverterController(); long? currentBookingTypeID = bookingExtraSelection.GetBookingExtraTypeIDFromBookingExtraSelection(); bookingExtraSelection.CustomerID = theCustomer.CustomerID; //the price already needs to be assigned bookingExtraSelection.BESPrice = BookingExtraSelection.GetBookingExtraPrice(bookingExtraSelection, db); bookingExtraSelection.BESExtraServicesPrice = BookingExtraSelection.CalculateBookingExtraAdditionalCostsAndAssignToThisBooking(bookingExtraSelection, db); bookingExtraSelection.BESTotalServicesPrice = BookingExtraSelection.GetBookingExtraTotalServicesPrice(bookingExtraSelection, db); bookingExtraSelection.WhenCreated = DateTime.Now; //calc number of guests if (bookingExtraSelection.NumberOfGuests == null || bookingExtraSelection.NumberOfGuests == 0) { bookingExtraSelection.CalculateNoOfGuests(); } //if not UK need to do currency conversion if (theCustomer.Country.ToLower() != "united kingdom" && ConfigurationManager.AppSettings["defaultCurrency"] == "GBP") { var baseCurrency = "GBP"; var newCurrency = "EUR"; var exchangeRateFromDB = db.CurrencyExchanges.First(x => x.CurrencyExchangeName == "GBP-EUR"); try { bookingExtraSelection.BESPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)bookingExtraSelection.BESPrice); bookingExtraSelection.BESCurrencyConversionPrice = bookingExtraSelection.BESPrice; bookingExtraSelection.BESExtraServicesPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)bookingExtraSelection.BESExtraServicesPrice); bookingExtraSelection.BESTotalServicesPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)bookingExtraSelection.BESTotalServicesPrice); //set exchange rate bookingExtraSelection.BESCurrencyConversionSymbol = exchangeRateFromDB.CurrencyExchangeSymbol; bookingExtraSelection.BESCurrencyExchangeRate = exchangeRateFromDB.CurrencyExchangeRate; bookingExtraSelection.BESPreferredCurrency = "EUR"; } catch (Exception) { throw; } } else if (ConfigurationManager.AppSettings["defaultCurrency"] == "USD") { var baseCurrency = "GBP"; var newCurrency = "USD"; var exchangeRateFromDB = db.CurrencyExchanges.First(x => x.CurrencyExchangeName == "GBP-USD"); try { bookingExtraSelection.BESPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)bookingExtraSelection.BESPrice); bookingExtraSelection.BESCurrencyConversionPrice = bookingExtraSelection.BESPrice; bookingExtraSelection.BESExtraServicesPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)bookingExtraSelection.BESExtraServicesPrice); bookingExtraSelection.BESTotalServicesPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)bookingExtraSelection.BESTotalServicesPrice); //set exchange rate bookingExtraSelection.BESCurrencyConversionSymbol = exchangeRateFromDB.CurrencyExchangeSymbol; bookingExtraSelection.BESCurrencyExchangeRate = exchangeRateFromDB.CurrencyExchangeRate; bookingExtraSelection.BESPreferredCurrency = "USD"; } catch (Exception) { throw; } } //generate reference var refGenService = new ReferenceGenerationService(); bookingExtraSelection.BookingExtraPRCReference = refGenService.GenerateBESReference(bookingExtraSelection, extra); if (ModelState.IsValid) { db.BookingExtraSelections.Add(bookingExtraSelection); if (db.SaveChanges() > 0) { //generate reference with ID bookingExtraSelection.BookingExtraPRCReference = refGenService.GenerateBESReference(bookingExtraSelection, extra); db.Entry(bookingExtraSelection).State = EntityState.Modified; db.SaveChanges(); return bookingExtraSelection; } } throw new Exception(); }
public ActionResult Edit(PropertyRegion propertyregion) { if (ModelState.IsValid) { using (var _db = new PortugalVillasContext()) { _db.PropertyRegions.Attach(propertyregion); _db.Entry(propertyregion).State = EntityState.Modified; _db.SaveChanges(); return RedirectToAction("Edit", new { id = propertyregion.PropertyRegionID }); } } return View(propertyregion); }
public ActionResult TestBookingSteps(Customer cus, CustomerBankDetail bank, List<Booking> bookings = null, List<BookingExtraSelection> bookingExtraSelections = null, List<BookingParticipant> bookingParticipants = null) { Session["prc_customer"] = new Customer(); using (var db = new PortugalVillasContext()) { var eventService = new EventController(); var bookingRepo = new FinalBookingDetailGatheringController(); //CUSTOMER //does customer have ID? if not create new Customer if (cus.CustomerID.Equals(0)) { bookingRepo.CreateCustomer(cus, db); } else { //update customer with new details /*cus.BookingExtraSelections = null; cus.Bookings = null; cus.CreationDate = cus.CreationDate; db.Customers.Attach(cus); db.Entry(cus).State = EntityState.Modified; try { db.SaveChanges(); } catch (OptimisticConcurrencyException) { } */ } //BANK DETAIL if (bank.CustomerBankDetailID.Equals(0)) { bookingRepo.CreateCustomerBankDetail(bank, cus, db); } else { //update customer with new details db.CustomerBankDetails.Attach(bank); db.Entry(bank).State = EntityState.Modified; db.SaveChanges(); } ////////////////// //BOOKING //create a parent booking thingy and link it BookingParentContainer parentContainer = new BookingParentContainer(); parentContainer.CustomerID = cus.CustomerID; parentContainer = bookingRepo.CreateBookingParentContainer(parentContainer, db); foreach (var booking in bookings) { //link to parent booking booking.BookingParentContainerID = parentContainer.BookingParentContainerID; //fill em out and push them to the DB /* bookingRepo.CreateBooking(booking, cus, db);*/ var participantsThisRound = bookingParticipants.Where(x => x.StepNo.Equals(bookingParticipants.Min(y => y.StepNo))).ToList(); //create the participants foreach (var bookingParticipant in participantsThisRound) { if (bookingParticipant.BookingParticipantFirstName != "" && bookingParticipant.BookingParticipantFirstName != null && bookingParticipant.BookingParticipantLastName != "" && bookingParticipant.BookingParticipantLastName != null) { bookingRepo.CreateBookingParticipant(participantsThisRound, booking, db); } } foreach (var bookingParticipant in participantsThisRound) { bookingParticipants.Remove(bookingParticipant); } //now check which booking form to send depending on location string EventTypeID; if (cus.Country.ToUpper() == "GB") { EventTypeID = "17"; } else { EventTypeID = "20"; } //email all docs var form = new FormCollection(); form.Add("BookingID", booking.BookingID.ToString()); form.Add("EventTypeID", EventTypeID); eventService.AddBookingEvent(form); //email the user of the system } foreach (var bes in bookingExtraSelections) { //link to parent booking } //wipe cars = booking and bes Session["Cart_PropertyBookings"] = null; Session["Cart_ExtraBookings"] = null; return RedirectToAction("EndOfBookingProcess", "EndOfProcess"); } }
public void TestFullDocumentGenerateStack() { var db = new PortugalVillasContext(); //Test WITH PARENT //TEST WITH BOOKING Booking booking = db.Bookings.Where(x => x.BookingID.Equals(4)).FirstOrDefault(); booking.PropertyID = 221; /* Booking booking = null;*/ //TEST WITH CUSTOMER Customer aCustomer = db.Customers.Where(x => x.CustomerID == 1).FirstOrDefault(); //TEST WITH BES var bes = db.BookingExtraSelections.Where(x => x.BookingExtraSelectionID == 3).First(); bes.BookingExtraID = 1; //set up vars var type = PRCDocument.PRCDocumentType.UK_WineTasting; //create event - need to give it type thus name var anEvent = new Event(); anEvent.Documents = new List<Document>(); //TEST ADD ID - PLEASE REMOVE anEvent.EventID = 2; //END TEST CODE anEvent.WhenCreated = DateTime.Now; var commandsAndResultsToLog = new List<EventCommand>(); //create correct command //doc //email out with doc EventCommandCreateDocument createDocCommand; EventCommandSendEmail sendEmail; //HOW DO WE DECIDE WHAT TYPE OF EVENT WE WANT??? depends on type?? if (booking != null) { createDocCommand = new EventCommandCreateDocument(anEvent, aCustomer, type, booking); /* sendEmail = new EventCommandSendEmail(anEvent, aCustomer, booking);*/ } else { createDocCommand = new EventCommandCreateDocument(anEvent, aCustomer, type, null, bes); /*/sendEmail = new EventCommandSendEmail(anEvent, aCustomer, null, bes);*/ } //create all commands anEvent.EventCommands.Add(createDocCommand); /* anEvent.EventCommands.Add(sendEmail);*/ //create document using executes var result = new EventCommandResult(); foreach (var command in anEvent.EventCommands) { command.EventCommandResults.Add(command.ExecuteCommand()); commandsAndResultsToLog.Add(command); } //render //save to DB with all correct commands etc var EventCommandLogger = new CommandLogger(db); var eventLogger = new EventLogger(db, EventCommandLogger); //save event eventLogger.LogEvent(anEvent); //save eventcoomand and result foreach (var commandAndResult in commandsAndResultsToLog) { EventCommandLogger.Log(anEvent.EventID, commandAndResult); } //save document generated //NEED TO ADD CORRECT PARAMS (which are what??) //if there's any docs, write them to the DB foreach (var doc in anEvent.Documents) { doc.EventID = anEvent.EventID; doc.DocumentDescription = type.ToString(); doc.EmailTo = aCustomer.EmailAddress; doc.CustomerID = aCustomer.CustomerID; db.Documents.Add(doc); db.SaveChanges(); } }
public ActionResult Edit(Customer customer) { var oldCust = db.Customers.Where(x => x.CustomerID == customer.CustomerID).First(); customer.CreationDate = customer.CreationDate; if (ModelState.IsValid) { using (var _db = new PortugalVillasContext()) { _db.Customers.Attach(customer); _db.Entry(customer).State = EntityState.Modified; _db.SaveChanges(); Session["currentCustomer"] = customer; return RedirectToAction("Edit", customer); } } return View(customer); }
public ActionResult Edit(BookingExtra bookingextra) { var oldExtra = db.BookingExtras.Where(x => x.BookingExtraID == bookingextra.BookingExtraID).First(); bookingextra.WhenCreated = oldExtra.WhenCreated; bookingextra.WhenModified = oldExtra.WhenModified; if (ModelState.IsValid) { using (var _db = new PortugalVillasContext()) { _db.BookingExtras.Attach(bookingextra); _db.Entry(bookingextra).State = EntityState.Modified; _db.SaveChanges(); ViewBag.BookingExtraTypeID = new SelectList(db.BookingExtraTypes, "BookingExtraTypeID", "ExtraTypeName", bookingextra.BookingExtraTypeID); return RedirectToAction("SingleBookingExtraIndex", "BookingExtra", new {bookingextraID = bookingextra.BookingExtraID}); } } ViewBag.BookingExtraTypeID = new SelectList(db.BookingExtraTypes, "BookingExtraTypeID", "ExtraTypeName", bookingextra.BookingExtraTypeID); return View(bookingextra); }
public ActionResult AddCustomerBankDetail(CustomerBankDetail aCustomerBankDetail) { try { //customer must be logged in to do this - get logged in customer and assign the ID to the bank detail Customer customer = GetCustomerForLoggedInCustomerAndStoreInSession(HttpContext.User.Identity.Name); aCustomerBankDetail.CustomerID = customer.CustomerID; PortugalVillasContext _dbContext = new PortugalVillasContext(); if (ModelState.IsValid) { _dbContext.CustomerBankDetails.Add(aCustomerBankDetail); if (_dbContext.SaveChanges() > 0) ; { return View("CustomerUpdateSuccess"); } } } catch (Exception) { throw; } return View("CustomerUpdateFailed"); }
// [Authorize(Roles = "Administrator, User")] public ActionResult ManageCustomer(Customer customer) { Customer previousCustomer = (Customer)Session["prc_previouscustomer"]; customer.CustomerID = previousCustomer.CustomerID; if ((!CheckIfCustomerEmailAlreadyExists(customer.EmailAddress) && !CheckIfUserExistsInSimpleMemberProvider(customer.EmailAddress)) || (previousCustomer.EmailAddress.ToLower().Trim() == customer.EmailAddress.ToLower().Trim())) { PortugalVillasContext _dbContext = new PortugalVillasContext(); UsersContext _usersContext = new UsersContext(); //get the old customer detailf from the session //update simplemembership provider too var user = _usersContext.UserProfiles.Where( x => x.UserName.ToLower().Trim() == previousCustomer.EmailAddress.ToLower().Trim()) .FirstOrDefault(); user.UserName = customer.EmailAddress; //update customer and user try { if (ModelState.IsValid) { _dbContext.Entry(customer).State = EntityState.Modified; var objContext = ((IObjectContextAdapter)_dbContext).ObjectContext; var refreshableObjects = (from entry in objContext.ObjectStateManager.GetObjectStateEntries( EntityState.Added | EntityState.Deleted | EntityState.Modified | EntityState.Unchanged) where entry.EntityKey != null select entry.Entity); objContext.Refresh(RefreshMode.ClientWins, refreshableObjects); //if it works, do the update for the userContext, else, don't as it failed if (objContext.SaveChanges() > 0) { _usersContext.Entry(user).State = EntityState.Modified; _usersContext.SaveChanges(); WebSecurity.Logout(); Session["prc_customer"] = customer; //update the customer return View("CustomerUpdateSuccess"); } } } catch (DbUpdateConcurrencyException ex) { var objContext = ((IObjectContextAdapter)_dbContext).ObjectContext; var entry = ex.Entries.Single(); objContext.Refresh(RefreshMode.ClientWins, entry.Entity); _dbContext.SaveChanges(); } } //update the customer on result ViewBag.Title = "Manage Portugal Holiday Rentals Customer"; return View("CustomerUpdateFailed"); }
public ActionResult Edit(Booking booking) { var oldbook = db.Bookings.Where(x => x.BookingID == booking.BookingID).FirstOrDefault(); booking.CreationDate = oldbook.CreationDate; booking.LastUpdated = oldbook.LastUpdated; if (ModelState.IsValid) { using (var _db = new PortugalVillasContext()) { _db.Bookings.Attach(booking); _db.Entry(booking).State = EntityState.Modified; _db.SaveChanges(); ViewBag.BookingParentContainerID = new SelectList(db.BookingParentContainers, "BookingParentContainerID", "OverallBookingReference", booking.BookingParentContainerID); ViewBag.CustomerID = new SelectList(db.Customers, "CustomerID", "Title", booking.CustomerID); ViewBag.PropertyID = new SelectList(db.Properties, "PropertyID", "LegacyReference", booking.PropertyID); return View("SingleBookingIndex", db.Bookings.Include(x => x.Customer).FirstOrDefault(x => x.BookingID == booking.BookingID)); } } ViewBag.BookingParentContainerID = new SelectList(db.BookingParentContainers, "BookingParentContainerID", "OverallBookingReference", booking.BookingParentContainerID); ViewBag.CustomerID = new SelectList(db.Customers, "CustomerID", "Title", booking.CustomerID); ViewBag.PropertyID = new SelectList(db.Properties, "PropertyID", "LegacyReference", booking.PropertyID); return View("SingleBookingIndex", db.Bookings.Include(x => x.Customer).FirstOrDefault(x => x.BookingID == booking.BookingID)); }
public ActionResult Edit(PropertyOwnerRepresentative propertyownerrepresentative) { if (ModelState.IsValid) { using (var _db = new PortugalVillasContext()) { _db.PropertyOwnerRepresentatives.Attach(propertyownerrepresentative); _db.Entry(propertyownerrepresentative).State = EntityState.Modified; _db.SaveChanges(); return RedirectToAction("Edit", new {id = propertyownerrepresentative.PropertyOwnerRepresentativeID}); } } return View(propertyownerrepresentative); }
//insert a booking private static bool CreateBooking(Booking aBooking) { PortugalVillasContext _db = new PortugalVillasContext(); _db.Bookings.Add(aBooking); if (_db.SaveChanges() > 0) { return true; }; return false; }
public ActionResult CreateBookingExtraParticipant(BookingExtraParticipant bookingExtraParticipant, string submitBookingExtraPart) { PortugalVillasContext db = new PortugalVillasContext(); if (ModelState.IsValid) { GeneralStaticHelperMethods.IsPersonAdultChildOrInfant(bookingExtraParticipant); //need to assign the booking ID BookingExtraSelection currentSelection = (BookingExtraSelection)Session["CurrentBookingExtraDataGathering"]; bookingExtraParticipant.BookingExtraSelectionID = currentSelection.BookingExtraSelectionID; db.BookingExtraParticipants.Add(bookingExtraParticipant); db.SaveChanges(); //check they're under 18 or whatever then make them an infant, or child if they're the corresponsing age //is infant //is child if (submitBookingExtraPart.Equals("Add this participant and add another")) { return RedirectToAction("CreateBookingExtraParticipant"); } } return RedirectToAction("DetailGatheringEventChain"); }
public List<BookingParticipant> CreateBookingParticipant(List<BookingParticipant> bookingParticipants, Booking booking, PortugalVillasContext db) { //assign fields foreach (var bookingParticipant in bookingParticipants) { bookingParticipant.BookingID = booking.BookingID; bookingParticipant.BookingParticipantWhenCreated = DateTime.Now; //GeneralStaticHelperMethods.IsPersonAdultChildOrInfant(bookingParticipant); db.BookingParticipants.Add(bookingParticipant); } db.SaveChanges(); return bookingParticipants; }
// // POST: /FinalBookingDetailGathering/Create public bool CreateCustomerAsPartOfSignUp(Customer customer) { PortugalVillasContext db = new PortugalVillasContext(); if (ModelState.IsValid) { //CHECK IF THERE'S ALREADY A CUSTOMER WITH THIS EMAIL ADDRESS FIRST!!! //end check //CHECK we ain't got anything for this customer in the Sessions already //end check //if not, add customer //set up fields customer.CreationDate = DateTime.Now; if (customer.Country.ToLower() == "united kingdom") { customer.PreferredCurrency = "GBP"; customer.PreferredCurrencySymbol = "£"; } else { customer.PreferredCurrency = "EUR"; customer.PreferredCurrencySymbol = "€"; } //end db.Customers.Add(customer); if (db.SaveChanges() > 0) { //customer now has an ID if the save has worked System.Web.HttpContext.Current.Session["prc_customer"] = customer; return true; } } return false; }
public ActionResult Edit(BookingParticipant bookingparticipant) { var oldPart = db.BookingParticipants.Where(x => x.BookingParticipantID == bookingparticipant.BookingParticipantID).FirstOrDefault(); bookingparticipant.BookingParticipantWhenCreated = oldPart.BookingParticipantWhenCreated; if (ModelState.IsValid) { using (var _db = new PortugalVillasContext()) { _db.BookingParticipants.Attach(bookingparticipant); _db.Entry(bookingparticipant).State = EntityState.Modified; _db.SaveChanges(); return RedirectToAction("Index", "BookingParticipant", new { bookingID = bookingparticipant.BookingID }); } } ViewBag.BookingID = new SelectList(db.Bookings, "BookingID", "BookingPRCReference", bookingparticipant.BookingID); return View(bookingparticipant); }
public Customer CreateCustomer(Customer customer, PortugalVillasContext db) { //CHECK IF THERE'S ALREADY A CUSTOMER WITH THIS EMAIL ADDRESS FIRST!!! //end check //CHECK we ain't got anything for this customer in the Sessions already //end check //if not, add customer //set up fields customer.CreationDate = DateTime.Now; customer.Test = false; //end db.Customers.Add(customer); if (db.SaveChanges() > 0) { //customer now has an ID if the save has worked return customer; } throw new Exception("Cannot create customer"); }
public ActionResult EditCustomer(Customer customer) { PortugalVillasContext db = new PortugalVillasContext(); if (ModelState.IsValid) { db.Entry(customer).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(customer); }
public Booking CreateBooking(Booking booking, Property property, Customer theCustomer, PortugalVillasContext db) { //set default currency booking.BookingCurrencyConversionSymbol = theCustomer.PreferredCurrencySymbol; booking.BookingPreferredCurrency = theCustomer.PreferredCurrency; var cc = new CurrencyConverterController(); //if the booking is not in GBP convert to EUROS //NEED TO CONVERT THE CURRENCY BASED ON WHETHER IT NEEDS TO BE EU OR UK int adults, kids, infants; adults = booking.NumberOfAdults ?? 0; kids = booking.NumberOfChildren ?? 0; infants = booking.NumberOfInfants ?? 0; booking.NumberOfAdults = adults; booking.NumberOfChildren = kids; booking.NumberOfInfants = infants; booking.CustomerID = theCustomer.CustomerID; booking.BookingTypeID = 1; //always a property booking booking.NumberOfGuests = adults + kids + infants; booking.TotalNumberOfMinors = kids + infants; booking.NumberOfNights = GeneralStaticHelperMethods.CalculateNoofNights(booking.StartDate, booking.EndDate); try { var exchangeRateFromDB = new CurrencyExchange(); var baseCurrency = ""; var newCurrency = ""; booking.NumberOfNights = GeneralStaticHelperMethods.CalculateNoofNights(booking.StartDate, booking.EndDate); booking.CalculateBookingPricingForAPropertyBooking(db); booking.CalculateExtrasPriceForAPropertyBooking(property, booking, db); //set this now because need to convert it booking.SetBreakageDepositDueDate(); //1 month before booking.SetBreakageDepositAmount(); //depends on property booking.BookingCurrencyLongName = "G.B. Pounds Sterling"; //NOW CONVERT CURRENCY IF NECESSARY SO OTHER CALCS ARE CORRECT //CHANGE THIS!!! IT'S USING HIDDEN EXTERNAL DEPENDENY booking.BookingCurrencyConversionSymbol = "£"; booking.BookingCurrencyExchangeRate = 1.00M; booking.BookingPreferredCurrency = "GBP"; if (theCustomer.Country.ToLower() != "united kingdom" && ConfigurationManager.AppSettings["defaultCurrency"] == "GBP") { //euro strategy baseCurrency = "GBP"; newCurrency = "EUR"; //set exchange rate booking.BookingCurrencyExchangeRate = exchangeRateFromDB.CurrencyExchangeRate; booking.BookingCurrencyLongName = "Euros"; booking.BookingCurrencyConversionSymbol = exchangeRateFromDB.CurrencyExchangeSymbol; booking.BookingCurrencyExchangeRate = exchangeRateFromDB.CurrencyExchangeRate; booking.BookingPreferredCurrency = "EUR"; try { booking.BookingPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.BookingPrice); booking.BookingCurrencyConversionPrice = booking.BookingPrice; booking.TowelsPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.TowelsPrice); booking.MidVactionCleaningPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.MidVactionCleaningPrice); booking.SwimmingPoolHeatingPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.SwimmingPoolHeatingPrice); booking.ExtraLininSetPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.ExtraLininSetPrice); booking.BreakageDeposit = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.BreakageDeposit); booking.CleaningPostVisitPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.CleaningPostVisitPrice); booking.HeatingPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.HeatingPrice); } catch (Exception) { throw; } } //ALL BOOKINGS FOR US SYSTEM IN USD else if (ConfigurationManager.AppSettings["defaultCurrency"] == "USD") { baseCurrency = "GBP"; newCurrency = "USD"; exchangeRateFromDB = db.CurrencyExchanges.First(x => x.CurrencyExchangeName == "GBP-USD"); //set exchange rate and currencies booking.BookingCurrencyExchangeRate = exchangeRateFromDB.CurrencyExchangeRate; booking.BookingCurrencyLongName = "U.S. Dollars"; booking.BookingCurrencyConversionSymbol = exchangeRateFromDB.CurrencyExchangeSymbol; booking.BookingCurrencyExchangeRate = exchangeRateFromDB.CurrencyExchangeRate; booking.BookingPreferredCurrency = "USD"; } //do all cuurency conversions if not a UK booking if (theCustomer.Country.ToLower() != "united kingdom" || !ConfigurationManager.AppSettings["defaultCurrency"].Equals("GBP")) { try { booking.BookingPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.BookingPrice); booking.BookingCurrencyConversionPrice = booking.BookingPrice; booking.TowelsPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.TowelsPrice); booking.MidVactionCleaningPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.MidVactionCleaningPrice); booking.SwimmingPoolHeatingPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.SwimmingPoolHeatingPrice); booking.ExtraLininSetPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.ExtraLininSetPrice); booking.BreakageDeposit = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.BreakageDeposit); booking.CleaningPostVisitPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.CleaningPostVisitPrice); booking.HeatingPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.HeatingPrice); booking.HeatingUnitPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.HeatingUnitPrice); booking.CleaningPostVisitUnitPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.CleaningPostVisitUnitPrice); booking.ExtraLininSetUnitPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.ExtraLininSetUnitPrice); booking.MidVactionCleaningUnitPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.MidVactionCleaningUnitPrice); booking.SwimmingPoolHeatingUnitPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.SwimmingPoolHeatingUnitPrice); booking.TowelsUnitPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.TowelsUnitPrice); booking.FirewoodUnitPrice = cc.ConvertCurrency(baseCurrency, newCurrency, (decimal)booking.FirewoodUnitPrice); } catch (Exception) { throw; } } } catch (Exception ex) { /*Response.Redirect("http://" + Request.Url.Authority + "/Error/PropertyErrorSelection");*/ //return RedirectToAction("PropertyErrorSelection", "Error", new { propID = CartBooking.PropertyID }); } //CURRENCY MUST BE CONVERTED BEFORE THESE METHODS ARE CALLED //call meths to set dates booking.SetInitalDepositDate(); booking.SetInitialDepositAmount(); booking.SetRentalBalanceDueDate(); //1 month before booking.CalculateFinalRentalPaymentAmount(); //extrasSummedPrice + price - deposit booking.SetBreakageDepositRemittanceDate(); booking.SetBreakageDepositRemittanceAmount();//1 month after trip end? //booking.SetFinalRentalPayment(); //price - deposit booking.SetHomeownerAndPRCComissionAmount(db); booking.CreationDate = DateTime.Now; booking.Cancelled = false; booking.Confirmed = false; //if they pay by paypal later, we can update; var refGenService = new ReferenceGenerationService(); booking.BookingPRCReference = refGenService.GenerateBookingReference(booking, property); //if (ModelState.IsValid) //{ db.Bookings.Add(booking); if (db.SaveChanges() > 0) { if (booking.BookingID > 0) { booking.BookingPRCReference = refGenService.GenerateBookingReference(booking, property); db.Entry(booking).State = EntityState.Modified; db.SaveChanges(); } } return booking; }
public void TestDocumentReadAndInsert() { var files = Directory.GetFileSystemEntries(Server.MapPath("~/Documents"), "*.pdf", SearchOption.AllDirectories); var bDoc = new Document(); bDoc.DocumentBLOB = System.IO.File.ReadAllBytes(files[0]); using (var db = new PortugalVillasContext()) { db.Documents.Add(bDoc); db.SaveChanges(); } }
//} /// <summary> /// Booking Extra Selection /// </summary> /// <param name="disposing"></param> /* public ActionResult CreateBookingExtraSelection() { //logic to determine what we do Customer theCustomer = (Customer)Session["prc_customer"]; BookingExtraSelection currentBooking = (BookingExtraSelection)Session["CurrentBookingExtraDataGathering"]; long? currentBookingTypeID = currentBooking.GetBookingExtraTypeIDFromBookingExtraSelection(); try { currentBooking.Cancelled = false; currentBooking.Confirmed = false; currentBooking.Customer = theCustomer; currentBooking.WhenCreated = DateTime.Now; if (currentBookingTypeID == 1) //car rental - only need driver details { return CreateBookingExtraSelection(currentBooking); } } catch (Exception) { throw; } return View(currentBooking); } */ public BookingParentContainer CreateBookingParentContainer(BookingParentContainer container, PortugalVillasContext db) { db.BookingParentContainers.Add(container); db.SaveChanges(); return container; }
public ActionResult Edit(PropertyOwner propertyowner) { propertyowner.WhenCreated = DateTime.Now; propertyowner.WhenUpdated = db.PropertyOwners.Where(x => x.PropertyOwnerID == propertyowner.PropertyOwnerID).First().WhenUpdated; if (ModelState.IsValid) { using (var _db = new PortugalVillasContext()) { _db.PropertyOwners.Attach(propertyowner); _db.Entry(propertyowner).State = EntityState.Modified; _db.SaveChanges(); return RedirectToAction("Edit", new { id = propertyowner.PropertyOwnerID }); } } return View(propertyowner); }
public static int CreateAccountsForOwnersWithoutAccount(PortugalVillasContext db) { //get all ownersIDs var owners = db.PropertyOwners.ToList(); //checks they all have an account is accounts var accounts = db.PropertyOwnerAccounts.ToList(); List<PropertyOwnerAccount> accountsToCreate = new List<PropertyOwnerAccount>(); foreach (var propertyOwner in owners) { var account = accounts.Where(x => x.PropertyOwnerID == propertyOwner.PropertyOwnerID).FirstOrDefault(); if (account == null) { db.PropertyOwnerAccounts.Add(new PropertyOwnerAccount { AccountBalance = 0.00M, PropertyOwnerID = propertyOwner.PropertyOwnerID }); } } return db.SaveChanges(); }