Deckbuilding platform

Hi everyone,

I'm not sure if this should be a separate post or combined with my initial site announcement post, but I've got complete deck building platform built into MTGPQ.com now. The UI needs some works still, but you should be able to create decks and share them now. For example, you can see my main deck here

http://mtgpq.com/Deck/Details/chandra-thopter-control

Mods, if you want to merge or move this feel free.

You can also now comment on cards/decks as well.

Please let me know if you find any bugs or such and bear with me as I'm sure there will be a few hiccups! Also, if you have feature requests or anything like that, feel free to PM me. Thanks!
«1

Comments

  • Looks good! I just can't create a deck. I get a huge Error Message when I try to save it.
    The view 'SaveDeck' or its master was not found or no view engine supports the searched locations. The following locations were searched:
    ~/Views/Deck/SaveDeck.aspx
    ~/Views/Deck/SaveDeck.ascx
    ~/Views/Shared/SaveDeck.aspx
    ~/Views/Shared/SaveDeck.ascx
    ~/Views/Deck/SaveDeck.cshtml
    ~/Views/Deck/SaveDeck.vbhtml
    ~/Views/Shared/SaveDeck.cshtml
    ~/Views/Shared/SaveDeck.vbhtml
  • Thanks for pointing that out, I've added some better error checking so you should see a better message now when that fails. Try it again, I suspect no Planeswalker was selected?
  • Maybe I'm missing it but where is the deck builder link? I saw your deck, but I didn't see a way to build a deck.
  • I selected Jace. Wouldn't have been able to pick any cards without selecting a Planeswalker frst.

    I'll give it another try.

    EDIT: Still the same.

    Not sure if it helps you in any way, but here's the complete Error Message.
    Server Error in '/' Application.
    The view 'SaveDeck' or its master was not found or no view engine supports the searched locations. The following locations were searched:
    ~/Views/Deck/SaveDeck.aspx
    ~/Views/Deck/SaveDeck.ascx
    ~/Views/Shared/SaveDeck.aspx
    ~/Views/Shared/SaveDeck.ascx
    ~/Views/Deck/SaveDeck.cshtml
    ~/Views/Deck/SaveDeck.vbhtml
    ~/Views/Shared/SaveDeck.cshtml
    ~/Views/Shared/SaveDeck.vbhtml
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
    
    Exception Details: System.InvalidOperationException: The view 'SaveDeck' or its master was not found or no view engine supports the searched locations. The following locations were searched:
    ~/Views/Deck/SaveDeck.aspx
    ~/Views/Deck/SaveDeck.ascx
    ~/Views/Shared/SaveDeck.aspx
    ~/Views/Shared/SaveDeck.ascx
    ~/Views/Deck/SaveDeck.cshtml
    ~/Views/Deck/SaveDeck.vbhtml
    ~/Views/Shared/SaveDeck.cshtml
    ~/Views/Shared/SaveDeck.vbhtml
    
    Source Error:
    
    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
    
    Stack Trace:
    
    
    [InvalidOperationException: The view 'SaveDeck' or its master was not found or no view engine supports the searched locations. The following locations were searched:
    ~/Views/Deck/SaveDeck.aspx
    ~/Views/Deck/SaveDeck.ascx
    ~/Views/Shared/SaveDeck.aspx
    ~/Views/Shared/SaveDeck.ascx
    ~/Views/Deck/SaveDeck.cshtml
    ~/Views/Deck/SaveDeck.vbhtml
    ~/Views/Shared/SaveDeck.cshtml
    ~/Views/Shared/SaveDeck.vbhtml]
       System.Web.Mvc.ViewResult.FindView(ControllerContext context) +382
       System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +116
       System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13
       System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +56
       System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +420
       System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +52
       System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +173
       System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100
       System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
       System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
       System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
       System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13
       System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
       System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
       System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +36
       System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12
       System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22
       System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
       System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26
       System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
       System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21
       System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
       System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
       System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28
       System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +545
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
    
  • It is looking nice, I haven't tried it out yet however, it seems people are having issues.

    One suggestion, have the card zoom pop up in a lightbox when clicking on people's decks, instead of opening the in depth card page; we don't need an indepth page about the card as most people will just want to zoom in to see what the card is. Maybe have a link at the bottom of the image that says "click here for details" and it will take you to the full card page.
  • @rlh after registering, click on your username in the top right, should bring a drop down menu, then select My Decks, then Create Deck

    @blave strange, ok I see I missed one area where to capture the error, please try again, I should be picking up the proper error now to help me debug, thanks for your patience

    @panda yes I agree, I thought about this originally too, but forgot about implementing it like that, will try it out and see how it goes
  • Assuming most people have a 1080p screen, it actually would look even nicer if tapping a card showed the entire deck in a 5x2, zoomed in fully. It should fit.
  • night_day wrote:
    @rlh after registering, click on your username in the top right, should bring a drop down menu, then select My Decks, then Create Deck

    Ok, thanks. I assumed you could create a deck (without saving) without having an account. Sort of a "scratch pad" for deck building.
  • Frustrating error once I'd input my deck:
    Server Error in '/' Application.
    An asynchronous operation cannot be started at this time. Asynchronous operations may only be started within an asynchronous handler or module or during certain events in the Page lifecycle. If this exception occurred while executing a Page, ensure that the Page is marked <%@ Page Async="true" %>. This exception may also indicate an attempt to call an "async void" method, which is generally unsupported within ASP.NET request processing. Instead, the asynchronous method should return a Task, and the caller should await it.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.InvalidOperationException: An asynchronous operation cannot be started at this time. Asynchronous operations may only be started within an asynchronous handler or module or during certain events in the Page lifecycle. If this exception occurred while executing a Page, ensure that the Page is marked <%@ Page Async="true" %>. This exception may also indicate an attempt to call an "async void" method, which is generally unsupported within ASP.NET request processing. Instead, the asynchronous method should return a Task, and the caller should await it.

    Source Error:

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace:


    [InvalidOperationException: An asynchronous operation cannot be started at this time. Asynchronous operations may only be started within an asynchronous handler or module or during certain events in the Page lifecycle. If this exception occurred while executing a Page, ensure that the Page is marked <%@ Page Async="true" %>. This exception may also indicate an attempt to call an "async void" method, which is generally unsupported within ASP.NET request processing. Instead, the asynchronous method should return a Task, and the caller should await it.]
    System.Web.AspNetSynchronizationContext.OperationStarted() +4425925
    System.ComponentModel.AsyncOperation.CreateOperation(Object userSuppliedState, SynchronizationContext syncContext) +52
    System.Net.Mail.SmtpClient.SendAsync(MailMessage message, Object userToken) +1269

    [SmtpException: Failure sending mail.]
    System.Net.Mail.SmtpClient.SendAsync(MailMessage message, Object userToken) +2079
    System.Net.Mail.SmtpClient.SendMailAsync(MailMessage message) +186
    MTGPQ.Controllers.DeckController.SaveDeck(Deck deck) +1323
    lambda_method(Closure , ControllerBase , Object[] ) +104
    System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +14
    System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +169
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27
    System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +22
    System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +29
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32
    System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +50
    System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225
    System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +10
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34
    System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +26
    System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
    System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
    System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +36
    System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
    System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26
    System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
    System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +545
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155


    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.114.0

    EDIT: I recreated it and it now seems OK.
  • I added a full card view based on pandas suggestion, wondernig if we should just make that default
  • night_day wrote:
    I added a full card view based on pandas suggestion, wondernig if we should just make that default

    Hrm, just FYI it isn't quite wide enough on a normal 16:9 screen to have 2 rows of 5 sadly. Its only managing 4 and then the last one falls down a line.
  • Yeah, I get 4 in a row then the fifth on the next line. I do have a 1600 width screen, but I have my toolbar down the left-hand side.
  • I think I fixed the one issue most people were having with trying to add a deck.

    Can either of you guys post a screenshot of how to full page view looks for the cards? It's showing 5 on each row for me. Thanks!
  • This image was originally 1600 wide, but I had to shrink it to fit forum post.

    eiQmc15.jpg?1
  • Now I get "There was a problem saving the deck".

    Might have something to do with the conputer I'm on. It's a bit weird with browser based stuff sometimes. I'll try another browser and/or computer.

    Suggestion: It would be nice if we could add the level of our planeswalker to the decks, to automatically display his/her abilities and mana bonuses.

    Edit: Other browser, same error. Can't try another computer till much later today. I'll try to keep you updated.
  • I fixed the sizes for the full view deck list, I think it should work on most full screen displays
  • night_day wrote:
    I fixed the sizes for the full view deck list, I think it should work on most full screen displays

    Works for me now, although I think they are a little small now icon_lol.gif
  • Still can't save a Deck. Maybe some specific card or card combination doesn't work for some reason? (I'm just guessing. I don't know much about programming.)

    I'm trying to save my current Jace Deck. Maybe you could try it yourself to see if it works.
    Anchor to the Aether
    Artificer's Epiphany
    Claustrophobia
    Harbinger of the Tides
    Jace's Sanctum
    Mizzium Meddler
    Negate
    Scrapskin Drake
    Soulblade Djinn
    Stratus Walk
  • I'm such an idiot sometimes! I had fixed the problem, but uploaded the wrong file icon_razz.gif It should be good to go now! Sorry for everyone who tried to use it and having it fail!
  • Great site. I think I'll make an account and try deckbuilding.