public async Task <ActionResult> Edit(AppSubmitViewModel model) { // Check if current user can modify the app. if (!User.IsSuperSubmitter() && !await _submitterService.IsOwnerAsync(User.GetSubmittership().SubmitterID, model.Submission.SubmissionID)) { return(View("NeedPermission")); } // final check var finalCheck = _appService.ValidateAppIdCharacters(model.Submission.Nickname) && await _appService.ValidateAppIdVersionIsUniqueAsync(model.Submission.Nickname, model.Submission.Version, model.Submission.SubmissionID); if (!finalCheck) { await LoadViewDataForSubmit(); ModelState.AddModelError("AppId", "unique"); return(View("Submit", model)); } // save var submission = await _appService.UpdateAsync(User.GetSubmittership(), model.Submission, model.MetadataList, model.Packages, Request.Files.GetAppImages(), model.GetSettingStatusOfImages(), new AppImageAzureStorageService()); // go to App Verify return(RedirectToRoute(SiteRouteNames.App_Verify, new { submissionId = submission.SubmissionID, showThanks = true })); }
public async Task <ActionResult> Clone(int?submissionId) { if (!submissionId.HasValue) { return(RedirectToRoute(SiteRouteNames.App_Submit)); } var submission = await _appService.GetSubmissionAsync(submissionId.Value); // Per the rule in the old site, // if the submission id doesn't refer to a submission in database, // the page will show an empty form and allow user to submit a new app. if (submission == null) { return(RedirectToRoute(SiteRouteNames.App_Submit)); } // Check if current user can clone the app specified by the submission id. // Only the owner and a super submitter can do that. if (!User.IsSuperSubmitter() && !await _submitterService.IsOwnerAsync(User.GetSubmittership().SubmitterID, submission.SubmissionID)) { return(View("NeedPermission")); } var model = AppSubmitViewModel.Clone(submission, await _appService.GetMetadataAsync(submission.SubmissionID), await _appService.GetPackagesAsync(submission.SubmissionID) ); await LoadViewDataForSubmit(); return(View("Submit", model)); }
public async Task <ActionResult> New(AppSubmitViewModel model) { // new apps are no longer accepted for Web PI if (await _appService.IsNewAppAsync(model.Submission.Nickname)) { return(View("NoNewApps")); } return(await Create(model)); }
public async Task <ActionResult> New(bool?testMode) { var model = (testMode.HasValue && testMode.Value) ? AppSubmitViewModel.Fake() : AppSubmitViewModel.Empty(); model.IsNewSubmission = true; await LoadViewDataForSubmit(); return(View("Submit", model)); }
public async Task <ActionResult> Edit(int?submissionId) { if (!submissionId.HasValue) { return(RedirectToRoute(SiteRouteNames.App_Submit)); } var submission = await _appService.GetSubmissionAsync(submissionId.Value); // Per the rule in the old site, // if the submission id doesn't refer to a submission in database, // the page will show an empty form and allow user to submit a new app. if (submission == null) { return(RedirectToRoute(SiteRouteNames.App_Submit)); } // Check if current user can modify the app. // Only the owner and a super submitter can do that. if (!User.IsSuperSubmitter() && !await _submitterService.IsOwnerAsync(User.GetSubmittership().SubmitterID, submission.SubmissionID)) { return(View("NeedPermission")); } // Check if modification of this submission is locked. if (!User.IsSuperSubmitter() && await _appService.IsModificationLockedAsync(submission.SubmissionID)) { // old: disable the form and display "This submission is being reviewed and processed by Microsoft Corp. No modifications can be made at this time." // new: go to a warning page return(View("ModificationLocked")); } var model = new AppSubmitViewModel { Submission = submission, MetadataList = await _appService.GetMetadataAsync(submission.SubmissionID), Packages = await _appService.GetPackagesAsync(submission.SubmissionID), CanEditNickname = User.IsSuperSubmitter() }; await LoadViewDataForSubmit(); return(View("Submit", model)); }
private async Task <ActionResult> Create(AppSubmitViewModel model) { // final check var finalCheck = _appService.ValidateAppIdCharacters(model.Submission.Nickname) && await _appService.ValidateAppIdVersionIsUniqueAsync(model.Submission.Nickname, model.Submission.Version, model.Submission.SubmissionID); if (!finalCheck) { await LoadViewDataForSubmit(); ModelState.AddModelError("AppId", "unique"); return(View("Submit", model)); } // save var submission = await _appService.CreateAsync(User.GetSubmittership(), model.Submission, model.MetadataList, model.Packages, Request.Files.GetAppImages(), model.GetSettingStatusOfImages(), new AppImageAzureStorageService()); // go to the App Status page // old site -> Response.Redirect("AppStatus.aspx?mode=thanks&id=" + id); return(RedirectToRoute(SiteRouteNames.App_Verify, new { submissionId = submission.SubmissionID, showThanks = true })); }
public async Task <ActionResult> Clone(AppSubmitViewModel model) { return(await Create(model)); }