public ActionResult QuoteDetail(Guid id) { QuoteRepository repositpory = new QuoteRepository(); QuoteDetailsViewModel model = new QuoteDetailsViewModel(); var quoteInfo = repositpory.GetQuoteById(id); var currentUserName = User.Identity.Name; ApplicationUser user = new ApplicationUser(); using (ApplicationDbContext db = new ApplicationDbContext()) { user = db.Users.FirstOrDefault(u => u.UserName == currentUserName); } model.Name = user.FirstName + " " + user.LastName; model.Email = user.Email; model.Id = quoteInfo.Id; model.IsPurchased = quoteInfo.IsPurchased; model.QuoteInfoList = quoteInfo.QuoteInfoList; model.QuotePrice = quoteInfo.QuotePrice; model.StartAddress = quoteInfo.StartAddress; model.UserId = quoteInfo.UserId; model.Distance = quoteInfo.Distance; model.EndAddress = quoteInfo.EndAddress; return(View(model)); }
// GET: Sales/Quotes/Details/5 public ActionResult Details(int id) { var model = new QuoteDetailsViewModel { Quote = _db.Quotes.First(q => q.Id == id), QuoteMembers = _db.QuoteMembers.Where(qm => qm.RelatedQuoteId == id), QuoteLines = _db.QuoteLines.Where(ql => ql.RelatedQuoteId == id).OrderByDescending(ql => ql.InsertDate) }; return(View(model)); }
public QuoteDetailsViewModel GenerateQuote(string start, string end, string distance, string userName) { QuoteDetailsViewModel quote = new QuoteDetailsViewModel(); decimal totalPrice = 0; quote.StartAddress = start; quote.EndAddress = end; quote.IsPurchased = false; quote.Distance = distance; using (ApplicationDbContext db = new ApplicationDbContext()) { quote.UserId = db.Users.FirstOrDefault(x => x.UserName == userName).Id; } quote.QuoteInfoList = new List <QuoteInfo>(); var shiftingCharges = Decimal.Round(Convert.ToDecimal(ConfigurationManager.AppSettings["LifitingCharges"].ToString()), 2); quote.QuoteInfoList.Add(new QuoteInfo { Key = "LifitingCharges", value = shiftingCharges }); totalPrice += shiftingCharges; var packingCharges = Decimal.Round(Convert.ToDecimal(ConfigurationManager.AppSettings["PackingCharges"].ToString()), 2); quote.QuoteInfoList.Add(new QuoteInfo { Key = "PackingCharges", value = packingCharges }); totalPrice += packingCharges; var travellingCharges = Decimal.Round(Convert.ToDecimal(ConfigurationManager.AppSettings["TravellingCostperMile"].ToString()) * Convert.ToDecimal(distance), 2); quote.QuoteInfoList.Add(new QuoteInfo { Key = "TravellingCharges", value = travellingCharges }); totalPrice += travellingCharges; var gasCharges = Decimal.Round((totalPrice * Convert.ToInt16(ConfigurationManager.AppSettings["GasChargesPercent"].ToString())) / 100, 2); quote.QuoteInfoList.Add(new QuoteInfo { Key = "GasCharges", value = gasCharges }); totalPrice += gasCharges; var serviceCharges = Decimal.Round((totalPrice * Convert.ToInt16(ConfigurationManager.AppSettings["ServiceChargesPercent"].ToString())) / 100, 2); quote.QuoteInfoList.Add(new QuoteInfo { Key = "ServiceCharges", value = serviceCharges }); totalPrice += serviceCharges; var taxes = Decimal.Round((totalPrice * Convert.ToInt16(ConfigurationManager.AppSettings["TaxesPercent"].ToString())) / 100, 2); quote.QuoteInfoList.Add(new QuoteInfo { Key = "Taxes", value = taxes }); totalPrice += taxes; quote.QuotePrice = totalPrice; using (EFDbContext db = new EFDbContext()) { Quote _quote = new Quote { StartAddress = quote.StartAddress, EndAddress = quote.EndAddress, Distance = quote.Distance, IsPurchased = quote.IsPurchased, CreateTimeStamp = DateTime.Now, QuotePrice = quote.QuotePrice, QuoteInfo = string.Join(",", quote.QuoteInfoList.Select(x => x.Key + "=" + x.value).ToArray()), UserId = quote.UserId }; db.Entry(_quote).State = System.Data.Entity.EntityState.Added; db.SaveChanges(); quote.Id = _quote.Id; } return(quote); }