public IActionResult EditFields(string?id, string?firstName, string?secondName, string?role, string?band, string?start, string?close) { Исполнители исполнитель = _context.Исполнители.FirstOrDefault(t => t.ID_исполнителя == Guid.Parse(id)); Исполнители_в_коллективах исполнительВКоллективе = _context.Исполнители_в_коллективах.FirstOrDefault(t => t.ID_исполнителя == Guid.Parse(id)); if (firstName != "" && firstName != null) { исполнитель.Имя = firstName; } if (secondName != "" && secondName != null) { исполнитель.Фамилия = secondName; } if (role != "" && role != null) { оли_в_коллективах роль = _context.оли_в_коллективах.FirstOrDefault(t => t.Название_роли == role); исполнительВКоллективе.ID_роли_в_коллективе = роль.ID_роли_в_коллективе; } if (band != "" && band != null) { Коллективы коллектив = _context.Коллективы.FirstOrDefault(t => t.Название_коллектива == band); исполнительВКоллективе.ID_коллектива = коллектив.ID; } if (start != "" && start != null) { исполнительВКоллективе.Дата_начала_работы_в_коллективе = DateTime.Parse(start); } if (close != "" && close != null) { исполнительВКоллективе.Дата_окончания_работы_в_коллективе = DateTime.Parse(close); } else { исполнительВКоллективе.Дата_окончания_работы_в_коллективе = null; } if (firstName != "" && secondName != "" && firstName != null & secondName != null) { _context.Update(исполнитель); } if (role != "" && band != "" && role != null && band != null) { _context.Update(исполнительВКоллективе); } _context.SaveChanges(); return(new JsonResult(new { Имя = исполнитель.Имя, Фамилия = исполнитель.Фамилия, band = band, role = role, start = исполнительВКоллективе.Дата_начала_работы_в_коллективе.ToShortDateString(), close = close == null ? "Пока что ещё учавствует в коллективе" : DateTime.Parse(close).ToShortDateString() })); }
public IActionResult Create(Исполнители исполнитель, string band, string role, DateTime start_date, DateTime?end_date) { исполнитель.ID_исполнителя = Guid.NewGuid(); if (end_date == DateTime.MinValue) { end_date = null; } Исполнители_в_коллективах исполнители = new Исполнители_в_коллективах() { ID_исполнителя = исполнитель.ID_исполнителя, ID_роли_в_коллективе = _context.оли_в_коллективах.FirstOrDefault(t => t.Название_роли == role).ID_роли_в_коллективе, ID_коллектива = _context.Коллективы.FirstOrDefault(t => t.Название_коллектива == band).ID, Дата_начала_работы_в_коллективе = start_date, Дата_окончания_работы_в_коллективе = end_date, }; _context.Add(исполнитель); _context.Add(исполнители); _context.SaveChanges(); return(Redirect("/Home/Adding")); }
public IActionResult FilterIspolnitel(string?pattern) { IQueryable <Исполнители> ispolQuer = _context.Исполнители.Where(t => t.удален == false); if (pattern != null) { ispolQuer = ispolQuer.Where(t => EF.Functions.Like(t.Фамилия, pattern + "%") || EF.Functions.Like(t.Имя, pattern + "%")); } List <Исполнители> исполнители = ispolQuer.ToList(); List <IspolniteliWithBandsViewModel> ispolniteli = new List <IspolniteliWithBandsViewModel>(); foreach (var item in исполнители) { var tmpsrc = ASCIIEncoding.ASCII.GetBytes(item.Фамилия); var tmphash = new MD5CryptoServiceProvider().ComputeHash(tmpsrc); Int32 int_hash = BitConverter.ToInt32(tmphash) % 10; Исполнители_в_коллективах роль = (from роли in _context.Исполнители_в_коллективах.Include(t => t.роли_В_Коллективах) join исполнитель in _context.Исполнители on роли.ID_исполнителя equals исполнитель.ID_исполнителя where исполнитель.ID_исполнителя == item.ID_исполнителя select роли).First(); Коллективы коллектив = (from коллективы in _context.Коллективы.Include(t => t.тип_Коллектива) join роли in _context.Исполнители_в_коллективах on коллективы.ID equals роли.ID_коллектива join исполнитель in _context.Исполнители on роли.ID_исполнителя equals исполнитель.ID_исполнителя where исполнитель.ID_исполнителя == item.ID_исполнителя select коллективы).Single(); List <Альбомы> альбомы = (from альбом in _context.Альбомы join коллективы in _context.Коллективы on альбом.ID_коллектива equals коллективы.ID join роли in _context.Исполнители_в_коллективах on коллективы.ID equals роли.ID_коллектива join иполнитель in _context.Исполнители on роли.ID_исполнителя equals иполнитель.ID_исполнителя where иполнитель.ID_исполнителя == item.ID_исполнителя && иполнитель.удален == false select альбом).ToList(); var ispolniteli_hernya = (from треки in _context.Треки join альбом in _context.Альбомы on треки.ID_альбома equals альбом.ID join коллективы in _context.Коллективы on альбом.ID_коллектива equals коллективы.ID join роли in _context.Исполнители_в_коллективах on коллективы.ID equals роли.ID_коллектива where роли.ID_исполнителя == item.ID_исполнителя && треки.удалён == false select new { треки.ID, треки.ID_альбома, треки.Название_трека }).ToList(); List <Треки> трек = new List <Треки>(); foreach (var itemitem in ispolniteli_hernya) { трек.Add(new Треки() { ID = itemitem.ID, ID_альбома = itemitem.ID_альбома, Название_трека = itemitem.Название_трека }); } ispolniteli.Add(new IspolniteliWithBandsViewModel() { исполнитель = item, роль = роль, коллективы = коллектив, альбомы = альбомы, треки = трек, pic_num = Math.Abs(int_hash) + 1 }); } return(PartialView("_IspolniteliFiltered", ispolniteli)); }
public IActionResult Details(Guid?id) { if (id == null) { return(NotFound()); } var исполнители = _context.Исполнители.FirstOrDefault(t => t.ID_исполнителя == id); if (исполнители == null) { return(NotFound()); } IspolniteliWithBandsViewModel ispolnitel; var tmpsrc = ASCIIEncoding.ASCII.GetBytes(исполнители.Фамилия); var tmphash = new MD5CryptoServiceProvider().ComputeHash(tmpsrc); Int32 int_hash = BitConverter.ToInt32(tmphash) % 10; Исполнители_в_коллективах роль = (from роли in _context.Исполнители_в_коллективах.Include(t => t.роли_В_Коллективах) join исполнитель in _context.Исполнители on роли.ID_исполнителя equals исполнитель.ID_исполнителя where исполнитель.ID_исполнителя == исполнители.ID_исполнителя select роли).First(); Коллективы коллектив = (from коллективы in _context.Коллективы.Include(t => t.тип_Коллектива) join роли in _context.Исполнители_в_коллективах on коллективы.ID equals роли.ID_коллектива join исполнитель in _context.Исполнители on роли.ID_исполнителя equals исполнитель.ID_исполнителя where исполнитель.ID_исполнителя == исполнители.ID_исполнителя select коллективы).Single(); List <Альбомы> альбомы = (from альбом in _context.Альбомы join коллективы in _context.Коллективы on альбом.ID_коллектива equals коллективы.ID join роли in _context.Исполнители_в_коллективах on коллективы.ID equals роли.ID_коллектива join иполнитель in _context.Исполнители on роли.ID_исполнителя equals иполнитель.ID_исполнителя where иполнитель.ID_исполнителя == исполнители.ID_исполнителя && альбом.удален == false select альбом).ToList(); var ispolniteli_hernya = (from треки in _context.Треки join альбом in _context.Альбомы on треки.ID_альбома equals альбом.ID join коллективы in _context.Коллективы on альбом.ID_коллектива equals коллективы.ID join роли in _context.Исполнители_в_коллективах on коллективы.ID equals роли.ID_коллектива where роли.ID_исполнителя == исполнители.ID_исполнителя && треки.удалён == false select new { треки.ID, треки.ID_альбома, треки.Название_трека }).ToList(); List <Треки> трек = new List <Треки>(); foreach (var itemitem in ispolniteli_hernya) { трек.Add(new Треки() { ID = itemitem.ID, ID_альбома = itemitem.ID_альбома, Название_трека = itemitem.Название_трека }); } ispolnitel = new IspolniteliWithBandsViewModel() { исполнитель = исполнители, коллективы = коллектив, альбомы = альбомы, треки = трек, роль = роль, pic_num = Math.Abs(int_hash) + 1, }; return(View(ispolnitel)); }