コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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();
            }));
        }