public async Task<ActionResult> Create(TrainingProviderViewModels.CreateViewModel createModel) { var validImageTypes = new[] { "image/gif", "image/jpeg", "image/pjpeg", "image/png" }; var logoUpload = createModel.LogoUpload; if (logoUpload == null || logoUpload.ContentLength == 0) { ModelState.AddModelError("LogoUpload", "Logo file is required."); } else if (!validImageTypes.Contains(logoUpload.ContentType)) { ModelState.AddModelError("LogoUpload", "Please choose either a GIF, JPG or PNG image."); } if (ModelState.IsValid) { try { var logoSavePath = Path.Combine(Server.MapPath(AppConstants.VirtualPaths.TrainingProvidersContent), createModel.LogoUpload.FileName); createModel.LogoUpload.SaveAs(logoSavePath); _db.TrainingProviders.Add(new TrainingProvider { Name = createModel.Name, Description = createModel.Description, SiteUrl = createModel.SiteUrl, LogoFileName = createModel.LogoUpload.FileName, UpdateFrequencyHours = createModel.UpdateFrequencyHours, AllowedUpdateUtcHours = createModel.SelectedUpdateHours, SourceUrl = createModel.SourceUrl, SourceLocation = createModel.SourceLocation, AssemblyType = createModel.AssemblyType, IsDeleted = createModel.IsDeleted }); await _db.SaveChangesAsync(); return RedirectToAction("Index"); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return View(createModel); } } return View(createModel); }
public async Task<ActionResult> Edit(TrainingProviderViewModels.EditViewModel editModel) { var validImageTypes = new[] { "image/gif", "image/jpeg", "image/pjpeg", "image/png" }; var logoUpload = editModel.LogoUpload; if (logoUpload != null && logoUpload.ContentLength != 0 && !validImageTypes.Contains(logoUpload.ContentType)) { ModelState.AddModelError("LogoUpload", "Please choose either a GIF, JPG or PNG image."); } if (ModelState.IsValid) { var currentTrainingProvider = await _db.TrainingProviders.FindAsync(editModel.Id); if (currentTrainingProvider == null) { return HttpNotFound(); } if (editModel.LogoUpload != null && editModel.LogoUpload.ContentLength != 0) { try { var logoSavePath = Path.Combine(Server.MapPath(AppConstants.VirtualPaths.TrainingProvidersContent), editModel.LogoUpload.FileName); editModel.LogoUpload.SaveAs(logoSavePath); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return View(editModel); } } currentTrainingProvider.Name = editModel.Name; currentTrainingProvider.Description = editModel.Description; currentTrainingProvider.SiteUrl = editModel.SiteUrl; currentTrainingProvider.LogoFileName = editModel.LogoUpload != null ? editModel.LogoUpload.FileName : editModel.SelectedLogo.FileName; currentTrainingProvider.UpdateFrequencyHours = editModel.UpdateFrequencyHours; currentTrainingProvider.AllowedUpdateUtcHours = editModel.SelectedUpdateHours; currentTrainingProvider.SourceUrl = editModel.SourceUrl; currentTrainingProvider.SourceLocation = editModel.SourceLocation; currentTrainingProvider.AssemblyType = editModel.AssemblyType; currentTrainingProvider.IsDeleted = editModel.IsDeleted; try { await _db.SaveChangesAsync(); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return View(editModel); } return RedirectToAction("Index"); } return View(editModel); }