예제 #1
0
        private void FetchTurn(int positionId, Action <string> callback)
        {
            DataManager <PositionTurn> turnDM = DataManagerFactory.GetManager <PositionTurn> ();
            TurnRequest request = new TurnRequest(User.Id, User.Code, positionId);

            request.Get((results, ex) => {
                if (results == null)
                {
                    callback("Not found");
                }
                else
                {
                    IEnumerator <PositionTurn> i = results.GetEnumerator();
                    if (i.MoveNext())
                    {
                        PositionTurn pt = i.Current;
                        turnDM.SaveItem(pt);
                        callback(pt.Content);
                    }
                    else
                    {
                        callback("Not Found");
                    }
                }
            });
        }
예제 #2
0
        /// <summary>
        /// Gets the turn report.
        /// </summary>
        /// <param name="positionId">Position identifier.</param>
        /// <param name="callback">Callback.</param>
        public async void GetTurnReport(int positionId, Action <string> callback)
        {
            DataManager <PositionTurn> turnDM = DataManagerFactory.GetManager <PositionTurn> ();
            PositionTurn pt = await turnDM.GetItem(positionId);

            if (pt == null)
            {
                FetchTurn(positionId, callback);
            }
            else
            {
                await Task.Factory.StartNew(() => {
                    try {
                        string content = Application.DocumentFolder.ReadFile(pt.TurnPath);
                        callback(content);
                        FetchTurn(positionId, callback);
                    }
                    catch {
                        FetchTurn(positionId, callback);
                    }
                });
            }
        }