public async Task <bool> Handle(DeleteEntriesRequest message, IOutputPort <DeleteEntriesResponse> outputPort) { try { await Task.Run(() => { Guid[] uids = message.Entries.Select(o => o.Uid).ToArray(); foreach (var relation in _RelationRepo.List(o => uids.Contains(o.EntryUid)).ToArray()) { _RelationRepo.Delete(relation); } foreach (var entry in message.Entries) { _EntryRepo.Delete(entry); } }); outputPort.Handle(new DeleteEntriesResponse(true, null)); return(true); } catch (Exception ex) { outputPort.Handle(new DeleteEntriesResponse(false, ex.ToString())); return(false); } }
public void DeleteEntries(IList <HostEntry> entries) { var request = new DeleteEntriesRequest(entries); PropertyBag responseBag = (PropertyBag)base.Invoke("DeleteEntries", new object[] { request.ToPropertyBag() }); var response = new DeleteEntriesResponse(responseBag); }
public PropertyBag DeleteEntries(PropertyBag bag) { return(CatchCommonExceptions(() => { DeleteEntriesRequest request = new DeleteEntriesRequest(bag); HostsFile hostsFile = GetHostsFile(); IEnumerable <HostEntry> hostEntries = hostsFile.Entries; foreach (HostEntry remoteEntry in request.Entries) { HostEntry localEntry = FindHostEntry(remoteEntry, hostEntries); hostsFile.DeleteEntry(localEntry); } hostsFile.Save(); return new DeleteEntriesResponse().ToPropertyBag(); })); }