public async Task <ClientData> GetClientDataAsync(int id, DateTime date)
        {
            try
            {
                ClientDataCollection clientDataCollection = await LoadClientData();

                IEnumerable <ClientData> possibleMatches = clientDataCollection.clientDataEntries.Where(x => x.clientId == id &&
                                                                                                        x.Date.Year == date.Year &&
                                                                                                        x.Date.Month == date.Month &&
                                                                                                        x.Date.Day == date.Day);

                if (possibleMatches != null)
                {
                    if (possibleMatches.Count() > 0)
                    {
                        return(possibleMatches.First());
                    }
                    return(null);
                }
                return(null);
            }
            catch
            {
                return(null);
            }
        }
        protected override void HandlePostback(ClientDataCollection postData)
        {
            string[] values = postData.GetValues(Name);

            if (values == null)
            {
                Checked = false;
            }
            else
            {
                Checked = Array.Find(values, s => Value == s) != null;
            }
        }
        public async Task <bool> AddClientDataAsync(ClientData clientData)
        {
            try
            {
                ClientDataCollection clientDataCollection = await LoadClientData();

                clientDataCollection.clientDataEntries.Add(clientData);

                bool saved = await JsonHandler.SaveObject("clientHistoryData.json", clientDataCollection);

                if (saved)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch
            {
                return(false);
            }
        }
 protected override void HandlePostback(ClientDataCollection postData)
 {
     if (postData.Has(Name))
         _value = postData.Get(Name);
 }
        public bool Start(int portNo)
        {
            if (RecvTask != null)
            {
                return(false);
            }
            CancellTokenSource = new CancellationTokenSource();

            RecvTask = Task.Run(() =>
            {
                try
                {
                    int clientNo = 0;
                    Listener     = TcpListener.Create(portNo);
                    Listener.Start();

                    Console.WriteLine($"IPアドレス[{GetIPAddress()}] ポート番号[{portNo}]でサーバー起動開始");
                    while (true)
                    {
                        int targetNo = clientNo;
                        Console.WriteLine($"クライアント[{targetNo}]接続待ち");
                        TcpClient client = Listener.AcceptTcpClient();
                        string ip        = ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString();
                        // そこから接続している相手の IPAddress が取れる。
                        Console.WriteLine($"クライアント[{targetNo}]:{ip}接続開始");

                        MessageManager man = new MessageManager(client, new MessageReciever(this));

                        ClientData clientData = new ClientData();
                        clientData.Manager    = man;
                        clientData.Id         = targetNo;
                        clientData.IPAddress  = ip;
                        ClientDataCollection.Add(clientData);

                        man.RunRecvTask().ContinueWith((t) => {
                            Console.WriteLine($"クライアント[{targetNo}]:終了処理開始");

                            try
                            {
                                ClientDataCollection.Remove(clientData);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("ClientDatas.Remove Error:" + e);
                            }

                            client.Close();
                            client.Dispose();
                            Console.WriteLine($"クライアント[{targetNo}]:接続終了");
                        });
                        clientNo++;
                    }
                }
                catch (SocketException e)
                {
                    Console.WriteLine(e.Message);
                }
                catch (Exception e)
                {// 予期せぬ例外
                    Console.WriteLine(e.GetType().FullName + e.Message);
                }
                //finally
                //{

                //}
            }, CancellTokenSource.Token).ContinueWith(t =>
            {
                RecvTask = null;
                Stop();
                //// TODO:あとしまつ
                //if (t.IsCanceled)
                //{
                //}
            });
            return(true);
        }
 protected override void HandlePostback(ClientDataCollection postData)
 {
     Checked = (postData.Get(Group) == Name);
 }
Beispiel #7
0
 protected abstract void HandlePostback(ClientDataCollection postData);