public PersonaVersionEdits EditPersonas(PersonaVersionEdits edits) { var failed = new PersonaVersionEdits() { Edits = new Dictionary <string, PersonaVersionEdit>() }; using (var context = new ApplicationDbContext()) { using (var transaction = context.Database.BeginTransaction()) { try { foreach (var ed in edits.Edits) { var result = EditPersonaVersion(context, ed.Key, ed.Value); if (!result) { failed.Edits[ed.Key] = ed.Value; } } context.SaveChanges(); transaction.Commit(); return(failed); }catch (Exception e) { Console.WriteLine(e.Message); transaction.Rollback(); return(edits); } } } }
public PersonaVersionEdits EditPersonas(PersonaVersionEdits edits) { var failed = new PersonaVersionEdits() { Edits = new Dictionary <string, PersonaVersionEdit>() }; foreach (var etag in edits.Edits) { switch (etag.Value.Flag) { case EditType.Update: var current = Personas.Find(x => x.Id == etag.Key); foreach (var edit in edits.Edits) { if (current.UpdateDate == edit.Value.UpdateDate) { if (edit.Value.Archive.HasValue) { current.Archived = edit.Value.Archive.Value; } if (edit.Value.AddedAdSets != null) { foreach (var item in edit.Value.AddedAdSets) { current.AdSets.Add(SourceObjects.Find(x => x.Type == SourceObjectType.AdSet && x.SourceId == item)); } } if (edit.Value.RemovedAdSets != null) { foreach (var item in edit.Value.RemovedAdSets) { current.AdSets.RemoveAll(x => x.SourceId == item); } } } else { failed.Edits.Add(edit.Key, edit.Value); } } break; default: throw new Exception("Unsupported operation Exception"); } } return(failed); }
public PersonaVersionEdits EditPersonas([FromBody] PersonaVersionEdits edits) { return(Backend.EditPersonas(edits)); }