Exemplo n.º 1
0
        /// <summary>
        /// Converts and copies a object from Recipient to a format supported in FaRService, ServiceSupplier.
        /// </summary>
        private IsReachableResponse ConvertReachabilityStatusToIsReachableResponse(ReachabilityStatus reachabilityStatus, IsReachableResponse isReachableResponse, Guid requestId)
        {
            LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.FaR.FaRService: incoming ConvertReachabilityStatusToIsReachableResponse with RequestId: {0}", requestId));
            //Control if pending and senderaccepted is true, user/company have reactivated their mailbox and all persons havent signed, doesnt accept messages until everyone signs.
            if (reachabilityStatus.AccountStatus.Pending && reachabilityStatus.SenderAccepted)
            {
                isReachableResponse.IsReachable = false;
            }
            else
            {
                isReachableResponse.IsReachable = reachabilityStatus.SenderAccepted;
            }

            if (reachabilityStatus.AccountStatus.ServiceSupplier != null)
            {
                var serviceSupplier = new FaR.DataTransferObjects.BusinessObject.ServiceSupplier()
                {
                    Id = reachabilityStatus.AccountStatus.ServiceSupplier.Id,
                    InternalServiceAdress = reachabilityStatus.AccountStatus.ServiceSupplier.InternalServiceAdress,
                    Name          = reachabilityStatus.AccountStatus.ServiceSupplier.Name,
                    ServiceAdress = reachabilityStatus.AccountStatus.ServiceSupplier.ServiceAdress,
                    UIAdress      = reachabilityStatus.AccountStatus.ServiceSupplier.UIAdress
                };

                isReachableResponse.ServiceSupplier = serviceSupplier;
            }

            LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.FaR.FaRService: leaving ConvertReachabilityStatusToIsReachableResponse with RequestId: {0}", requestId));
            return(isReachableResponse);
        }
Exemplo n.º 2
0
 public Record(UniqueAddress observer, UniqueAddress subject, ReachabilityStatus status, long version)
 {
     _observer = observer;
     _subject = subject;
     _status = status;
     _version = version;
 }
Exemplo n.º 3
0
 /// <summary>
 /// TBD
 /// </summary>
 /// <param name="observer">TBD</param>
 /// <param name="subject">TBD</param>
 /// <param name="status">TBD</param>
 /// <param name="version">TBD</param>
 public Record(UniqueAddress observer, UniqueAddress subject, ReachabilityStatus status, long version)
 {
     _observer = observer;
     _subject  = subject;
     _status   = status;
     _version  = version;
 }
Exemplo n.º 4
0
        protected virtual void OnReachabilityNotification(NetworkReachabilityFlags flags)
        {
            if (ReachabilityUpdated == null)
            {
                return;
            }

            ReachabilityStatus status = ReachabilityStatus.NotReachable;

            if (!IsReachableWithFlags(flags))
            {
                status = ReachabilityStatus.NotReachable;
            }
            else if (ReachableViaWWAN(flags))
            {
                status = ReachabilityStatus.ViaWWAN;
            }
            else if (ReachableViaWiFi(flags))
            {
                status = ReachabilityStatus.ViaWiFi;
            }

            if (ReachabilityUpdated != null)
            {
                ReachabilityUpdated(this, new ReachabilityEventArgs(status));
            }
        }
Exemplo n.º 5
0
        public ReachabilityStatus Times(ReachabilityStatus status)
        {
            var newRs = new ReachabilityStatus();

            newRs.EvenReachable = (status.EvenReachable && this.EvenReachable) || (status.OddReachable && this.OddReachable);
            newRs.OddReachable  = (status.EvenReachable && this.OddReachable) || (status.OddReachable && this.EvenReachable);
            return(newRs);
        }
Exemplo n.º 6
0
        private Reachability Change(UniqueAddress observer, UniqueAddress subject, ReachabilityStatus status)
        {
            var v               = NextVersion(observer);
            var newVersions     = Versions.SetItem(observer, v);
            var newRecord       = new Record(observer, subject, status, v);
            var oldObserverRows = ObserverRows(observer);

            // don't record Reachable observation if nothing has been noted so far
            if (oldObserverRows == null && status == ReachabilityStatus.Reachable)
            {
                return(this);
            }

            // otherwise, create new instance including this first observation
            if (oldObserverRows == null)
            {
                return(new Reachability(Records.Add(newRecord), newVersions));
            }

            if (!oldObserverRows.TryGetValue(subject, out var oldRecord))
            {
                if (status == ReachabilityStatus.Reachable &&
                    oldObserverRows.Values.All(r => r.Status == ReachabilityStatus.Reachable))
                {
                    return(new Reachability(Records.FindAll(r => !r.Observer.Equals(observer)), newVersions));
                }
                return(new Reachability(Records.Add(newRecord), newVersions));
            }

            if (oldRecord.Status == ReachabilityStatus.Terminated || oldRecord.Status == status)
            {
                return(this);
            }

            if (status == ReachabilityStatus.Reachable &&
                oldObserverRows.Values.All(r => r.Status == ReachabilityStatus.Reachable || r.Subject.Equals(subject)))
            {
                return(new Reachability(Records.FindAll(r => !r.Observer.Equals(observer)), newVersions));
            }

            var newRecords = Records.SetItem(Records.IndexOf(oldRecord), newRecord);

            return(new Reachability(newRecords, newVersions));
        }
