public override async void UpdateModelAsync(int id, MachineModel model) { if (model.MachineEvents != null) { HashSet <int> indicatorsId = MachineEventLogic.MachineEventIds(id); foreach (var itemId in indicatorsId) { MachineEventsModel data = model.MachineEvents.FirstOrDefault(prop => prop.Id.Equals(itemId)); if (data == null) { await MachineEventLogic.DeleteModel(itemId); } else { MachineEventLogic.UpdateModelAsync(itemId, data); } foreach (MachineEventsModel item in model.MachineEvents) { if (item.Id == 0) { MachineEventLogic.CreateModel(item); } } } HashSet <int> StepId = MachineEventLogic.MachineEventIds(id); foreach (var itemId in StepId) { StepModel data = model.Steps.FirstOrDefault(prop => prop.Id.Equals(itemId)); if (data == null) { await StepLogic.DeleteModel(itemId); } else { StepLogic.UpdateModelAsync(itemId, data); } foreach (StepModel item in model.Steps) { if (item.Id == 0) { StepLogic.CreateModel(item); } } } } EntityExtension.FlagForUpdate(model, IdentityService.Username, UserAgent); DbSet.Update(model); }
public async Task <int> DeleteAsync(int id) { await StepLogic.DeleteModel(id); return(await DbContext.SaveChangesAsync()); }