Пример #1
0
        public JsonResult DeletePersons(PersonModificationModel model)
        {
            string userId = UserId;
            PersonModificationData data = _autoMapperService.MapPersonModificationModel(model);

            using (var transaction = new TransactionScope())
            {
                List <Seat> assignedSeats = _ballroomService.CollectAssignedSeats(userId);        // has to be fetched before deleting persons because inside seats table there is person id reference and delete rule is set to set null

                PersonsDeletedData deletedData = _personService.DeleteAndModify(userId, data);
                List <PersonUndo>  undoModel   = CreateUnodModel(deletedData, assignedSeats);

                var undoCommand = new DeletePersonsUndoCommand {
                    Persons = 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));
            }
        }
Пример #2
0
        private List <PersonUndo> CreateUnodModel(PersonsDeletedData deletedData, List <Seat> assignedSeats)
        {
            List <PersonUndo> undoModel = _autoMapperService.MapPersonEntitiesUndo(deletedData.Deleted);

            UpdateUndoModelWithRelatedPerson(undoModel, deletedData.Related.PersonsToModify);
            UpdateUndoModelWithAssignedSeat(undoModel, assignedSeats);

            return(undoModel);
        }