Exemplo n.º 7
0
        private Reachability Change(UniqueAddress observer, UniqueAddress subject, ReachabilityStatus status)
        {
            var v               = NextVersion(observer);
            var newVersions     = _versions.SetItem(observer, v);
            var newRecord       = new Record(observer, subject, status, v);
            var oldObserverRows = ObserverRows(observer);

            if (oldObserverRows == null && status == ReachabilityStatus.Reachable)
            {
                return(this);
            }
            if (oldObserverRows == null)
            {
                return(new Reachability(_records.Add(newRecord), newVersions));
            }

            Record oldRecord = null;

            oldObserverRows.TryGetValue(subject, out oldRecord);
            if (oldRecord == null)
            {
                if (status == ReachabilityStatus.Reachable &&
                    oldObserverRows.Values.All(r => r.Status == ReachabilityStatus.Reachable))
                {
                    return(new Reachability(_records.FindAll(r => !r.Observer.Equals(observer)), newVersions));
                }
                return(new Reachability(_records.Add(newRecord), newVersions));
            }
            if (oldRecord.Status == ReachabilityStatus.Terminated || oldRecord.Status == status)
            {
                return(this);
            }

            if (status == ReachabilityStatus.Reachable &&
                oldObserverRows.Values.All(r => r.Status == ReachabilityStatus.Reachable || r.Subject.Equals(subject)))
            {
                return(new Reachability(_records.FindAll(r => !r.Observer.Equals(observer)), newVersions));
            }

            var newRecords = _records.SetItem(_records.IndexOf(oldRecord), newRecord);

            return(new Reachability(newRecords, newVersions));
        }
        protected virtual void UpdateLANDataExchangeButtonText(ReachabilityStatus status)
        {
            InvokeOnMainThread(delegate() {
                switch (status)
                {
                case ReachabilityStatus.ViaWiFi:
                    btnStartDataExchange.SetTitle("Send/receive data", UIControlState.Normal);
                    btnStartDataExchange.SetTitleColor(btnChangeDate.TitleColor(UIControlState.Normal), UIControlState.Normal);
                    btnStartDataExchange.Enabled  = true;
                    aivConnectingToService.Hidden = true;
                    break;

                default:
                    btnStartDataExchange.SetTitle("Connecting to data service", UIControlState.Normal);
                    btnStartDataExchange.Enabled  = false;
                    aivConnectingToService.Hidden = false;
                    aivConnectingToService.StartAnimating();
                    break;
                }
            });
        }
        protected virtual void UpdateFTPDataExchangeButtonText(ReachabilityStatus status)
        {
            Log("FTP Reachability event fired.\nFTP Reachability status: " + status);
            switch (status)
            {
            case ReachabilityStatus.NotReachable:
                btnFTPDataExchange.SetTitle("FTP: Server unreachable", UIControlState.Normal);
                btnFTPDataExchange.SetTitleColor(UIColor.Gray, UIControlState.Normal);
                btnFTPDataExchange.Enabled = false;
                break;

            case ReachabilityStatus.ViaWiFi:
                btnFTPDataExchange.SetTitle("FTP: Send/receive data", UIControlState.Normal);
                btnFTPDataExchange.SetTitleColor(btnChangeDate.TitleColor(UIControlState.Normal), UIControlState.Normal);
                btnFTPDataExchange.Enabled = true;
                break;

            case ReachabilityStatus.ViaWWAN:
                btnFTPDataExchange.SetTitle("FTP: Send/receive data", UIControlState.Normal);
                btnFTPDataExchange.SetTitleColor(btnChangeDate.TitleColor(UIControlState.Normal), UIControlState.Normal);
                btnFTPDataExchange.Enabled = true;
                break;
            }
        }
Exemplo n.º 10
0
        private Reachability Change(UniqueAddress observer, UniqueAddress subject, ReachabilityStatus status)
        {
            var v = NextVersion(observer);
            var newVersions = _versions.SetItem(observer, v);
            var newRecord = new Record(observer, subject, status, v);
            var oldObserverRows = ObserverRows(observer);
            if (oldObserverRows == null && status == ReachabilityStatus.Reachable) return this;
            if (oldObserverRows == null) return new Reachability(_records.Add(newRecord), newVersions);

            Record oldRecord = null;
            oldObserverRows.TryGetValue(subject, out oldRecord);
            if (oldRecord == null)
            {
                if (status == ReachabilityStatus.Reachable &&
                    oldObserverRows.Values.All(r => r.Status == ReachabilityStatus.Reachable))
                {
                    return new Reachability(_records.FindAll(r => !r.Observer.Equals(observer)), newVersions);
                }
                return new Reachability(_records.Add(newRecord), newVersions);
            }
            if (oldRecord.Status == ReachabilityStatus.Terminated || oldRecord.Status == status)
                return this;

            if(status == ReachabilityStatus.Reachable && 
                oldObserverRows.Values.All(r => r.Status == ReachabilityStatus.Reachable || r.Subject.Equals(subject)))
                return new Reachability(_records.FindAll(r => !r.Observer.Equals(observer)), newVersions);

            var newRecords = _records.SetItem(_records.IndexOf(oldRecord), newRecord);
            return new Reachability(newRecords, newVersions);
        }
Exemplo n.º 11
0
 public ReachabilityEventArgs(ReachabilityStatus status)
 {
     _status = status;
 }
Exemplo n.º 12
0
 public ReachabilityEventArgs(ReachabilityStatus status)
 {
     _status = status;
 }
        protected virtual void UpdateStatusLabel(ReachabilityStatus status, UILabel label)
        {
            switch (status)
            {
                case ReachabilityStatus.NotReachable:
                    label.Text = "Not Reachable";
                    break;

                case ReachabilityStatus.ViaWiFi:
                    label.Text = "Via WiFi";
                    break;

                case ReachabilityStatus.ViaWWAN:
                    label.Text = "Via WWAN";
                    break;

                default:
                    label.Text = "Unexpected status";
                    break;
            }
        }