Exemple #1
0
    public IList <IInternalFriend> ParseFriendships(GetStateResponse response, IUserDatabase userDatabase)
    {
        List <IInternalFriend> list  = new List <IInternalFriend>();
        List <User>            users = response.Users;

        if (response.Friendships != null)
        {
            foreach (Friendship friendship in response.Friendships)
            {
                string userId          = friendship.FriendUserId;
                bool   value           = friendship.IsTrusted.Value;
                string displayNameText = string.Empty;
                string firstName       = string.Empty;
                if (users != null)
                {
                    User user = users.FirstOrDefault((User u) => u.UserId == userId);
                    if (user != null)
                    {
                        displayNameText = user.DisplayName;
                        firstName       = user.FirstName;
                    }
                }
                IInternalFriend item = RemoteUserFactory.CreateFriend(userId, value, displayNameText, firstName, userDatabase);
                list.Add(item);
            }
        }
        return(list);
    }
Exemple #2
0
        public void GetState_ShouldReturn_CommandWouldCauseOffGridStatus_UpperBound()
        {
            var initialState = new State
            {
                FaceDirection = Direction.North,
                Position      = new GridPosition {
                    XPos = 2, YPos = 1
                }
            };
            var commandSequence = "RMMLM";
            var expected        = new GetStateResponse
            {
                StateResult = new State {
                    FaceDirection = Direction.North, Position = new GridPosition {
                        XPos = 3, YPos = 2
                    }
                },
                StateStatus = GetStateStatus.CommandCouldCauseOffGrid
            };

            stateMachine.SetGridBoundary(new GridPosition {
                XPos = 3, YPos = 3
            });
            var result = stateMachine.GetState(initialState, commandSequence);

            Assert.AreEqual(GetStateStatus.CommandCouldCauseOffGrid, result.StateStatus);
            Assert.AreEqual(expected.StateResult, result.StateResult);
        }
Exemple #3
0
 public void ParseFriendshipInvitations(GetStateResponse response, IUserDatabase userDatabase, IInternalLocalUser localUser, out IList <IInternalIncomingFriendInvitation> incomingFriendInvitations, out IList <IInternalOutgoingFriendInvitation> outgoingFriendInvitations)
 {
     incomingFriendInvitations = new List <IInternalIncomingFriendInvitation>();
     outgoingFriendInvitations = new List <IInternalOutgoingFriendInvitation>();
     if (response.FriendshipInvitations != null)
     {
         foreach (FriendshipInvitation invitation in response.FriendshipInvitations)
         {
             List <User>       users     = response.Users;
             Func <User, bool> predicate = (User user) => user.DisplayName == invitation.FriendDisplayName;
             string            firstName = users.FirstOrDefault(predicate)?.FirstName;
             if (invitation.IsInviter.Value)
             {
                 IInternalUnidentifiedUser invitee = RemoteUserFactory.CreateUnidentifiedUser(invitation.FriendDisplayName, firstName, userDatabase);
                 OutgoingFriendInvitation  outgoingFriendInvitation = new OutgoingFriendInvitation(localUser, invitee, invitation.IsTrusted.Value);
                 outgoingFriendInvitation.SendComplete(invitation.FriendshipInvitationId.Value);
                 outgoingFriendInvitations.Add(outgoingFriendInvitation);
             }
             else
             {
                 IInternalUnidentifiedUser inviter = RemoteUserFactory.CreateUnidentifiedUser(invitation.FriendDisplayName, firstName, userDatabase);
                 IncomingFriendInvitation  incomingFriendInvitation = new IncomingFriendInvitation(inviter, localUser, invitation.IsTrusted.Value);
                 incomingFriendInvitation.SendComplete(invitation.FriendshipInvitationId.Value);
                 incomingFriendInvitations.Add(incomingFriendInvitation);
             }
         }
     }
 }
