// добавление неисправности public async Task AppendMalfunction(MalfunctionViewData malfunctionViewData) { // поиск неисправности. если мы находим неисправность, то ругаемся что данная неисправность уже существует Malfunction malfunction = _context.Malfunctions.FirstOrDefault(m => String.Equals(m.Title, malfunctionViewData.Title, StringComparison.CurrentCultureIgnoreCase)); if (malfunction != null) { throw new WebApiException("Данная неисправность уже существует. Добавить еще одну такую же невозможно"); } // создаем неисправность malfunction = new Malfunction { TimeToFix = malfunctionViewData.TimeToFix, Title = malfunctionViewData.Title, Details = new List <Detail>() }; // создание и добавление (в случае надобности) новой детали for (int i = 0; i < malfunctionViewData.Details.Count; i++) { // поиск детали по наименованию Detail detail = _context.Details.FirstOrDefault(d => d.Title == malfunctionViewData.Details[i].Title); // если мы не находим такую деталь, то мы добавляем ее if (detail == null) { _context.Details.Add(malfunctionViewData.Details[i]); await _context.SaveChangesAsync(); } // после добавления детали при необходимости, добавляем деталь к неисправности malfunction.Details.Add(detail); } // добавляем неисправность _context.Malfunctions.Add(malfunction); await _context.SaveChangesAsync(); }
public MalfunctionViewForm(MalfunctionViewData malfunction) { this.Id = malfunction.Id; this.Title = malfunction.Title; this.Price = malfunction.Price; }