public ActionResult Pick(string cardName, int draftId)
        {
            var authMember = GetAuthorizedMember();

            using (var sl = new SystemLogic())
            {
                if (!sl.IsMemberOfDraft(authMember.Id, draftId))
                {
                    return(RedirectToAction("Index"));
                }

                var draftLogic = GetDraftLogic.FromDraftId(draftId);
                var card       = sl.GetCard(cardName);

                if (card == null)
                {
                    var likeList = sl.FindCard(cardName);
                    return(Json(new { pickresult = false, reason = "Card was not found!", alternatives = likeList }));
                }

                var pickSuccess = draftLogic.PickCard(draftId, authMember.Id, card.Id);

                if (!pickSuccess)
                {
                    return(Json(new { pickresult = false, reason = "Card was already picked, try another card!" }));
                }

                DraftViewModel dvm = GetDraftViewModel(draftId);

                return(Json(new { pickresult = true, updatedDvm = dvm }));
            }
        }
        public ActionResult Index()
        {
            var draftList = new List <DraftListViewModel>();

            using (var sl = new SystemLogic())
            {
                var authMember = GetAuthorizedMember();

                var drafts = sl.GetDraftList();
                foreach (var draft in drafts)
                {
                    var dlvm = new DraftListViewModel
                    {
                        CreatorId   = draft.Owner.Id,
                        CreatorName = sl.GetMember(draft.Owner.Id).FullName,
                        Id          = draft.Id,
                        Name        = draft.Name
                    };
                    if (authMember != null)
                    {
                        dlvm.AmIMemberOf = sl.IsMemberOfDraft
                                               (authMember.Id, draft.Id);
                    }

                    draftList.Add(dlvm);
                }
            }

            return(View(draftList));
        }
        //
        // GET: /Draft/Details/5
        public ActionResult Details(int id)
        {
            DraftViewModel dvm = GetDraftViewModel(id);

            if (dvm == null)
            {
                return(RedirectToAction("Index"));
            }

            var member = GetAuthorizedMember();

            if (member != null)
            {
                using (var sl = new SystemLogic())
                {
                    dvm.IsMemberOfDraft = sl.IsMemberOfDraft(member.Id, id);
                }
            }

            if (Request.IsAjaxRequest())
            {
                return(Json(dvm, JsonRequestBehavior.AllowGet));
            }

            return(View(dvm));
        }
        public ActionResult RemovePick(int id, string cardName)
        {
            var member = GetAuthorizedMember();

            using (var sl = new SystemLogic())
            {
                if (!sl.IsMemberOfDraft(member.Id, id))
                {
                    return(RedirectToAction("Index"));
                }

                List <FuturePick> futurePicks = sl.GetMyFuturePicks(id, member.Id);

                foreach (var futurePick in futurePicks)
                {
                    var card = sl.GetCard(futurePick.Card.Id);
                    if (card.Name.Equals(cardName))
                    {
                        sl.RemoveMyFuturePick(futurePick.Id);
                        return(Json(new { dvm = GetDraftViewModel(id), success = true }, JsonRequestBehavior.AllowGet));
                    }
                }

                return(Json(new { success = false }, JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult ListChat(int id)
        {
            var member = GetAuthorizedMember();

            using (var sl = new SystemLogic())
            {
                if (!sl.IsMemberOfDraft(member.Id, id))
                {
                    if (Request.IsAjaxRequest())
                    {
                        return(Json(new { success = false }));
                    }
                    return(RedirectToAction("Index"));
                }

                var chats = sl.GetChatList(id);

                var vmchats = ConvertToChatViewModelList(chats, member.Id);

                if (Request.IsAjaxRequest())
                {
                    return(Json(new { success = true, chats = vmchats }));
                }
                return(RedirectToAction("Details", new { id = id }));
            }
        }
        public ActionResult Chat(int draftId, string message, int chatTempId)
        {
            var member = GetAuthorizedMember();

            using (var sl = new SystemLogic())
            {
                if (!sl.IsMemberOfDraft(member.Id, draftId))
                {
                    if (Request.IsAjaxRequest())
                    {
                        return(Json(new { success = false }));
                    }
                    return(RedirectToAction("Index"));
                }

                var chat = sl.AddChat(message, draftId, member.Id);

                if (Request.IsAjaxRequest())
                {
                    return(Json(new { success = true, chatId = chat.Id, oldChatId = chatTempId }));
                }
                return(RedirectToAction("Details", new { id = draftId }));
            }
        }