internal IFacadeUpdateResult <QuoteData> SaveQuoteLine(object parentId, QuoteLineDto childDto) { ArgumentValidator.IsNotNull("parentId", parentId); ArgumentValidator.IsNotNull("childDto", childDto); FacadeUpdateResult <QuoteData> result = new FacadeUpdateResult <QuoteData>(); IQuoteService service = UnitOfWork.GetService <IQuoteService>(); var parentQuery = service.Retrieve(parentId); if (parentQuery.HasResult) { Quote parent = parentQuery.ToBo <Quote>(); QuoteLine child = RetrieveOrNewQuoteLine(parent, childDto.Id); if (child != null) { child.ProductId = childDto.ProductId; child.Quantity = childDto.Quantity; child.TargetPrice = childDto.TargetPrice; var saveQuery = service.Save(parent); result.Merge(saveQuery); result.AttachResult(parent.RetrieveData <QuoteData>()); } else { AddError(result.ValidationResult, "QuoteLineCannotBeFound"); } } return(result); }
internal IFacadeUpdateResult <QuoteData> DeleteQuoteLine(object parentId, object childId) { ArgumentValidator.IsNotNull("parentId", parentId); ArgumentValidator.IsNotNull("childId", childId); FacadeUpdateResult <QuoteData> result = new FacadeUpdateResult <QuoteData>(); IQuoteService service = UnitOfWork.GetService <IQuoteService>(); var query = service.Retrieve(parentId); if (query.HasResult) { Quote parent = query.ToBo <Quote>(); QuoteLine child = parent.QuoteLines.SingleOrDefault(o => object.Equals(o.Id, childId)); if (child != null) { parent.QuoteLines.Remove(child); var saveQuery = parent.Save(); result.Merge(saveQuery); result.AttachResult(parent.RetrieveData <QuoteData>()); } else { AddError(result.ValidationResult, "QuoteLineCannotBeFound"); } } else { AddError(result.ValidationResult, "QuoteCannotBeFound"); } return(result); }
public ActionResult Quote(CurvedDoorQuoteModel model) { var curvedDoor = new CurvedDoor(); curvedDoor.Color = DbSession.Get <ColorLocal>(model.ColorId); curvedDoor.GlassSystem = DbSession.Get <GlassSystemLocal>(model.GlassId); curvedDoor.CurvedDoorModel = DbSession.Get <CurvedDoorModelLocal>(model.TypeId); if (curvedDoor.Color == null || curvedDoor.GlassSystem == null || curvedDoor.CurvedDoorModel == null) { return(RedirectToAction("quote")); } curvedDoor.Length = model.Length ?? 0; curvedDoor.Height = model.Height ?? 0; curvedDoor.Width = model.Width ?? 0; curvedDoor.Depth = model.Depth ?? 0; Session[SessionKeys.LAST_QUOTE] = new CurvedDoorQuoteModel(curvedDoor); var line = new QuoteLine(); line.Name = curvedDoor.Name; line.Price = curvedDoor.SilverSellingPrice; line.BronzePrice = curvedDoor.BronzeSellingPrice; line.GoldPrice = curvedDoor.GoldSellingPrice; line.ProductDetails = curvedDoor; Session[SessionKeys.PENDING_QUOTE_LINE] = line; return(RedirectToAction("create-quote", "customer", new { areas = AreaKind })); }
internal QuoteLine RetrieveOrNewQuoteLine(Quote parent, object childId) { QuoteLine child = null; if (childId != null) { child = parent.QuoteLines.SingleOrDefault(o => object.Equals(o.Id, childId)); } else { child = parent.QuoteLines.AddNewBo(); } return(child); }
public ActionResult CreateQuoteFromDrawing(BalustradeDrawingModel model) { var balustrade = CreateBalustradeFromDrawingModel(model); var line = new QuoteLine(); line.Name = balustrade.Name; line.Price = balustrade.SilverSellingPrice; line.BronzePrice = balustrade.BronzeSellingPrice; line.GoldPrice = balustrade.GoldSellingPrice; line.ProductDetails = balustrade; Session[SessionKeys.PENDING_QUOTE_LINE] = line; return(Json(new { })); }
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 })); }
public ActionResult Quote(BalustradeQuoteModel model) { if (!model.ModelId.HasValue) { return(RedirectToAction("quote")); } var balustrade = new Balustrade(); balustrade.Color = DbSession.Get <ColorLocal>(model.ColorId); balustrade.GlassSystem = DbSession.Get <GlassSystemLocal>(model.GlassId); balustrade.BalustradeSystem = DbSession.Get <BalustradeSystemLocal>(model.TypeId); balustrade.UpdateSystemDefaults(); balustrade.StartType = BalustradeSection.SectionFinishType.Wall; balustrade.EndType = BalustradeSection.SectionFinishType.Wall; balustrade.ModelId = model.ModelId; var angle = model.Dims.Count > 1 ? 90D : 0D; foreach (var dimension in model.Dims) { var section = new BalustradeSection { Balustrade = balustrade, Angle = angle, Length = dimension.Length ?? 0, Depth = dimension.Curved ? 10 : 0, CalculatePostsQuantity = true, CalculateHandrailJoints = true, PreferStockGlass = balustrade.BalustradeSystem.PreferStockGlass }; balustrade.RawBalustradeSections.Add(section); angle -= 90; } var modelFromDb = DbSession.Get <BalustradeModel>(model.ModelId.Value); Session[SessionKeys.LAST_QUOTE] = new BalustradeQuoteModel(modelFromDb, balustrade, model.P); if (model.Action == BalustradeQuoteModel.AddToCartText) { DbSession.SaveOrUpdate(balustrade); AddToCart(balustrade, 1); DbSession.Flush(); return(RedirectToAction("cart", "customer", new { areas = AreaKind })); } var line = new QuoteLine(); line.Name = balustrade.Name; line.Price = balustrade.SilverSellingPrice; line.BronzePrice = balustrade.BronzeSellingPrice; line.GoldPrice = balustrade.GoldSellingPrice; line.ProductDetails = balustrade; Session[SessionKeys.PENDING_QUOTE_LINE] = line; return(RedirectToAction("create-quote", "customer", new { areas = AreaKind })); }