public async Task <IActionResult> CreateApp(CreateAppViewModel vm) { var stores = await _AppsHelper.GetOwnedStores(GetUserId()); if (stores.Length == 0) { StatusMessage = "Error: You must own at least one store"; return(RedirectToAction(nameof(ListApps))); } var selectedStore = vm.SelectedStore; vm.SetStores(stores); vm.SelectedStore = selectedStore; if (!Enum.TryParse <AppType>(vm.SelectedAppType, out AppType appType)) { ModelState.AddModelError(nameof(vm.SelectedAppType), "Invalid App Type"); } if (!ModelState.IsValid) { return(View(vm)); } if (!stores.Any(s => s.Id == selectedStore)) { StatusMessage = "Error: You are not owner of this store"; return(RedirectToAction(nameof(ListApps))); } var id = Encoders.Base58.EncodeData(RandomUtils.GetBytes(20)); using (var ctx = _ContextFactory.CreateContext()) { var appData = new AppData() { Id = id }; appData.StoreDataId = selectedStore; appData.Name = vm.Name; appData.AppType = appType.ToString(); ctx.Apps.Add(appData); await ctx.SaveChangesAsync(); } StatusMessage = "App successfully created"; CreatedAppId = id; switch (appType) { case AppType.PointOfSale: return(RedirectToAction(nameof(UpdatePointOfSale), new { appId = id })); case AppType.Crowdfund: return(RedirectToAction(nameof(UpdateCrowdfund), new { appId = id })); default: return(RedirectToAction(nameof(ListApps))); } }
public async Task <IActionResult> CreateApp(CreateAppViewModel vm) { var stores = await _AppService.GetOwnedStores(GetUserId()); if (stores.Length == 0) { TempData.SetStatusMessageModel(new StatusMessageModel() { Html = $"Error: You need to create at least one store. <a href='{(Url.Action("CreateStore", "UserStores"))}' class='alert-link'>Create store</a>", Severity = StatusMessageModel.StatusSeverity.Error }); return(RedirectToAction(nameof(ListApps))); } var selectedStore = vm.SelectedStore; vm.SetStores(stores); vm.SelectedStore = selectedStore; if (!Enum.TryParse <AppType>(vm.SelectedAppType, out AppType appType)) { ModelState.AddModelError(nameof(vm.SelectedAppType), "Invalid App Type"); } if (!ModelState.IsValid) { return(View(vm)); } if (!stores.Any(s => s.Id == selectedStore)) { TempData[WellKnownTempData.ErrorMessage] = "You are not owner of this store"; return(RedirectToAction(nameof(ListApps))); } var appData = new AppData { StoreDataId = selectedStore, Name = vm.Name, AppType = appType.ToString() }; await _AppService.UpdateOrCreateApp(appData); TempData[WellKnownTempData.SuccessMessage] = "App successfully created"; CreatedAppId = appData.Id; switch (appType) { case AppType.PointOfSale: return(RedirectToAction(nameof(UpdatePointOfSale), new { appId = appData.Id })); case AppType.Crowdfund: return(RedirectToAction(nameof(UpdateCrowdfund), new { appId = appData.Id })); default: return(RedirectToAction(nameof(ListApps))); } }
public async Task <IActionResult> CreateApp() { var stores = await GetOwnedStores(); if (stores.Length == 0) { StatusMessage = "Error: You must have created at least one store"; return(RedirectToAction(nameof(ListApps))); } var vm = new CreateAppViewModel(); vm.SetStores(stores); return(View(vm)); }
public async Task <IActionResult> CreateApp() { var stores = await _AppService.GetOwnedStores(GetUserId()); if (stores.Length == 0) { TempData.SetStatusMessageModel(new StatusMessageModel() { Html = $"Error: You need to create at least one store. <a href='{(Url.Action("CreateStore", "UserStores"))}' class='alert-link'>Create store</a>", Severity = StatusMessageModel.StatusSeverity.Error }); return(RedirectToAction(nameof(ListApps))); } var vm = new CreateAppViewModel(); vm.SetStores(stores); return(View(vm)); }
public async Task <IActionResult> CreateApp() { var stores = await _AppsHelper.GetOwnedStores(GetUserId()); if (stores.Length == 0) { StatusMessage = new StatusMessageModel() { Html = $"Error: You must have created at least one store. <a href='{(Url.Action("CreateStore", "UserStores"))}'>Create store</a>", Severity = StatusMessageModel.StatusSeverity.Error }.ToString(); return(RedirectToAction(nameof(ListApps))); } var vm = new CreateAppViewModel(); vm.SetStores(stores); return(View(vm)); }
public async Task <IActionResult> CreateApp() { var stores = await _AppService.GetOwnedStores(GetUserId()); if (stores.Length == 0) { StatusMessage = new StatusMessageModel() { Html = $"Error: Necesitas crear al menos una tienda.. <a href='{(Url.Action("CreateStore", "UserStores"))}'>Crear tienda</a>", Severity = StatusMessageModel.StatusSeverity.Error }.ToString(); return(RedirectToAction(nameof(ListApps))); } var vm = new CreateAppViewModel(); vm.SetStores(stores); return(View(vm)); }
public async Task <IActionResult> CreateApp(CreateAppViewModel vm) { var stores = await _AppService.GetOwnedStores(GetUserId()); if (stores.Length == 0) { StatusMessage = new StatusMessageModel() { Html = $"Error: Necesitas crear al menos una tienda. <a href='{(Url.Action("CreateStore", "UserStores"))}'>Crear tienda</a>", Severity = StatusMessageModel.StatusSeverity.Error }.ToString(); return(RedirectToAction(nameof(ListApps))); } var selectedStore = vm.SelectedStore; vm.SetStores(stores); vm.SelectedStore = selectedStore; if (!Enum.TryParse <AppType>(vm.SelectedAppType, out AppType appType)) { ModelState.AddModelError(nameof(vm.SelectedAppType), "Tipo de aplicación no válido"); } if (!ModelState.IsValid) { return(View(vm)); } if (!stores.Any(s => s.Id == selectedStore)) { StatusMessage = "Error: No eres propietario de esta tienda."; return(RedirectToAction(nameof(ListApps))); } var id = Encoders.Base58.EncodeData(RandomUtils.GetBytes(20)); using (var ctx = _ContextFactory.CreateContext()) { var appData = new AppData() { Id = id }; appData.StoreDataId = selectedStore; appData.Name = vm.Name; appData.AppType = appType.ToString(); ctx.Apps.Add(appData); await ctx.SaveChangesAsync(); } StatusMessage = "Aplicación creada con éxito"; CreatedAppId = id; switch (appType) { case AppType.PointOfSale: return(RedirectToAction(nameof(UpdatePointOfSale), new { appId = id })); case AppType.Crowdfund: return(RedirectToAction(nameof(UpdateCrowdfund), new { appId = id })); default: return(RedirectToAction(nameof(ListApps))); } }