public JsonResult DeleteGroup(int groupId, int index) // index is group position on the page { var userId = UserId; using (var transaction = new TransactionScope()) { List <Seat> assignedSeats = _ballroomService.CollectAssignedSeats(userId); // has to be fetched before deleting group because inside seats table there is person id reference and delete rule is set to set null Group groupToDelete = _groupService.GetToDelete(userId, groupId); GroupUndo undoModel = CreateUnodModel(groupToDelete, assignedSeats, index); _groupService.Delete(groupToDelete); var undoCommand = new DeleteGroupUndoCommand { Group = undoModel }; Guid key = _undoService.RegisterUndoCommand(userId, undoCommand); transaction.Complete(); string viewData = this.RenderPartialView("~/Views/Undo/_Undo.cshtml", new UndoModel { Key = key, Description = undoCommand.Description }); return(Json(viewData, JsonRequestBehavior.AllowGet)); } }
private GroupUndo CreateUnodModel(Group deletedData, List <Seat> assignedSeats, int index) { GroupUndo undoModel = _autoMapperService.MapGroupEntitiesUndo(deletedData); undoModel.Index = index; UpdateUndoModelWithAssignedSeat(undoModel.Persons, assignedSeats); return(undoModel); }
public Group MapGroupUndoModel(GroupUndo groupUndo) { return(Mapper.Map <GroupUndo, Group>(groupUndo)); }