public async Task <IActionResult> Create(RequestViewModel requestVM) { if (ModelState.IsValid) { string webRootPath = _hostingEnvironment.WebRootPath; var files = HttpContext.Request.Form.Files; var requestFromDb = _db.Requests.Find(requestVM.Request.Id); if (files.Count != 0) { //Image has been uploaded var uploads = Path.Combine(webRootPath, @"images\screens\"); var fileName = files[0].FileName; using (var filestream = new FileStream(Path.Combine(uploads, fileName), FileMode.Create)) { files[0].CopyTo(filestream); } Image image = new Image() { Name = fileName }; _db.Image.Add(image); ImagesAssignedToRequest imageAssignedToRequest = new ImagesAssignedToRequest() { RequestId = requestVM.Request.Id, Request = await _db.Requests.FindAsync(requestVM.Request.Id), Image = image }; await _db.ImagesAssignedToRequest.AddAsync(imageAssignedToRequest); } await _db.SaveChangesAsync(); return(RedirectToAction("Index", "Requests", new { id = requestVM.Request.Id })); } return(View()); }
public async Task <IActionResult> Create(Request request) { Team defaultTeam = _db.Teams.FirstOrDefault(); ClassificationAssignedToTeam defaultClassification = new ClassificationAssignedToTeam(); if (defaultTeam == null) { ModelState.AddModelError("", "There must be at least one team!"); } else { defaultClassification = _db.ClassificationAssignedToTeam.Where(c => c.TeamId == defaultTeam.Id).FirstOrDefault(); if (defaultClassification == null) { ModelState.AddModelError("", $"There must be at least one category assigned to the {defaultTeam.Name} team!"); } } if (ModelState.IsValid) { request.Status = Utilities.RequestStatus.New; request.SubmitDate = DateTime.Now; request.Team = defaultTeam; request.Requestor = (ApplicationUser)await _userManager.GetUserAsync(HttpContext.User); request.Classification = _db.Classifications.Find(defaultClassification.ClassificationId); _db.Add(request); await _db.SaveChangesAsync(); string webRootPath = _hostingEnvironment.WebRootPath; var files = HttpContext.Request.Form.Files; var requestFromDb = _db.Requests.Find(request.Id); if (files.Count != 0) { //Image has been uploaded var uploads = Path.Combine(webRootPath, @"images\screens\"); var fileName = files[0].FileName; using (var filestream = new FileStream(Path.Combine(uploads, fileName), FileMode.Create)) { files[0].CopyTo(filestream); } Image image = new Image() { Name = fileName }; _db.Image.Add(image); ImagesAssignedToRequest imageAssignedToRequest = new ImagesAssignedToRequest() { RequestId = request.Id, Request = await _db.Requests.FindAsync(request.Id), Image = image }; await _db.ImagesAssignedToRequest.AddAsync(imageAssignedToRequest); } await _db.SaveChangesAsync(); return(RedirectToAction("Index", "Requests", new { id = request.Id })); } return(View(request)); }