protected override void RunInContextEmptyResponse(UpdateCompleteAccountTreeRequest request, PersistenceContext context) { foreach (Guid id in request.DeletedTreesIds) { AccountTree entity = context.Session.Load <AccountTree>(id); entity.MarkAsDelete(); } context.Session.Flush(); //por los uniques foreach (UI.AccountTreeListItem ui in request.UpdatedTrees) { AccountTree entity = context.Session.Load <AccountTree>(ui.Id); ui.CopyTo(entity); } context.Session.Flush(); //por los uniques foreach (UI.AccountTreeListItem ui in request.CreatedTrees) { AccountTree entity = new AccountTree(ui.Id); ui.CopyTo(entity); context.Session.Save(entity); } foreach (UI.ContableAccount ui in request.UpdatedAccounts) { ContableAccount entity = context.Session.Load <ContableAccount>(ui.Id); ui.CopyTo(entity); //las modificaciones sin cambio de padres entity.AccountTree = context.Session.Load <AccountTree>(ui.AccountTreeId); } foreach (UI.ContableAccount ui in request.CreatedAccounts) { ContableAccount entity = new ContableAccount(ui.Id); ui.CopyTo(entity); entity.AccountTree = context.Session.Load <AccountTree>(ui.AccountTreeId); context.Session.Save(entity); //los grabo sin padre } //para cada una de las modificadas o creadas les pongo el padre foreach (UI.ContableAccount ui in request.UpdatedAccounts.Union(request.CreatedAccounts)) { ContableAccount entity = context.Session.Load <ContableAccount>(ui.Id); if (ui.ParentAccountId.HasValue) { entity.ParentAccount = context.Session.Load <ContableAccount>(ui.ParentAccountId.Value); } else { entity.ParentAccount = null; } } }
//TODO: Elimianar esta Accion protected override void RunInContextEmptyResponse(UpdateAccountTreeListRequest request, PersistenceContext context) { foreach (Guid id in request.DeletedIds) { AccountTree entity = context.Session.Load <AccountTree>(id); entity.MarkAsDelete(); } context.Session.Flush(); //Modifico los elementos modificados foreach (UI.AccountTreeListItem ui in request.UpdatedItems) { AccountTree entity = context.Session.Load <AccountTree>(ui.Id); /* * if (entity.Version != ui.Version) * throw new StaleObjectStateException("AccountTree", ui.Id); */ ui.CopyTo(entity); /*-* * entity.Active = ui.Active; * entity.Code = ui.Code; * entity.Description = ui.Description; * entity.Name = ui.Name; */ } context.Session.Flush(); //Creo los nuevos elementos foreach (UI.AccountTreeListItem ui in request.CreatedItems) { AccountTree entity = new AccountTree(ui.Id); ui.CopyTo(entity); context.Session.Save(entity); /*-* * AccountTree entity = new AccountTree() * { * Active = ui.Active, * Code = ui.Code, * Description = ui.Description, * Name = ui.Name * }; * context.Session.Save(entity, ui.Id); */ } }