public def_SectionItems(ISectionItem c) : this() { if (c != null) { sectionItemId = c.sectionItemId; sectionId = c.sectionId; itemId = c.itemId; subSectionId = c.subSectionId; order = c.order; validation = c.validation; display = c.display; readOnly = c.readOnly; requiredSection = c.requiredSection; requiredForm = c.requiredForm; } }
public static void UpdateWith(this ISectionItem item, ItemDTO model) { switch (item) { case PackingItem packingItem: packingItem.Title = model.Title ?? packingItem.Title; packingItem.Description = model.Description ?? packingItem.Description; packingItem.Amount = model.Amount; return; case TodoItem todoItem: todoItem.Title = model.Title ?? todoItem.Title; todoItem.Description = model.Description ?? todoItem.Description; return; } }
public IActionResult Toggle(Guid tripId, Guid sectionId, Guid itemId) { var trip = _tripsRepository.GetBy(tripId); if (trip is null) { return(NotFound("trip not found")); } var section = trip.Sections.SingleOrDefault(s => s.Id == sectionId); if (section is null) { return(NotFound("section not found")); } ISectionItem item = null; if (section is TodoSection todoSection) { item = todoSection.Items.SingleOrDefault(i => i.Id == itemId); } else if (section is PackingSection packingSection) { item = packingSection.Items.SingleOrDefault(i => i.Id == itemId); } if (item is null) { return(NotFound("item not found")); } if (item is IToggleable tItem) { tItem.Toggle(); } _tripsRepository.SaveChanges(); return(Ok()); }
public IActionResult Update(Guid tripId, Guid sectionId, Guid itemId, ItemDTO itemDTO) { // todo: validation var trip = _tripsRepository.GetBy(tripId); if (trip is null) { return(NotFound("trip not found")); } var section = trip.Sections.SingleOrDefault(s => s.Id == sectionId); if (section is null) { return(NotFound("section not found")); } ISectionItem item = null; if (section is TodoSection todoSection) { item = todoSection.Items.SingleOrDefault(i => i.Id == itemId); } else if (section is PackingSection packingSection) { item = packingSection.Items.SingleOrDefault(i => i.Id == itemId); } if (item is null) { return(NotFound("item not found")); } item.UpdateWith(itemDTO); _tripsRepository.Update(trip); _tripsRepository.SaveChanges(); return(Ok(item)); }