public async Task <ActionResult> Band(MusicViewModel band, HttpPostedFileBase file) { var model = new MusicViewModel { Bands = await _bandRepository.GetAllyAsync(), Genres = await _genreRepository.GetAllyAsync() }; var bandCheck = new Band(); var allowedExtensions = new[] { ".Jpg", ".png", ".jpg", "jpeg" }; var genre = await _genreRepository.GetByIdAsync(band.GenreId); try { if (!ModelState.IsValid) { ModelState.AddModelError(string.Empty, "لطفا مقدار های مناسب پر کنید"); } if (string.IsNullOrEmpty(band.GenreOldName)) { band.BandOldName = band.BandNewName; } bandCheck = await _bandRepository.GetByNameAsync(band.BandOldName); if (band.ActionType == "create" || band.ActionType == "edit") { if (bandCheck == null) { if (file != null) { var fileName = Path.GetFileName(file.FileName); var ext = Path.GetExtension(file.FileName); if (allowedExtensions.Contains(ext)) { string name = Path.GetFileNameWithoutExtension(fileName); string myfile = name + "_" + band.BandNewName + ext; var path = Path.Combine(Server.MapPath("~/DownloadCenter/Band"), myfile); band.BandImage = "~/DownloadCenter/Band/" + myfile; file.SaveAs(path); } else { ModelState.AddModelError(string.Empty, "Please choose only Image file"); } } var bandmodel = new Band { Name = band.BandOldName, Description = band.BandDescption, ImageUrl = band.BandImage }; bandmodel.Genres.Add(genre); await _bandRepository.CreateAsync(bandmodel); model.Bands = await _bandRepository.GetAllyAsync(); //return RedirectToAction("Section", new { surveyName = surveys.SurveyTitle }); return(View(model)); } else { if (file != null) { var fileName = Path.GetFileName(file.FileName); var ext = Path.GetExtension(file.FileName); if (allowedExtensions.Contains(ext)) { string name = Path.GetFileNameWithoutExtension(fileName); string myfile = name + "_" + band.BandNewName + ext; var path = Path.Combine(Server.MapPath("~/DownloadCenter/Band"), myfile); band.BandImage = "~/DownloadCenter/Band/" + myfile; file.SaveAs(path); } else { ModelState.AddModelError(string.Empty, "Please choose only Image file"); } } bandCheck.Name = (band.BandOldName == band.BandNewName ? band.BandOldName : band.BandNewName); bandCheck.Description = band.BandDescption; bandCheck.ImageUrl = band.BandImage ?? bandCheck.ImageUrl; if (genre != null) { bandCheck.Genres.Add(genre); } await _bandRepository.EditAsync(bandCheck.Id, bandCheck); } } else { await _bandRepository.DeleteAsync(bandCheck.Id); } model.Bands = await _bandRepository.GetAllyAsync(); //return RedirectToAction("Section", new { surveyName = model.GenreOldName }); return(View(model)); } catch (Exception e) { ModelState.AddModelError(string.Empty, e.Message); return(View(model: model)); } }