Ejemplo n.º 1
0
        public async Task <ActionResult> SavePlay(string teamId, Models.TeamManagement.Play play)
        {
            var viewModel = new TeamViewModel();

            play.TeamId = teamId;
            await viewModel.Load(teamId);

            if (Request.Form["PlaybookType"] == "Offense")
            {
                if (viewModel.Team.Playbooks.FirstOrDefault(x => x.PlaybookType.Name == Request.Form["PlaybookType"] || x.PlaybookType.FriendlyName == Request.Form["PlaybookType"]) != null)
                {
                    play.PlaybookId = viewModel.Team.Playbooks.FirstOrDefault(x => x.PlaybookType.Name == Request.Form["PlaybookType"] || x.PlaybookType.FriendlyName == Request.Form["PlaybookType"]).Id;
                }
                else
                {
                    PlayBook newPlaybook = new PlayBook();
                    newPlaybook.TeamId       = teamId;
                    newPlaybook.PlaybookType = new PlaybookTypes {
                        Name = "Offense", FriendlyName = "Offense"
                    };
                    var playBookResult = await viewModel.CreateUpdateTeamPlayBook(newPlaybook);

                    play.PlaybookId = playBookResult.Id;
                }
            }
            else if (Request.Form["PlaybookType"] == "Defense")
            {
                if (viewModel.Team.Playbooks.FirstOrDefault(x => x.PlaybookType.Name == Request.Form["PlaybookType"] || x.PlaybookType.FriendlyName == Request.Form["PlaybookType"]) != null)
                {
                    play.PlaybookId = viewModel.Team.Playbooks.FirstOrDefault(x => x.PlaybookType.Name == Request.Form["PlaybookType"] || x.PlaybookType.FriendlyName == Request.Form["PlaybookType"]).Id;
                }
                else
                {
                    PlayBook newPlaybook = new PlayBook();
                    newPlaybook.TeamId       = teamId;
                    newPlaybook.PlaybookType = new PlaybookTypes {
                        Name = "Defense", FriendlyName = "Defense"
                    };
                    var playResult = await viewModel.CreateUpdateTeamPlayBook(newPlaybook);

                    play.PlaybookId = playResult.Id;
                }
            }
            else if (Request.Form["PlaybookType"] == "Special Team")
            {
                if (viewModel.Team.Playbooks.FirstOrDefault(x => x.PlaybookType.Name == Request.Form["PlaybookType"] || x.PlaybookType.FriendlyName == Request.Form["PlaybookType"]) != null)
                {
                    play.PlaybookId = viewModel.Team.Playbooks.FirstOrDefault(x => x.PlaybookType.Name == Request.Form["PlaybookType"] || x.PlaybookType.FriendlyName == Request.Form["PlaybookType"]).Id;
                }
                else
                {
                    PlayBook newPlaybook = new PlayBook();
                    newPlaybook.TeamId       = teamId;
                    newPlaybook.PlaybookType = new PlaybookTypes {
                        Name = "Special Team", FriendlyName = "Special Team"
                    };
                    var playResult = await viewModel.CreateUpdateTeamPlayBook(newPlaybook);

                    play.PlaybookId = playResult.Id;
                }
            }

            play.RecommendedPlays = Request.Form["RecommendedPlaysHidden"].Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => new RecommendedPlay {
                PlayId = x
            }).ToList();

            play.TeamName = viewModel.Team.Name;

            play.OffenseFormation.Name = play.OffenseFormation.FriendlyDisplay;

            play.DefenseFormation                 = new Models.TeamManagement.DefenseFormation();
            play.DefenseFormation.Name            = "Defense";
            play.DefenseFormation.FriendlyDisplay = "Defense";
            play.DefenseFormation.Id              = 1;

            if (ModelState.IsValid)
            {
                if (Request.Files.Count > 0)
                {
                    if (Request.Files.AllKeys.Contains("filepreview"))
                    {
                        var          file   = Request.Files["filepreview"];
                        MemoryStream target = new MemoryStream();
                        file.InputStream.CopyTo(target);
                        byte[] data = target.ToArray();
                        if (data.Length > 0)
                        {
                            play.PreviewUrl = await viewModel.UploadPreview(viewModel.Team.Name, "0", file.FileName, data, file.ContentLength, "UploadPreviewFiles", file.ContentType);
                        }
                    }

                    if (Request.Files.AllKeys.Contains("file"))
                    {
                        var          file   = Request.Files["file"];
                        MemoryStream target = new MemoryStream();
                        file.InputStream.CopyTo(target);
                        byte[] data = target.ToArray();
                        if (data.Length > 0)
                        {
                            play.SvgUrl = await viewModel.UploadPreview(viewModel.Team.Name, "0", file.FileName, data, file.ContentLength, "uploadedFile", file.ContentType);
                        }
                    }
                }

                if (await viewModel.SavePlay(play))
                {
                    TempData["ErrorMessage"] = "New play has been added to team";
                }
                else
                {
                    TempData["ErrorMessage"] = "There is some problem in adding play to team";
                }
            }
            else
            {
                TempData["ErrorMessage"] = "Please review fields";
            }
            ActionResult result;

            result = RedirectToAction("Library", new { teamId = teamId });
            return(await Task.FromResult(result));
        }