public void BulkInsertAndSelect()
        {
            var db = new TestDb(false, new ContractResolver(t => _container.CanResolve(t), (t, op) => _container.Resolve(t)));

            db.CreateTable <IProduct>();
            db.CreateTable <IOrder>();
            db.CreateTable <IOrderLine>();
            db.CreateTable <IOrderHistory>();

            var rnd  = new Random();
            var data = new List <IOrderLine>();

            for (var i = 0; i < 100; i++)
            {
                var l = _container.Resolve <IOrderLine>();

                l.OrderId   = rnd.Next(1, 100);
                l.ProductId = rnd.Next(1, 100);
                l.Quantity  = rnd.Next(1, 25);
                l.Status    = OrderLineStatus.Shipped;
                l.UnitPrice = rnd.Next(0, 100);

                data.Add(l);
            }

            db.InsertAll(data.ToArray());

            var results = db.Table <IOrderLine>();

            Assert.AreEqual(data.Count, results.Count());
            Assert.AreEqual(data.First().UnitPrice, results.First().UnitPrice);
            Assert.AreEqual(data.Last().UnitPrice, results.Last().UnitPrice);
        }
        public async Task SendTextMessage(Peer peer, int receiverId, string msg)
        {
            TlAbsInputPeer receiver = await GetInputPeer(peer, receiverId);

            var update = await _client.SendMessageAsync(receiver, msg);

            Message message = null;

            if (update is TlUpdateShortSentMessage)
            {
                message = _ioc.Resolve <Message>();
                message.FillValues("You", msg, (update as TlUpdateShortSentMessage).TimeUnixToWindows(true));
            }
            else
            {
                message = GetMessage(update);
            }
            OnSendMessage?.Invoke(message);
        }
示例#3
0
        static void Main(string[] args)
        {
            SimpleIoC ioc = new SimpleIoC();

            ioc.Register <MainViewModel, MainViewModel>();
            ioc.Register <ICustomer, Customer>();
            ioc.Register <ICustomerRepository, CustomerRepository>();
            ioc.Register <IDbGateway, DbGateway>();

            var mainViewModel = ioc.Resolve <MainViewModel>();

            Console.ReadLine();
        }
示例#4
0
 public DialogsService(SimpleIoC ioc)
 {
     _ioc    = ioc;
     _client = ioc.Resolve <ITelegramClient>();
     using (var file = File.OpenRead("currentUser.json"))
     {
         using (StreamReader sr = new StreamReader(file))
         {
             string  userData = sr.ReadToEnd();
             Contact user     = JsonConvert.DeserializeObject <Contact>(userData);
             _userId = user.Id;
         }
     }
 }
        private async Task AddNewMessageToUnread(int senderId, string text, DateTime dateTime)
        {
            var dialogs = (TlDialogs)await _client.GetUserDialogsAsync();

            var dialog = dialogs.Dialogs.Lists[0];

            string title = "Unknown sender";

            switch (dialog.Peer)
            {
            case TlPeerUser peerUser:
                var user = dialogs.Users.Lists
                           .OfType <TlUser>()
                           .FirstOrDefault(c => c.Id == peerUser.UserId);
                title = $"{user?.FirstName} {user?.LastName}";
                break;

            case TlPeerChannel peerChannel:
                var channel = dialogs.Chats.Lists
                              .OfType <TlChannel>()
                              .FirstOrDefault(c => c.Id == peerChannel.ChannelId);
                title = $"{channel.Title}";
                break;

            case TlPeerChat peerChat:
                var chat = dialogs.Chats.Lists
                           .OfType <TlChat>()
                           .FirstOrDefault(c => c.Id == peerChat.ChatId);
                title = $"{chat.Title}";
                break;
            }

            var message = _ioc.Resolve <Message>();

            message.FillValues(title, text, dateTime);
            UnreadMessages.Push(message);
            OnAddUnreadMessage?.Invoke(senderId, message);
        }
 public ContactsService(SimpleIoC ioc)
 {
     _ioc    = ioc;
     _client = ioc.Resolve <ITelegramClient>();
 }
        //public event Action<string, string, DateTime> OnAddUnreadMessageFromChannel;

        public ReceivingService(SimpleIoC ioc)
        {
            _ioc    = ioc;
            _client = ioc.Resolve <ITelegramClient>();
            _client.Updates.RecieveUpdates += Updates_RecieveUpdates;
        }
 public SendingService(SimpleIoC ioc)
 {
     _client = ioc.Resolve <ITelegramClient>();
     _ioc    = ioc;
 }
示例#9
0
        public async Task FillDialog(string dialogName, Peer peer, int dialogId)
        {
            Stack <Message> messages = new Stack <Message>();

            Dialog = _ioc.Resolve <Dialog>();
            dynamic history;
            var     dialogs = (TlDialogs)await _client.GetUserDialogsAsync();

            try
            {
                switch (peer)
                {
                case Peer.User:

                    var user = dialogs.Users.Lists.OfType <TlUser>().FirstOrDefault(c => c.Id == dialogId);
                    history = await _client.GetHistoryAsync(
                        new TlInputPeerUser { UserId = user.Id, AccessHash = (long)user.AccessHash }, 0, -1, 50);

                    break;

                case Peer.Chat:
                    history = await _client.GetHistoryAsync(new TlInputPeerChat { ChatId = dialogId }, 0, -1, 50);

                    break;

                default:
                    var channel = dialogs.Chats.Lists.OfType <TlChannel>().FirstOrDefault(c => c.Id == dialogId);
                    history = await _client.GetHistoryAsync(
                        new TlInputPeerChannel { ChannelId = channel.Id, AccessHash = (long)channel.AccessHash }, 0,
                        -1,
                        50);

                    break;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            foreach (var message in history.Messages.Lists)
            {
                if (message is TlMessage)
                {
                    string senderName = dialogName;

                    if (_userId == message.FromId)
                    {
                        senderName = "You";
                    }
                    else
                    {
                        foreach (TlUser user in history.Users.Lists)
                        {
                            if (user.Id == message.FromId)
                            {
                                senderName = $"{user.FirstName} {user.LastName}";
                                break;
                            }
                        }
                    }

                    AddMsg(message, messages, senderName);
                }
            }
            //foreach (var message in history.Messages.Lists)
            //{
            //    string senderName = dialogName;

            //    if (_userId == message.FromId)
            //    {
            //        senderName = "You";
            //    }
            //    else
            //    {
            //        foreach (TlUser user in history.Users.Lists)
            //        {
            //            if (user.Id == message.FromId)
            //            {
            //                senderName = $"{user.FirstName} {user.LastName}";
            //                break;
            //            }
            //        }
            //    }

            //    AddMsg(message, messages, senderName);
            //}
            Dialog.FillValues(dialogName, messages);
            Dialog.Id = dialogId;
        }