public async Task <IActionResult> ImageUpload(DashItemUpload newItem, List <IFormFile> files) { if (!ModelState.IsValid) { return(View(newItem)); } if (files.Count != 0) // only need to upload photos if the user uploaded any { newItem.ImageURI = UploadImage(files, newItem.Title); } DbAccessor accessor = new DbAccessor(); if (newItem.DashboardItemID == 0) // creating new item { accessor.InsertDashItem(newItem); } else // editing pre-existing item { accessor.UpdateDashItem((DashboardItem)newItem); } return(Redirect("/AdminTools/DashManager")); }
public async Task <IActionResult> ImageUpload(string DashboardId) { string id = TempData["EditID"]?.ToString(); if (DashboardId == null & id == null) { return(Redirect("/AdminTools/DashManager")); } if (id == null) // we are going to create something { int Id = Int32.Parse(DashboardId); // todo use tryparse to check if we can actually return(View(new DashItemUpload { DashboardID = Id })); } // we are editing DbAccessor accessor = new DbAccessor(); DashItemUpload ItemToEdit = (DashItemUpload)accessor.GetDashItem(id); // get item to fill model with return(View(ItemToEdit)); }
// InsertDashItem can handle multiple types public void InsertDashItem(DashItemUpload newItem) { try { SqlCommand cmd = new SqlCommand("dbo.InsertDashItemUpload", _conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@DashboardID", SqlDbType.Int).Value = newItem.DashboardID; cmd.Parameters.Add("@Title", SqlDbType.VarChar).Value = newItem.Title; cmd.Parameters.Add("@StartDateTime", SqlDbType.DateTime).Value = newItem.StartDateTime; cmd.Parameters.Add("@EndDateTime", SqlDbType.DateTime).Value = newItem.EndDateTime; cmd.Parameters.Add("@SortOrder", SqlDbType.Int).Value = newItem.SortOrder; cmd.Parameters.Add("@ImageURI", SqlDbType.VarChar).Value = newItem.ImageURI; _conn.Open(); cmd.ExecuteNonQuery(); _conn.Close(); } catch (Exception e) { Console.WriteLine(e.Data); } }