public async Task <IActionResult> CreateSite(CreateSiteViewModel model) { var user = await GetCurrentUserAsync(); if (!ModelState.IsValid) { model.Recover(user); return(View(model)); } try { var existing = await _sitesService.ViewMySitesAsync(await AccessToken); if (existing.Sites.Any(t => t.SiteName.ToLower().Trim() == model.SiteName.ToLower().Trim())) { ModelState.AddModelError(string.Empty, $"The site with name: {model.SiteName} already exists. Please try another name."); model.Recover(user); return(View(model)); } await _sitesService.CreateNewSiteAsync(await AccessToken, model.SiteName, model.OpenToUpload, model.OpenToDownload); user.SiteName = model.SiteName; await _userManager.UpdateAsync(user); return(RedirectToAction(nameof(Index))); } catch (AiurUnexpectedResponse e) { ModelState.AddModelError(string.Empty, e.Response.Message); model.Recover(user); return(View(model)); } }
public async Task <IActionResult> CreateSite(CreateSiteViewModel model) { var user = await GetCurrentUserAsync(); if (!ModelState.IsValid) { model.ModelStateValid = false; model.Recover(user); return(View(model)); } try { await _sitesService.CreateNewSiteAsync(await accesstoken, model.SiteName, model.OpenToUpload, model.OpenToDownload); user.SiteName = model.SiteName; await _dbContext.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } catch (AiurUnexceptedResponse e) { ModelState.AddModelError(string.Empty, e.Response.Message); model.ModelStateValid = false; model.Recover(user); return(View(model)); } }
public async Task <IActionResult> CreateSite(CreateSiteViewModel model) { var user = await GetCurrentUserAsync(); if (!ModelState.IsValid) { model.Recover(user); return(View(model)); } var app = await _dbContext.Apps.FindAsync(model.AppId); if (app == null) { return(NotFound()); } if (app.CreatorId != user.Id) { return(Unauthorized()); } try { var token = await _appsContainer.AccessToken(app.AppId, app.AppSecret); await _sitesService.CreateNewSiteAsync(token, model.SiteName, model.OpenToUpload, model.OpenToDownload); return(RedirectToAction(nameof(AppsController.ViewApp), "Apps", new { id = app.AppId, JustHaveUpdated = true })); } catch (AiurUnexpectedResponse e) { ModelState.AddModelError(string.Empty, e.Response.Message); model.Recover(user); return(View(model)); } }