public DeckDetailsModel Validate(ref DeckDetailsModel model) { if (DeckDetailsModel.IsEmpty(model)) { model = Session["DeckDetailsModel"] as DeckDetailsModel; if (DeckDetailsModel.IsEmpty(model)) { model = new DeckDetailsModel(); } } return(model); }
public ActionResult EditDeck(DeckModel model, int id, string search, string next, string prev, string save) { SearchModel searchModel = model.SearchModel; DeckDetailsModel deckDetailsModel = model.DeckDetails; Validate(ref searchModel); Validate(ref deckDetailsModel); if (id > 0) { DeckDetailsModel deckDetails = Session["DeckDetailsModel"] as DeckDetailsModel; if (DeckDetailsModel.IsEmpty(deckDetails)) { var tuple = DataManager.LoadDeck(id); var deck = tuple.Item1; var cards = tuple.Item2; deckDetails = new DeckDetailsModel() { DeckName = deck.DeckName, DeckDescription = deck.DeckDescription, CardItems = cards.Select(x => new CardItem() { CardID = x.CardId, Quantity = x.CardQuantity, Name = x.CardName }).ToList() }; deckDetailsModel = deckDetails; } } else { deckDetailsModel.CardItems = Session["CardItems"] as List <CardItem>; } if (!string.IsNullOrWhiteSpace(next)) { searchModel = Session["SearchModel"] as SearchModel; if (searchModel.Data.HasMore.HasValue) { if (searchModel.Data.HasMore.Value) { if (searchModel.Page <= 1) { searchModel.Page = 1; } searchModel.Page++; } } } if (!string.IsNullOrWhiteSpace(prev)) { searchModel = Session["SearchModel"] as SearchModel; if (searchModel.Page <= 1) { searchModel.Page = 1; } searchModel.Page--; } if (!string.IsNullOrWhiteSpace(search)) { } if (!string.IsNullOrWhiteSpace(save)) { deckDetailsModel.CardItems = Session["CardItems"] as List <CardItem>; if (id == 0) { id = DataManager.CreateDeck(model.DeckDetails.DeckName, model.DeckDetails.DeckDescription, deckDetailsModel.CardItems); ClearSession(); return(RedirectToAction("Edit", "Decks", id)); } else if (id >= 0) { DataManager.SaveDeck(id, model.DeckDetails.DeckName, model.DeckDetails.DeckDescription, deckDetailsModel.CardItems); ClearSession(); return(RedirectToAction("Edit", "Decks", id)); } } searchModel.Search(); Session["SearchModel"] = searchModel; Session["DeckDetailsModel"] = deckDetailsModel; Session["CardItems"] = deckDetailsModel.CardItems; model.DeckDetails = deckDetailsModel; model.SearchModel = searchModel; SetImages(searchModel.Data); return(View("Edit", model)); }