Exemple #4
0
 public void ParsePollIntervals(GetStateResponse response, out int[] pollIntervals, out int[] pokeIntervals)
 {
     pollIntervals = (from i in response.PollIntervals
                      select i.Value * 1000).ToArray();
     pokeIntervals = (from i in response.PokeIntervals
                      select i.Value * 1000).ToArray();
 }
 private static bool ValidateResponse(GetStateResponse response)
 {
     if (response.FriendshipInvitations != null && response.FriendshipInvitations.Any((FriendshipInvitation i) => !i.IsTrusted.HasValue || !i.FriendshipInvitationId.HasValue))
     {
         return(false);
     }
     if (response.Friendships != null && response.Friendships.Any((Friendship f) => !f.IsTrusted.HasValue))
     {
         return(false);
     }
     if (response.PollIntervals != null && response.PollIntervals.Any((int?p) => !p.HasValue))
     {
         return(false);
     }
     if (response.PokeIntervals != null && response.PokeIntervals.Any((int?p) => !p.HasValue))
     {
         return(false);
     }
     if (!response.Timestamp.HasValue)
     {
         return(false);
     }
     if (!response.NotificationSequenceCounter.HasValue)
     {
         return(false);
     }
     if (response.Users == null || response.Users.Any((User u) => u.HashedUserId == null))
     {
         return(false);
     }
     return(true);
 }
        public void NewState(Order order)
        {
            bool         isValid = false;
            OrderManager manager = OrderManagerFactory.Create();

            while (!isValid)
            {
                string stateName = ConsoleIO.GetStateName();
                Console.WriteLine($"Is this the correct new state: {stateName}, Y/N?");
                string correctState = Console.ReadLine().ToUpper();
                if (correctState == "Y")
                {
                    isValid = true;
                }
            }
            GetStateResponse response = new GetStateResponse();

            if (response.Success)
            {
                manager.SaveCurrentOrder(order);
                ConsoleIO.DisplayEditedOrderDetail(order);
            }
            else
            {
                response.Success = false;
                response.Message = "An error occurred: ";
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
        }
Exemple #7
0
        private void ReconcileFriendInvitations(GetStateResponse response, IInternalLocalUser localUser, IUserDatabase userDatabase)
        {
            List <FriendshipInvitation> friendshipInvitations = response.FriendshipInvitations;
            List <IInternalIncomingFriendInvitation> list     = localUser.InternalIncomingFriendInvitations.ToList();
            List <IInternalOutgoingFriendInvitation> list2    = localUser.InternalOutgoingFriendInvitations.ToList();

            if (friendshipInvitations != null)
            {
                foreach (FriendshipInvitation friendInvitation in friendshipInvitations)
                {
                    Func <IInternalIncomingFriendInvitation, bool> predicate           = (IInternalIncomingFriendInvitation i) => i.InvitationId == friendInvitation.FriendshipInvitationId;
                    IInternalIncomingFriendInvitation internalIncomingFriendInvitation = list.FirstOrDefault(predicate);
                    if (internalIncomingFriendInvitation != null)
                    {
                        if (internalIncomingFriendInvitation.RequestTrust != friendInvitation.IsTrusted)
                        {
                            internalIncomingFriendInvitation.RequestTrust = friendInvitation.IsTrusted.Value;
                        }
                        list.Remove(internalIncomingFriendInvitation);
                        continue;
                    }
                    IInternalOutgoingFriendInvitation internalOutgoingFriendInvitation = list2.FirstOrDefault((IInternalOutgoingFriendInvitation i) => i.InvitationId == friendInvitation.FriendshipInvitationId);
                    if (internalOutgoingFriendInvitation != null)
                    {
                        if (internalOutgoingFriendInvitation.RequestTrust != friendInvitation.IsTrusted)
                        {
                            internalOutgoingFriendInvitation.RequestTrust = friendInvitation.IsTrusted.Value;
                        }
                        list2.Remove(internalOutgoingFriendInvitation);
                        continue;
                    }
                    string firstName = response.Users.FirstOrDefault((User user) => user.DisplayName == friendInvitation.FriendDisplayName)?.FirstName;
                    if (friendInvitation.IsInviter.Value)
                    {
                        IInternalUnidentifiedUser invitee = RemoteUserFactory.CreateUnidentifiedUser(friendInvitation.FriendDisplayName, firstName, userDatabase);
                        OutgoingFriendInvitation  outgoingFriendInvitation = new OutgoingFriendInvitation(localUser, invitee, friendInvitation.IsTrusted.Value);
                        outgoingFriendInvitation.SendComplete(friendInvitation.FriendshipInvitationId.Value);
                        localUser.AddOutgoingFriendInvitation(outgoingFriendInvitation);
                    }
                    else
                    {
                        IInternalUnidentifiedUser inviter = RemoteUserFactory.CreateUnidentifiedUser(friendInvitation.FriendDisplayName, firstName, userDatabase);
                        IncomingFriendInvitation  incomingFriendInvitation = new IncomingFriendInvitation(inviter, localUser, friendInvitation.IsTrusted.Value);
                        incomingFriendInvitation.SendComplete(friendInvitation.FriendshipInvitationId.Value);
                        localUser.AddIncomingFriendInvitation(incomingFriendInvitation);
                    }
                }
            }
            foreach (IInternalIncomingFriendInvitation item in list)
            {
                localUser.RemoveIncomingFriendInvitation(item);
                item.Rejected();
            }
            foreach (IInternalOutgoingFriendInvitation item2 in list2)
            {
                localUser.RemoveOutgoingFriendInvitation(item2);
                item2.Rejected();
            }
        }
Exemple #8
0
        private void ReconcileFriends(GetStateResponse response, IInternalLocalUser localUser, IUserDatabase userDatabase)
        {
            List <IInternalFriend> list = localUser.InternalFriends.ToList();
            List <IInternalIncomingFriendInvitation> list2 = localUser.InternalIncomingFriendInvitations.ToList();
            List <IInternalOutgoingFriendInvitation> list3 = localUser.InternalOutgoingFriendInvitations.ToList();

            if (response.Friendships != null)
            {
                foreach (Friendship friendship in response.Friendships)
                {
                    string          friendUserId   = friendship.FriendUserId;
                    IInternalFriend internalFriend = list.FirstOrDefault((IInternalFriend f) => f.Swid == friendUserId);
                    User            user           = response.Users.First((User u) => u.UserId == friendUserId);
                    if (internalFriend != null)
                    {
                        if (internalFriend.IsTrusted != friendship.IsTrusted)
                        {
                            if (friendship.IsTrusted.Value)
                            {
                                internalFriend.ChangeTrust(isTrusted: true);
                            }
                            else
                            {
                                localUser.UntrustFriend(internalFriend);
                            }
                        }
                        list.Remove(internalFriend);
                        continue;
                    }
                    IInternalFriend internalFriend2 = RemoteUserFactory.CreateFriend(friendship.FriendUserId, friendship.IsTrusted.Value, user.DisplayName, user.FirstName, userDatabase);
                    IInternalIncomingFriendInvitation internalIncomingFriendInvitation = list2.FirstOrDefault((IInternalIncomingFriendInvitation i) => i.InternalInviter.DisplayName.Text == user.DisplayName);
                    if (internalIncomingFriendInvitation != null)
                    {
                        localUser.AddFriend(internalFriend2);
                        internalIncomingFriendInvitation.Accepted(internalFriend2.IsTrusted, internalFriend2);
                        list2.Remove(internalIncomingFriendInvitation);
                        localUser.RemoveIncomingFriendInvitation(internalIncomingFriendInvitation);
                        continue;
                    }
                    IInternalOutgoingFriendInvitation internalOutgoingFriendInvitation = list3.FirstOrDefault((IInternalOutgoingFriendInvitation i) => i.InternalInvitee.DisplayName.Text == user.DisplayName);
                    if (internalOutgoingFriendInvitation != null)
                    {
                        localUser.AddFriend(internalFriend2);
                        internalOutgoingFriendInvitation.Accepted(internalFriend2.IsTrusted, internalFriend2);
                        list3.Remove(internalOutgoingFriendInvitation);
                        localUser.RemoveOutgoingFriendInvitation(internalOutgoingFriendInvitation);
                    }
                    else
                    {
                        localUser.AddFriend(internalFriend2);
                    }
                }
            }
            foreach (IInternalFriend item in list)
            {
                localUser.RemoveFriend(item);
            }
        }
Exemple #9
0
        public void GetStateTaxDataTest(string stateAbbreviation, string stateName, decimal taxRate)
        {
            MockTaxRepo      taxRepo  = new MockTaxRepo();
            GetStateResponse response = new GetStateResponse();

            var result = taxRepo.GetStateName(stateAbbreviation);

            Assert.AreEqual(stateAbbreviation, result.StateAbbreviation);
        }
 public void SyncToGetStateResponse(GetStateResponse response, Action callback)
 {
     if (response.Alerts != null)
     {
         foreach (Disney.Mix.SDK.Internal.MixDomain.Alert alert in response.Alerts)
         {
             AddAlert(new Alert(alert));
         }
     }
     ClearFriends();
     if (response.Friendships != null)
     {
         foreach (Friendship friendship in response.Friendships)
         {
             PersistUser(friendship.FriendUserId, null, null, null, null);
             FriendDocument friendDocument = new FriendDocument();
             friendDocument.Swid      = friendship.FriendUserId;
             friendDocument.IsTrusted = friendship.IsTrusted.Value;
             FriendDocument doc = friendDocument;
             InsertFriend(doc);
         }
     }
     ClearFriendInvitations();
     if (response.FriendshipInvitations != null)
     {
         foreach (FriendshipInvitation friendshipInvitation in response.FriendshipInvitations)
         {
             List <User>       source    = response.Users;
             Func <User, bool> predicate = (User user) => user.DisplayName == friendshipInvitation.FriendDisplayName;
             User user2 = source.FirstOrDefault(predicate);
             if (user2 != null)
             {
                 string firstName    = user2.FirstName;
                 string userId       = user2.UserId;
                 string hashedUserId = user2.HashedUserId;
                 string status       = user2.Status;
                 PersistUser(userId, hashedUserId, friendshipInvitation.FriendDisplayName, firstName, status);
             }
             FriendInvitationDocument friendInvitationDocument = new FriendInvitationDocument();
             friendInvitationDocument.FriendInvitationId = friendshipInvitation.FriendshipInvitationId.Value;
             friendInvitationDocument.IsInviter          = friendshipInvitation.IsInviter.Value;
             friendInvitationDocument.IsTrusted          = friendshipInvitation.IsTrusted.Value;
             friendInvitationDocument.DisplayName        = friendshipInvitation.FriendDisplayName;
             FriendInvitationDocument doc2 = friendInvitationDocument;
             InsertFriendInvitation(doc2);
         }
     }
     if (response.Users != null)
     {
         foreach (User user3 in response.Users)
         {
             PersistUser(user3.UserId, user3.HashedUserId, user3.DisplayName, user3.FirstName, user3.Status);
         }
     }
     callback();
 }
        private async Task SendResponseWithState <T>(T state, TestClient <DaprClient> .TestGrpcRequest request)
        {
            var stateData     = TypeConverters.ToJsonByteString(state, new JsonSerializerOptions(JsonSerializerDefaults.Web));
            var stateResponse = new GetStateResponse()
            {
                Data = stateData,
                Etag = "test",
            };

            await request.CompleteWithMessageAsync(stateResponse);
        }
Exemple #12
0
        private async void SendResponseWithState <T>(T state, TestHttpClient.Entry entry)
        {
            var stateData     = TypeConverters.ToJsonByteString(state);
            var stateResponse = new GetStateResponse();

            stateResponse.Data = stateData;
            stateResponse.Etag = "test";

            var streamContent = await GrpcUtils.CreateResponseContent(stateResponse);

            var response = GrpcUtils.CreateResponse(HttpStatusCode.OK, streamContent);

            entry.Completion.SetResult(response);
        }
        private async Task SendResponseWithState <T>(T state, TestHttpClient.Entry entry)
        {
            var stateData     = TypeConverters.ToJsonByteString(state, new JsonSerializerOptions(JsonSerializerDefaults.Web));
            var stateResponse = new GetStateResponse
            {
                Data = stateData,
                Etag = "test",
            };

            var streamContent = await GrpcUtils.CreateResponseContent(stateResponse);

            var response = GrpcUtils.CreateResponse(HttpStatusCode.OK, streamContent);

            entry.Completion.SetResult(response);
        }
Exemple #14
0
        public GetStateResponse GetStateTaxData(string stateAbbreviation)
        {
            GetStateResponse response = new GetStateResponse();

            response.TaxData = _taxRepository.LoadTaxForState(stateAbbreviation);

            if (response.TaxData == null)
            {
                response.Success = false;
                response.Message = $"{stateAbbreviation} is not valid!";
            }
            else
            {
                response.Success = true;
            }
            return(response);
        }
 internal void Populate(GetStateResponse response, EdisType edisType)
 {
     IgnitionAdvance       = response.CurrentIgnitionAdvance;
     Rpm                   = response.GetCurrentRpmValue(edisType);
     Load                  = response.CurrentLoadValue;
     IgnitionCell          = new IgnitionCellIndex(response.CurrentLoadBin, response.CurrentRpmBin);
     UserOutput1State      = response.UserOutput1;
     UserOutput2State      = response.UserOutput2;
     UserOutput3State      = response.UserOutput3;
     UserOutput4State      = response.UserOutput4;
     ShiftLightState       = response.ShiftLightState;
     RevLimitState         = response.RevLimitState;
     IgnitionConfiguration = response.IgnitionConfiguration;
     AuxiliaryInput        = response.AuxiliaryInputValue;
     AdvanceCorrectionBin  = response.CurrentAdvanceCorrectionBin;
     AdvanceCorrection     = response.CurrentAdvanceCorrectionValue;
 }
Exemple #16
0
        public void GetCurrentSate(object userState)
        {
            if (RefreshInProgress)
            {
                return;
            }
            RefreshInProgress = true;

            GetStateResponse response = (GetStateResponse)SendCommand(new GetStateCommand());

            if (response != null)
            {
                CurrentState.Populate(response, GlobalConfiguration.EdisType);
            }

            RefreshInProgress = false;
        }
Exemple #17
0
        private async Task<StateDataViewModel> GetStateDataAsync(TISWebServiceGetStateSupportIN stateIn)
        {
            GetStateResponse result = new GetStateResponse();

            using (TISWebService.TISWebServiceSoapClient client = GetClient())
            using (var scope = new FlowingOperationContextScope(client.InnerChannel))
            {
                OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = CreateRequestMessageProperty();
                string strIn = DCSerializer.SerializeWithDCS(stateIn);
                try
                {
                    var webResponse = await client.GetStateAsync(strIn).ContinueOnScope(scope);
                    return GetStateData(webResponse.Body);
                }
                catch (Exception ex)
                {
                    return new StateDataViewModel { Error = ex.Message };
                }

            }
        }
Exemple #18
0
        private async Task <StateDataViewModel> GetStateDataAsync(TISWebServiceGetStateSupportIN stateIn)
        {
            GetStateResponse result = new GetStateResponse();

            using (TISWebService.TISWebServiceSoapClient client = GetClient())
                using (var scope = new FlowingOperationContextScope(client.InnerChannel))
                {
                    OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = CreateRequestMessageProperty();
                    string strIn = DCSerializer.SerializeWithDCS(stateIn);
                    try
                    {
                        var webResponse = await client.GetStateAsync(strIn).ContinueOnScope(scope);

                        return(GetStateData(webResponse.Body));
                    }
                    catch (Exception ex)
                    {
                        return(new StateDataViewModel {
                            Error = ex.Message
                        });
                    }
                }
        }
Exemple #19
0
 public void ReconcileWithLocalUser(IMixWebCallFactory mixWebCallFactory, GetStateResponse response, IInternalLocalUser localUser, IUserDatabase userDatabase)
 {
     ReconcileFriends(response, localUser, userDatabase);
     ReconcileFriendInvitations(response, localUser, userDatabase);
 }
Exemple #20
0
 private static void HandleGetStateSuccess(AbstractLogger logger, IEpochTime epochTime, IDatabase database, IUserDatabase userDatabase, INotificationQueue notificationQueue, GetStateResponse response, IMixWebCallFactory mixWebCallFactory, Action <GetStateResponse> successCallback, Action failureCallback)
 {
     try
     {
         if (ValidateResponse(response))
         {
             epochTime.ReferenceTime = response.Timestamp.Value;
             database.SetServerTimeOffsetMillis((long)epochTime.Offset.TotalMilliseconds);
             logger.Debug("New time offset: " + epochTime.Offset);
             successCallback(response);
             notificationQueue.LatestSequenceNumber = response.NotificationSequenceCounter.Value;
         }
         else
         {
             logger.Critical("Error validating get state response: " + JsonParser.ToJson(response));
             failureCallback();
             notificationQueue.Clear();
         }
     }
     catch (Exception ex)
     {
         logger.Critical("Unhandled exception: " + ex);
         failureCallback();
         notificationQueue.Clear();
     }
 }
Exemple #21
0
 public IList <IInternalAlert> ParseAlerts(GetStateResponse response)
 {
     return((from a in (IEnumerable <Disney.Mix.SDK.Internal.MixDomain.Alert>)response.Alerts
             select new Disney.Mix.SDK.Internal.Alert(a)).ToList());
 }
Exemple #22
0
 public void ParsePollIntervals(GetStateResponse response, out int[] pollIntervals, out int[] pokeIntervals)
 {
     pollIntervals = response.PollIntervals.Select((int?i) => i.Value * 1000).ToArray();
     pokeIntervals = response.PokeIntervals.Select((int?i) => i.Value * 1000).ToArray();
 }
Exemple #23
0
 public IList <IInternalAlert> ParseAlerts(GetStateResponse response)
 {
     return(((IEnumerable <Disney.Mix.SDK.Internal.MixDomain.Alert>)response.Alerts).Select((Func <Disney.Mix.SDK.Internal.MixDomain.Alert, IInternalAlert>)((Disney.Mix.SDK.Internal.MixDomain.Alert a) => new Alert(a))).ToList());
 }
Exemple #24
0
        internal void Execute()
        {
            bool                isValid     = false;
            OrderManager        manager     = OrderManagerFactory.Create();
            SaveNewOrderRequest saveRequest = new SaveNewOrderRequest();

            saveRequest.Order = new Order();

            Console.Clear();
            Console.WriteLine("ADD A NEW ORDER");
            Console.WriteLine("****************************");
            Console.WriteLine();
            Console.WriteLine("NEW ORDERS MUST BE FUTURE DATED!");
            while (!isValid)
            {
                Console.WriteLine();
                DateTime orderDate = ConsoleIO.GetDate();
                Console.WriteLine();
                if (orderDate > DateTime.Today)
                {
                    saveRequest.Order.OrderDate = orderDate;
                    isValid = true;
                }
                else
                {
                    Console.WriteLine("The new order must be futured dated.");
                }
            }
            //Cannot be blank. Allowed to contain [a-z][0-9]

            string userInput = ConsoleIO.GetUserName();

            Console.WriteLine();
            saveRequest.Order.CustomerName = userInput;


            //State must be checked against the tax file.

            bool validState = false;

            while (!validState)
            {
                string stateInput = ConsoleIO.GetStateName();
                Console.WriteLine();
                GetStateResponse stateResponse = manager.GetStateTaxData(stateInput);
                if (stateResponse.Success)
                {
                    saveRequest.Order.StateTaxData = stateResponse.TaxData;
                    validState = true;
                }
                else
                {
                    stateResponse.Success = false;
                    Console.WriteLine("That state does not exist!");
                }
            }

            //verify that is the correct product type
            bool validProduct = false;

            while (!validProduct)
            {
                ProductRepo repo        = new ProductRepo();
                string      productType = ConsoleIO.GetProduct(repo.LoadProducts());
                Console.WriteLine();

                ProductTypeResponse productResponse = manager.FindProductByType(productType);
                if (productResponse.Success)
                {
                    saveRequest.Order.ProductDetail = productResponse.ProductType;
                    validProduct = true;
                }
                else
                {
                    productResponse.Success = false;
                    Console.WriteLine("That product does not exist!");
                    //Console.WriteLine(productResponse.Message);
                }
            }


            string areaInput = ConsoleIO.GetArea();

            saveRequest.Order.Area = decimal.Parse(areaInput);

            Console.WriteLine("Would you like to save this order?: Y/N");
            string saveResponse = Console.ReadLine().ToUpper();

            if (saveResponse == "Y")
            {
                manager.SaveNewOrder(saveRequest.Order);
            }
            else
            {
                Console.WriteLine("Press any key to return to Menu");
                Console.ReadKey();
                Menu.Start();
            }
        }
Exemple #25
0
 private static void HandleGetStateSuccess(AbstractLogger logger, IGetStateResponseParser getStateResponseParser, GetStateResponse response, IMixWebCallFactory mixWebCallFactory, IInternalLocalUser localUser, IUserDatabase userDatabase, INotificationPoller notificationPoller, Action <IResumeSessionResult> callback)
 {
     try
     {
         userDatabase.SyncToGetStateResponse(response, delegate
         {
             HandleGetStateSynced(getStateResponseParser, response, mixWebCallFactory, localUser, userDatabase, notificationPoller, callback);
         });
     }
     catch (Exception ex)
     {
         logger.Critical("Unhandled exception: " + ex);
         callback(new ResumeSessionResult(success: false));
     }
 }
Exemple #26
0
 private static void HandleGetStateSynced(IGetStateResponseParser getStateResponseParser, GetStateResponse response, IMixWebCallFactory mixWebCallFactory, IInternalLocalUser localUser, IUserDatabase userDatabase, INotificationPoller notificationPoller, Action <IResumeSessionResult> callback)
 {
     getStateResponseParser.ParsePollIntervals(response, out var pollIntervals, out var pokeIntervals);
     notificationPoller.PollIntervals = pollIntervals;
     notificationPoller.PokeIntervals = pokeIntervals;
     notificationPoller.Jitter        = response.NotificationIntervalsJitter.Value;
     notificationPoller.MaximumMissingNotificationTime = response.NotificationSequenceThreshold.Value;
     getStateResponseParser.ReconcileWithLocalUser(mixWebCallFactory, response, localUser, userDatabase);
     callback(new ResumeSessionResult(success: true));
 }