public ActionResult FindSize(CustomJulietteQuoteModel model, string cmd)
        {
            if (ModelState.IsValid && model.Width.HasValue)
            {
                if (cmd != null && cmd.IndexOf("standard", StringComparison.OrdinalIgnoreCase) >= 0)
                {
                    var type = DbSession.Get <JulietteType>(model.TypeId);

                    int w;
                    if (model.Width <= type.WidthStep - type.AppendToHandrail1)
                    {
                        w = model.Width.Value + type.AppendToHandrail1;
                    }
                    else
                    {
                        w = model.Width.Value + type.AppendToHandrail2;
                    }

                    var standard = DbSession.QueryOver <JulietteStandard>()
                                   .Where(js => w <= js.ID && js.ID <= type.MaxWidth)
                                   .OrderBy(js => js.ID).Asc
                                   .Cacheable()
                                   .CacheMode(CacheMode.Normal)
                                   .List()
                                   .FirstOrDefault();

                    if (standard != null)
                    {
                        return(RedirectToAction("standard-model", new { id = standard.ID, type = model.TypeId, color = model.ColorId }));
                    }
                }
                return(RedirectToAction("quote-custom", new { id = model.Width, type = model.TypeId, color = model.ColorId }));
            }
            return(RedirectToAction("find-size"));
        }
        public ActionResult FindSize()
        {
            var page = DbSession.Get <StandardPage>(new Guid(FIND_SIZE_ID));

            PageHeader    = page;
            ViewBag.Body  = page.Body;
            ViewBag.Types = FetchTypes();

            ViewBag.Standards = DbSession.QueryOver <JulietteStandard>()
                                .OrderBy(js => js.ID).Asc
                                .Cacheable()
                                .CacheMode(CacheMode.Normal)
                                .List()
                                .Select(s => s.ID);

            var jtype = DbSession.Get <JulietteType>(1);

            var viewModel = new CustomJulietteQuoteModel(page, jtype);

            viewModel.ColorId  = jtype.Colors.First().ID;
            viewModel.MinWidth = (int)Config.One.Jul_CustomMinWidth;
            viewModel.MaxWidth = (int)Config.One.Jul_CustomMaxWidth;

            return(View(viewModel));
        }
        public ActionResult QuoteCustom(int?id, int?type, int?color, int?glass)
        {
            var page = DbSession.Get <StandardPage>(new Guid(QUOTE_CUSTOM_PAGE_ID));

            PageHeader = page;

            var jtype = DbSession.Get <JulietteType>(type.HasValue ? type.Value : 2);

            var viewModel = new CustomJulietteQuoteModel(page, jtype);

            viewModel.Width   = id.HasValue ? id.Value : (int?)null;
            viewModel.ColorId = color.HasValue ? color.Value : 1;
            viewModel.GlassId = glass.HasValue ? glass.Value : 1;

            return(View(viewModel));
        }
        public ActionResult AmendQuote(Guid?id)
        {
            Quote quote;

            if (!id.HasValue ||
                (quote = DbSession.Get <Quote>(id.Value)) == null ||
                quote.FirstLine == null)
            {
                return(HttpNotFound());
            }
            var jul = quote.FirstLine.ProductDetails as Juliette;

            if (jul == null)
            {
                return(HttpNotFound());
            }
            var page      = DbSession.Get <StandardPage>(new Guid(QUOTE_CUSTOM_PAGE_ID));
            var viewmodel = new CustomJulietteQuoteModel(page, jul);

            return(View("quote-custom", viewmodel));
        }
        public ActionResult QuoteCustom(CustomJulietteQuoteModel model)
        {
            var juliette = new Juliette();

            juliette.Color         = DbSession.Get <ColorLocal>(model.ColorId);
            juliette.GlassSystem   = DbSession.Get <GlassSystemLocal>(model.GlassId);
            juliette.JulietteType  = DbSession.Get <JulietteType>(model.TypeId);
            juliette.OpenWidth     = model.Width.Value;
            juliette.GlassQuantity = juliette.CalcGlassQuantity();

            var line = new QuoteLine();

            line.Name        = juliette.Name;
            line.Price       = juliette.SilverSellingPrice;
            line.BronzePrice = juliette.BronzeSellingPrice;
            line.GoldPrice   = juliette.GoldSellingPrice;

            line.ProductDetails = juliette;
            Session[SessionKeys.PENDING_QUOTE_LINE] = line;
            return(RedirectToAction("create-quote", "customer", new { areas = AreaKind }));
        }