public ActionResult Edit(PlayerViewModel viewmodel, HttpPostedFileBase avatar)
        {
            if (ModelState.IsValid)
            {
                Player currentPlayer = _playerDb.Find(viewmodel.ID);
                if (currentPlayer == null) return HttpNotFound();

                currentPlayer.Name = viewmodel.Name;
                currentPlayer.RBI = viewmodel.RBI;
                currentPlayer.HomeRun = viewmodel.HomeRuns;
                currentPlayer.Average = viewmodel.Average;

                currentPlayer.TeamId = viewmodel.TeamId;

                try
                {
                    _playerDb.Update(currentPlayer);

                    if (avatar != null && avatar.ContentLength > 0)
                    {
                        PlayerAvatarImage currentImage = new PlayerAvatarImage(Server, currentPlayer.AvatarName);
                        try
                        {
                            System.IO.File.Delete(currentImage.AbsolutePath);
                        }
                        catch (Exception e)
                        {
                            //
                        }

                        var image = AvatarUploader.UploadFile2(Server, avatar, currentPlayer.ID, AvatarTypeEnum.Player);

                        currentPlayer.AvatarName = image.Name;
                        _playerDb.Update(currentPlayer);//updates the new image file name
                    }

                    return RedirectToAction("Details", new { id = currentPlayer.ID });
                }
                catch (CustomExceptionBase e)
                {
                    ModelState.AddModelError("", e.Message);
                }
                catch (Exception e)
                {
                    //log error
                    ModelState.AddModelError("", GenericErrorMessage);
                }
            }

            viewmodel.TeamSelectList = DropDownHelper.BuildTeamSelectList(_teamDb);

            return View(viewmodel);
        }
        public ActionResult Delete(PlayerViewModel viewmodel)
        {
            try
            {
                var player = _playerDb.Find(viewmodel.ID);
                if (player == null) return HttpNotFound();

                PlayerAvatarImage image = new PlayerAvatarImage(Server, player.AvatarName);

                try
                {
                    System.IO.File.Delete(image.AbsolutePath);
                }
                catch (Exception e)
                {
                    //log error...
                    //continue this method
                }
            }
            catch (Exception e)
            {
                //log error
                ModelState.AddModelError("", GenericErrorMessage);
                return View(viewmodel);
            }

            try
            {
                _playerDb.Delete(viewmodel.ID);
            }
            catch (Exception e)
            {
                //log error, redirect to error view isntead
                ModelState.AddModelError("", GenericDatabaseError);
                return View(viewmodel);
            }

            return RedirectToAction("Index");
        }