public IActionResult DistributeToSingers([Bind][FromForm] IEnumerable <SingerInfoViewModel> model, int songId, string returnUrl = null) { int distributed = 0; foreach (var singerInfo in model.Where(m => m.SelectedForAction)) { var sheetsInfo = _sheetsInfoMapper.FindAll().FirstOrDefault(si => si.SongId == songId && si.SingerId == singerInfo.Id); if (sheetsInfo != null) { sheetsInfo.Status = SheetInfoType.HasCopy; _sheetsInfoMapper.Update(sheetsInfo); distributed++; } else { sheetsInfo = new Models.ManyToMany.SingerSong { SingerId = singerInfo.Id, SongId = songId, Status = SheetInfoType.HasCopy }; _sheetsInfoMapper.Create(sheetsInfo); distributed++; } } var song = _songMapper.Find(songId); song.SheetsAvailable -= distributed; _songMapper.Update(song); return(Redirect(returnUrl)); }
public IActionResult OrderForSingers([Bind][FromForm] IEnumerable <SingerInfoViewModel> model, int songId, string returnUrl = null) { foreach (var singerInfo in model.Where(m => m.SelectedForAction)) { var sheetsInfo = _sheetsInfoMapper.FindAll().FirstOrDefault(si => si.SongId == songId && si.SingerId == singerInfo.Id); if (sheetsInfo != null) { sheetsInfo.Status = SheetInfoType.Ordered; _sheetsInfoMapper.Update(sheetsInfo); } else { sheetsInfo = new Models.ManyToMany.SingerSong { SingerId = singerInfo.Id, SongId = songId, Status = SheetInfoType.Ordered }; _sheetsInfoMapper.Create(sheetsInfo); } } return(Redirect(returnUrl)); }