private async Task<INupkg> SafeCreatePackage(NuGetGallery.User currentUser, Stream uploadFile)
        {
            Exception caught = null;
            INupkg nugetPackage = null;
            try
            {
                nugetPackage = CreatePackage(uploadFile);
            }
            catch (InvalidPackageException ipex)
            {
                caught = ipex.AsUserSafeException();
            }
            catch (InvalidDataException idex)
            {
                caught = idex.AsUserSafeException();
            }
            catch (Exception ex)
            {
                // Can't wait for Roslyn to let us await in Catch blocks :(
                caught = ex;
            }
            if (caught != null)
            {
                caught.Log();
                // Report the error
                TempData["Message"] = caught.GetUserSafeMessage();

                // Clear the upload
                await _uploadFileService.DeleteUploadFileAsync(currentUser.Key);
            }
            return nugetPackage;
        }
        public override System.Web.Mvc.ActionResult ReportAbuse(string id, string version, NuGetGallery.ReportAbuseViewModel reportForm) {
            var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.ReportAbuse);


            callInfo.RouteValueDictionary.Add("id", id);

            callInfo.RouteValueDictionary.Add("version", version);

            callInfo.RouteValueDictionary.Add("reportForm", reportForm);


            return callInfo;
        }
        public override System.Web.Mvc.ActionResult ContactOwners(string id, NuGetGallery.ContactOwnersViewModel contactForm) {
            var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.ContactOwners);


            callInfo.RouteValueDictionary.Add("id", id);

            callInfo.RouteValueDictionary.Add("contactForm", contactForm);


            return callInfo;
        }
 public override System.Web.Mvc.ActionResult ResetPassword(string username, string token, NuGetGallery.PasswordResetViewModel model) {
     var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.ResetPassword);
     callInfo.RouteValueDictionary.Add("username", username);
     callInfo.RouteValueDictionary.Add("token", token);
     callInfo.RouteValueDictionary.Add("model", model);
     return callInfo;
 }
 public override System.Web.Mvc.ActionResult ChangePassword(NuGetGallery.PasswordChangeViewModel model) {
     var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.ChangePassword);
     callInfo.RouteValueDictionary.Add("model", model);
     return callInfo;
 }
 public override System.Web.Mvc.ActionResult Register(NuGetGallery.RegisterRequest request) {
     var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.Register);
     callInfo.RouteValueDictionary.Add("request", request);
     return callInfo;
 }
 public override System.Web.Mvc.ActionResult ResendConfirmation(NuGetGallery.ResendConfirmationEmailViewModel model) {
     var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.ResendConfirmation);
     callInfo.RouteValueDictionary.Add("model", model);
     return callInfo;
 }
 public override System.Web.Mvc.ActionResult ChangeEmail(NuGetGallery.ChangeEmailRequestModel model) {
     var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.ChangeEmail);
     callInfo.RouteValueDictionary.Add("model", model);
     return callInfo;
 }
 public override System.Web.Mvc.ActionResult Edit(NuGetGallery.EditProfileViewModel profile) {
     var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.Edit);
     callInfo.RouteValueDictionary.Add("profile", profile);
     return callInfo;
 }
        public override System.Web.Mvc.ActionResult PostCuratedPackages(string curatedFeedName, NuGetGallery.CreateCuratedPackageRequest request) {
            var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.PostCuratedPackages);


            callInfo.RouteValueDictionary.Add("curatedFeedName", curatedFeedName);

            callInfo.RouteValueDictionary.Add("request", request);


            return callInfo;
        }
        public override System.Web.Mvc.ActionResult PatchCuratedPackage(string curatedFeedName, string curatedPackageId, NuGetGallery.ModifyCuratedPackageRequest request) {
            var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.PatchCuratedPackage);


            callInfo.RouteValueDictionary.Add("curatedFeedName", curatedFeedName);

            callInfo.RouteValueDictionary.Add("curatedPackageId", curatedPackageId);

            callInfo.RouteValueDictionary.Add("request", request);


            return callInfo;
        }
 public override System.Web.Mvc.ActionResult Edit(string id, string version, NuGetGallery.EditPackageRequest formData, string returnUrl) {
     var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.Edit);
     callInfo.RouteValueDictionary.Add("id", id);
     callInfo.RouteValueDictionary.Add("version", version);
     callInfo.RouteValueDictionary.Add("formData", formData);
     callInfo.RouteValueDictionary.Add("returnUrl", returnUrl);
     return callInfo;
 }
 public override System.Web.Mvc.ActionResult SignIn(NuGetGallery.SignInRequest request, string returnUrl) {
     var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.SignIn);
     callInfo.RouteValueDictionary.Add("request", request);
     callInfo.RouteValueDictionary.Add("returnUrl", returnUrl);
     return callInfo;
 }
        public override System.Web.Mvc.ActionResult NotifyMaintainersOfAddedComment(string packageId, NuGetGallery.CommentViewModel commentViewModel) {
            var callInfo = new T4MVC_ActionResult(Area, Name, ActionNames.NotifyMaintainersOfAddedComment);


            callInfo.RouteValueDictionary.Add("packageId", packageId);

            callInfo.RouteValueDictionary.Add("commentViewModel", commentViewModel);


            return callInfo;
        }