Пример #1
0
        public bool Process()
        {
            Debug.WriteLine("start LoadCreateShipEntry");
            WorksheetEntry sheet = GetWorksheet("CreateShip");

            if (sheet == null)
            {
                _finishCallback(false);
                return(false);
            }

            var list = Query(sheet);

            lock (((ICollection)_createShipLog).SyncRoot)
            {
                foreach (var row in list)
                {
                    var it = new LogData.CreateShipInfo(row);
                    it.MemberID = _memberId;
                    it.Number   = _createShipLog.Count + 1;
                    _createShipLog.Add(it);
                }
            }
            _finishCallback(true);
            return(true);
        }
Пример #2
0
 public AddCreateShipEntry(SpreadSheetWrapper wrapper, LogData.CreateShipInfo info
                           , LogStore.LogStore.LogUploadCompleted finishCallback)
 {
     _wrapper        = wrapper;
     _info           = info;
     _memberId       = info.MemberID;
     _finishCallback = finishCallback;
 }
Пример #3
0
        //

        /// <summary>
        /// 建造記録を生成
        /// /kcsapi/api_get_member/kdock
        /// </summary>
        /// <param name="dockDat"></param>
        /// <param name="basicDat"></param>
        /// <param name="deckDat"></param>
        /// <param name="shipDat"></param>
        /// <returns></returns>
        public IEnumerable <LogData.CreateShipInfo> CreateLogData(MemberData.Dock dockDat,
                                                                  MemberData.Basic basicDat, MemberData.Deck deckDat, MemberData.Ship shipDat)
        {
            List <LogData.CreateShipInfo> retList = new List <LogData.CreateShipInfo>();

            for (int n = 0; n < kdock_build.Count(); n++)
            {
                ///既に建造記録を生成しているか、建造していないドックを飛ばす
                if (!kdock_build[n])
                {
                    continue;
                }

                var secretary = shipDat.GetShip(deckDat.Secretary);
                var info      = new LogData.CreateShipInfo();
                lock (dockDat.KDockLock)
                {
                    var kdock = dockDat.GetKDock(n + 1);

                    info.Resource      = new LogData.Material(kdock);
                    info.ShipType      = kdock.Type;
                    info.ShipName      = kdock.Name;
                    info.OfficeLv      = basicDat.Level;
                    info.SecretaryShip = string.Format("{0}(Lv{1})", secretary.ShipName, secretary.Level);
                    info.Date          = DateTime.Now;
                    info.MemberID      = basicDat.MemberID;
                }

                retList.Add(info);

                Debug.WriteLine("KDockLog:" + info.ToString());

                kdock_build[n] = false;
            }

            if (retList.Count == 0)
            {
                return(null);
            }

            return(retList);
        }
Пример #4
0
        public override bool LoadCreateShipInfo(string MemberID, IList <LogData.CreateShipInfo> createShipLog,
                                                LogDownloadCompleted finishCallback)
        {
            string file = GetFilePath(MemberID, createship_filename);

            if (file == null)
            {
                finishCallback(false);
                return(false);
            }

            if (!File.Exists(file))
            {
                finishCallback(false);
                return(false);
            }

            using (TextFieldParser parser = new TextFieldParser(file,
                                                                System.Text.Encoding.UTF8))
            {
                parser.TextFieldType = FieldType.Delimited;
                parser.SetDelimiters(",");

                lock (((ICollection)createShipLog).SyncRoot)
                {
                    while (!parser.EndOfData)
                    {
                        string[] row  = parser.ReadFields();
                        var      info = new LogData.CreateShipInfo(row);
                        info.Number   = createShipLog.Count + 1;
                        info.MemberID = MemberID;
                        createShipLog.Add(info);
                    }
                }
            }
            finishCallback(true);
            return(true);
        }
Пример #5
0
        public override bool LoadCreateShipInfo(string MemberID, IList<LogData.CreateShipInfo> createShipLog,
            LogDownloadCompleted finishCallback)
        {
            string file = GetFilePath(MemberID,createship_filename);
            if (file == null)
            {
                finishCallback(false);
                return false;
            }

            if (!File.Exists(file))
            {
                finishCallback(false);
                return false;
            }

            using (TextFieldParser parser = new TextFieldParser(file,
                System.Text.Encoding.UTF8))
            {
                parser.TextFieldType = FieldType.Delimited;
                parser.SetDelimiters(",");

                lock (((ICollection)createShipLog).SyncRoot)
                {
                    while (!parser.EndOfData)
                    {
                        string[] row = parser.ReadFields();
                        var info = new LogData.CreateShipInfo(row);
                        info.Number = createShipLog.Count + 1;
                        info.MemberID = MemberID;
                        createShipLog.Add(info);
                    }
                }

            }
            finishCallback(true);
            return true;
        }
Пример #6
0
 public virtual bool AddCreateShipInfo(LogData.CreateShipInfo info, LogUploadCompleted finishCallback)
 {
     finishCallback(true); return(true);
 }
Пример #7
0
 public override bool AddCreateShipInfo(LogData.CreateShipInfo info, LogUploadCompleted finishCallback)
 {
     _jobq.Add(new GSpread.Job.CreateIfNotExistSheet(info.MemberID, _wrapper));
     _jobq.Add(new GSpread.Job.AddCreateShipEntry(_wrapper, info, finishCallback));
     return(true);
 }
Пример #8
0
        // 

        /// <summary>
        /// 建造記録を生成
        /// /kcsapi/api_get_member/kdock
        /// </summary>
        /// <param name="dockDat"></param>
        /// <param name="basicDat"></param>
        /// <param name="deckDat"></param>
        /// <param name="shipDat"></param>
        /// <returns></returns>
        public IEnumerable<LogData.CreateShipInfo> CreateLogData(MemberData.Dock dockDat,
            MemberData.Basic basicDat,MemberData.Deck deckDat,MemberData.Ship shipDat)
        {
            List<LogData.CreateShipInfo> retList = new List<LogData.CreateShipInfo>();
            for (int n = 0; n < kdock_build.Count(); n++)
            {
                ///既に建造記録を生成しているか、建造していないドックを飛ばす
                if (!kdock_build[n])
                    continue;

                var secretary = shipDat.GetShip(deckDat.Secretary);
                var info = new LogData.CreateShipInfo();
                lock (dockDat.KDockLock)
                {
                    var kdock = dockDat.GetKDock(n + 1);

                    info.Resource = new LogData.Material(kdock);
                    info.ShipType = kdock.Type;
                    info.ShipName = kdock.Name;
                    info.OfficeLv = basicDat.Level;
                    info.SecretaryShip = string.Format("{0}(Lv{1})", secretary.ShipName, secretary.Level);
                    info.Date = DateTime.Now;
                    info.MemberID = basicDat.MemberID;
                }

                retList.Add(info);

                Debug.WriteLine("KDockLog:" + info.ToString());

                kdock_build[n] = false;
            }

            if (retList.Count == 0)
                return null;

            return retList;
        }